Examples of Timetable


Examples of org.opentripplanner.routing.edgetype.Timetable

        req.setRoutingContext(graph, (Vertex)null, (Vertex)null);
        State state = new State(req);
        for (TripPattern pattern : patternsForStop.get(stop)) {
            StopTimesInPattern times = new StopTimesInPattern(pattern);
            // Should actually be getUpdatedTimetable
            Timetable table = pattern.scheduledTimetable;
            // A Stop may occur more than once in a pattern, so iterate over all Stops.
            int sidx = 0;
            for (Stop currStop : table.pattern.stopPattern.stops) {
                if (currStop != stop) continue;
                for (ServiceDay sd : req.rctx.serviceDays) {
                    TripTimes tt = table.getNextTrip(state, sd, sidx, true);
                    if (tt != null) {
                        times.times.add(new TripTimeShort(tt, sidx, stop));
                    }
                }
                sidx++;
View Full Code Here

Examples of org.opentripplanner.routing.edgetype.Timetable

   public Response getStoptimesForTrip (@PathParam("tripId") String tripIdString) {
       AgencyAndId tripId = GtfsLibrary.convertIdFromString(tripIdString);
       Trip trip = index.tripForId.get(tripId);
       if (trip != null) {
           TripPattern pattern = index.patternForTrip.get(trip);
           Timetable table = pattern.scheduledTimetable;
           return Response.status(Status.OK).entity(TripTimeShort.fromTripTimes(table, trip)).build();
       } else {
           return Response.status(Status.NOT_FOUND).entity(MSG_404).build();
       }
   }
View Full Code Here

Examples of org.opentripplanner.routing.edgetype.Timetable

     */
    private void applyUpdateToTripPattern(TripPattern pattern, String tripId, String stopId,
            int stopSeq, int arrive, int depart, ScheduleRelationship scheduleRelationship,
            int timestamp, ServiceDate serviceDate) throws ParseException {
        TimetableResolver snapshot = graph.timetableSnapshotSource.getTimetableSnapshot();
        Timetable timetable = snapshot.resolve(pattern, serviceDate);
        TimeZone timeZone = new SimpleTimeZone(-7, "PST");
        long today = serviceDate.getAsDate(timeZone).getTime() / 1000;
        TripDescriptor.Builder tripDescriptorBuilder = TripDescriptor.newBuilder();

        tripDescriptorBuilder.setTripId(tripId);

        StopTimeEvent.Builder departStopTimeEventBuilder = StopTimeEvent.newBuilder();
        StopTimeEvent.Builder arriveStopTimeEventBuilder = StopTimeEvent.newBuilder();

        departStopTimeEventBuilder.setTime(today + depart);
        arriveStopTimeEventBuilder.setTime(today + arrive);

        StopTimeUpdate.Builder stopTimeUpdateBuilder = StopTimeUpdate.newBuilder();

        stopTimeUpdateBuilder.setStopSequence(stopSeq);
        stopTimeUpdateBuilder.setDeparture(departStopTimeEventBuilder);
        stopTimeUpdateBuilder.setArrival(arriveStopTimeEventBuilder);
        stopTimeUpdateBuilder.setScheduleRelationship(scheduleRelationship);

        TripUpdate.Builder tripUpdateBuilder = TripUpdate.newBuilder();

        tripUpdateBuilder.setTrip(tripDescriptorBuilder);
        tripUpdateBuilder.addStopTimeUpdate(0, stopTimeUpdateBuilder);

        TripUpdate tripUpdate = tripUpdateBuilder.build();

        assertTrue(timetable.update(tripUpdate, timeZone, serviceDate));
    }
View Full Code Here

Examples of org.opentripplanner.routing.edgetype.Timetable

    private void applyUpdateToTripPattern(TripPattern pattern, String tripId, String stopId,
            int stopSeq, int arrive, int depart, ScheduleRelationship scheduleRelationship,
            int timestamp, ServiceDate serviceDate) throws ParseException {
        Graph graph = Context.getInstance().graph;
        TimetableResolver snapshot = graph.timetableSnapshotSource.getTimetableSnapshot();
        Timetable timetable = snapshot.resolve(pattern, serviceDate);
        TimeZone timeZone = new SimpleTimeZone(-7, "PST");
        long today = serviceDate.getAsDate(timeZone).getTime() / 1000;
        TripDescriptor.Builder tripDescriptorBuilder = TripDescriptor.newBuilder();

        tripDescriptorBuilder.setTripId(tripId);

        StopTimeEvent.Builder departStopTimeEventBuilder = StopTimeEvent.newBuilder();
        StopTimeEvent.Builder arriveStopTimeEventBuilder = StopTimeEvent.newBuilder();

        departStopTimeEventBuilder.setTime(today + depart);
        arriveStopTimeEventBuilder.setTime(today + arrive);

        StopTimeUpdate.Builder stopTimeUpdateBuilder = StopTimeUpdate.newBuilder();

        stopTimeUpdateBuilder.setStopSequence(stopSeq);
        stopTimeUpdateBuilder.setDeparture(departStopTimeEventBuilder);
        stopTimeUpdateBuilder.setArrival(arriveStopTimeEventBuilder);
        stopTimeUpdateBuilder.setScheduleRelationship(scheduleRelationship);

        TripUpdate.Builder tripUpdateBuilder = TripUpdate.newBuilder();

        tripUpdateBuilder.setTrip(tripDescriptorBuilder);
        tripUpdateBuilder.addStopTimeUpdate(0, stopTimeUpdateBuilder);

        TripUpdate tripUpdate = tripUpdateBuilder.build();

        assertTrue(timetable.update(tripUpdate, timeZone, serviceDate));
    }
View Full Code Here

Examples of org.opentripplanner.routing.edgetype.Timetable

        /* TripTimes grouped by the block ID and service ID of their trips. Must be a ListMultimap to allow sorting. */
        ListMultimap<BlockIdAndServiceId, TripTimes> tripTimesForBlock = ArrayListMultimap.create();

        LOG.info("Finding interlining trips based on block IDs.");
        for (TripPattern pattern : tripPatterns) {
            Timetable timetable = pattern.scheduledTimetable;
            /* TODO: Block semantics seem undefined for frequency trips, so skip them? */
            for (TripTimes tripTimes : timetable.tripTimes) {
                Trip trip = tripTimes.trip;
                if ( ! Strings.isNullOrEmpty(trip.getBlockId())) {
                    tripTimesForBlock.put(new BlockIdAndServiceId(trip), tripTimes);
View Full Code Here

Examples of org.opentripplanner.routing.edgetype.Timetable

        int tripIndex2 = pattern.scheduledTimetable.getTripIndex(tripId2);

        updater.applyTripUpdates(Arrays.asList(TripUpdate.parseFrom(cancellation)), "agency");

        TimetableResolver resolver = updater.getTimetableSnapshot();
        Timetable forToday = resolver.resolve(pattern, serviceDate);
        Timetable schedule = resolver.resolve(pattern, null);
        assertNotSame(forToday, schedule);
        assertNotSame(forToday.getTripTimes(tripIndex), schedule.getTripTimes(tripIndex));
        assertSame(forToday.getTripTimes(tripIndex2), schedule.getTripTimes(tripIndex2));

        TripTimes tripTimes = forToday.getTripTimes(tripIndex);
        for (int i = 0; i < tripTimes.getNumStops(); i++) {
            assertEquals(TripTimes.UNAVAILABLE, tripTimes.getDepartureTime(i));
            assertEquals(TripTimes.UNAVAILABLE, tripTimes.getArrivalTime(i));
View Full Code Here

Examples of org.opentripplanner.routing.edgetype.Timetable

        TripUpdate tripUpdate = tripUpdateBuilder.build();

        updater.applyTripUpdates(Arrays.asList(tripUpdate), "agency");

        TimetableResolver resolver = updater.getTimetableSnapshot();
        Timetable forToday = resolver.resolve(pattern, serviceDate);
        Timetable schedule = resolver.resolve(pattern, null);
        assertNotSame(forToday, schedule);
        assertNotSame(forToday.getTripTimes(tripIndex), schedule.getTripTimes(tripIndex));
        assertSame(forToday.getTripTimes(tripIndex2), schedule.getTripTimes(tripIndex2));
        assertEquals(1, forToday.getTripTimes(tripIndex).getArrivalDelay(1));
        assertEquals(1, forToday.getTripTimes(tripIndex).getDepartureDelay(1));
    }
View Full Code Here

Examples of trams.data.Timetable

        return routeScreenPanel;
    }
   
    public JPanel makeCreateTimetablePanel(String timetableName) {
        //Get the timetable here for initialise data parts.
        Timetable myTimetable = theSelectedRoute.getTimetable(timetableName);
       
        //Create timetableScreen panel to add things to.
        JPanel timetableScreenPanel = new JPanel();
        timetableScreenPanel.setLayout ( new BoxLayout ( timetableScreenPanel, BoxLayout.PAGE_AXIS ) );
        timetableScreenPanel.setBackground(Color.WHITE);
       
        //Create label at top of screen in a topLabelPanel added to screenPanel.
        JPanel topLabelPanel = new JPanel(new BorderLayout());
        topLabelPanel.setBackground(Color.WHITE);
        JLabel topLabel = new JLabel("Create New Timetable", SwingConstants.CENTER);
        if ( myTimetable != null ) {
            topLabel.setText("Modify Timetable");
        }
        topLabel.setFont(new Font("Arial", Font.BOLD, 36));
        topLabel.setVerticalAlignment(JLabel.CENTER);
        topLabelPanel.add(topLabel, BorderLayout.CENTER);
        timetableScreenPanel.add(topLabelPanel);
       
        //Create timetable name panel.
        JPanel timetableNamePanel = new JPanel(new GridBagLayout());
        timetableNamePanel.setBackground(Color.WHITE);
        JLabel timetableNameLabel = new JLabel("Name: ");
        timetableNameLabel.setFont(new Font("Arial", Font.ITALIC, 16));
        timetableNamePanel.add(timetableNameLabel);
        theTimetableNameField = new JTextField(20);
        if ( myTimetable != null ) { theTimetableNameField.setText(myTimetable.getName()); }
        theTimetableNameField.addKeyListener(new KeyListener()  {
            public void keyReleased(KeyEvent e) {
                if ( !theTimetableNameField.getText().equalsIgnoreCase("") ) {
                    theCreateServicePatternButton.setEnabled(true);
                } else {
                    theCreateServicePatternButton.setEnabled(false);
                }
            }
            public void keyTyped(KeyEvent e) { }
            public void keyPressed(KeyEvent e) { }
        });
        theTimetableNameField.setFont(new Font("Arial", Font.PLAIN, MEDIUM_FONT_SIZE));
        timetableNamePanel.add(theTimetableNameField);
        timetableScreenPanel.add(timetableNamePanel);
               
        //Create panel for validity first of all.
        JPanel validityPanel = new JPanel(new GridBagLayout());
        validityPanel.setBackground(Color.WHITE);
        JLabel validFromLabel = new JLabel("Valid From: ", SwingConstants.CENTER);
        validFromLabel.setFont(new Font("Arial", Font.ITALIC, 16));
        validityPanel.add(validFromLabel);
        //Get the calendar object with current time.
        Calendar currTime = (Calendar) theInterface.getCurrentSimTime().clone();
        currTime.add(Calendar.HOUR, 0); //Change this to 48!!!!
        //Valid From Day.
        theFromStartDay = currTime.get(Calendar.DAY_OF_MONTH);
        theValidFromDayModel = new DefaultComboBoxModel();
        for ( int i = currTime.get(Calendar.DAY_OF_MONTH); i <= getMonthLen(getMonth(currTime.get(Calendar.MONTH))); i++ ) {
            theValidFromDayModel.addElement(i);
        }
        JComboBox validFromDayBox = new JComboBox(theValidFromDayModel);
        if ( myTimetable != null ) {
            validFromDayBox.setSelectedItem(myTimetable.getValidFrom().get(Calendar.DAY_OF_MONTH));
        }
        validFromDayBox.setFont(new Font("Arial", Font.PLAIN, MEDIUM_FONT_SIZE));
        validityPanel.add(validFromDayBox);
        //Valid From Month.
        theValidFromMonthBox = new JComboBox();
        for ( int i = 0; i < 4; i++ ) {
            theValidFromMonthBox.addItem(getMonth(currTime.get(Calendar.MONTH)) + " " + currTime.get(Calendar.YEAR));
            currTime.add(Calendar.MONTH, 1);
        }
        if ( myTimetable != null ) {
            theValidFromMonthBox.setSelectedItem(getMonth(myTimetable.getValidFrom().get(Calendar.MONTH)) + " " + myTimetable.getValidFrom().get(Calendar.YEAR));
        }
        theValidFromMonthBox.setFont(new Font("Arial", Font.PLAIN, MEDIUM_FONT_SIZE));
        theValidFromMonthBox.addActionListener( new ActionListener() {
            public void actionPerformed ( ActionEvent e ) {
                String month = theValidFromMonthBox.getSelectedItem().toString().split(" ")[0];
                if ( theValidFromMonthBox.getSelectedIndex() == 0 ) {
                    theValidFromDayModel.removeAllElements();
                    for ( int i = theFromStartDay; i <= getMonthLen(month); i++ ) {
                        theValidFromDayModel.addElement(i);
                    }
                } else {
                    theValidFromDayModel.removeAllElements();
                    for ( int i = 1; i <= getMonthLen(month); i++ ) {
                        theValidFromDayModel.addElement(i);
                    }
                }
            }
        });
        validityPanel.add(theValidFromMonthBox);
        //Valid to!!!
        JLabel validToLabel = new JLabel("Valid To: ", SwingConstants.CENTER);
        validToLabel.setFont(new Font("Arial", Font.ITALIC, 16));
        validityPanel.add(validToLabel);
        //Get the calendar object with current time.
        Calendar myCurrTime = (Calendar) theInterface.getCurrentSimTime().clone();
        myCurrTime.add(Calendar.HOUR, 72);
        //Valid To Day.
        theToStartDay = myCurrTime.get(Calendar.DAY_OF_MONTH);
        theValidToDayModel = new DefaultComboBoxModel();
        for ( int i = myCurrTime.get(Calendar.DAY_OF_MONTH); i <= getMonthLen(getMonth(myCurrTime.get(Calendar.MONTH))); i++ ) {
            theValidToDayModel.addElement(i);
        }
        JComboBox validToDayBox = new JComboBox(theValidToDayModel);
        if ( myTimetable != null ) {
            validToDayBox.setSelectedItem(myTimetable.getValidTo().get(Calendar.DAY_OF_MONTH));
        }
        validToDayBox.setFont(new Font("Arial", Font.PLAIN, MEDIUM_FONT_SIZE));
        validityPanel.add(validToDayBox);
        //Valid To Month.
        theValidToMonthBox = new JComboBox();
        for ( int i = 0; i < 25; i++ ) {
            theValidToMonthBox.addItem(getMonth(myCurrTime.get(Calendar.MONTH)) + " " + myCurrTime.get(Calendar.YEAR));
            myCurrTime.add(Calendar.MONTH, 1);
        }
        if ( myTimetable != null ) {
            theValidToMonthBox.setSelectedItem(getMonth(myTimetable.getValidTo().get(Calendar.MONTH)) + " " + myTimetable.getValidTo().get(Calendar.YEAR));
        }
        theValidToMonthBox.setFont(new Font("Arial", Font.PLAIN, MEDIUM_FONT_SIZE));
        theValidToMonthBox.addActionListener( new ActionListener() {
            public void actionPerformed ( ActionEvent e ) {
                String month = theValidToMonthBox.getSelectedItem().toString().split(" ")[0];
                if ( theValidToMonthBox.getSelectedIndex() == 0 ) {
                    theValidToDayModel.removeAllElements();
                    for ( int i = theToStartDay; i <= getMonthLen(month); i++ ) {
                        theValidToDayModel.addElement(i);
                    }
                } else {
                    theValidToDayModel.removeAllElements();
                    for ( int i = 1; i <= getMonthLen(month); i++ ) {
                        theValidToDayModel.addElement(i);
                    }
                }
            }
        });
        validityPanel.add(theValidToMonthBox);
      
        //Add validityPanel to the screen panel.
        timetableScreenPanel.add(validityPanel);
        timetableScreenPanel.add(Box.createRigidArea(new Dimension(0,DIMENSION_SPACER))); //Spacer.
       
        //Create label in middle of screen in a middleLabelPanel added to screenPanel.
        JPanel middleLabelPanel = new JPanel(new BorderLayout());
        middleLabelPanel.setBackground(Color.WHITE);
        JLabel middleLabel = new JLabel("Service Pattern(s)", SwingConstants.CENTER);
        middleLabel.setFont(new Font("Arial", Font.BOLD, 36));
        middleLabel.setVerticalAlignment(JLabel.CENTER);
        middleLabelPanel.add(middleLabel, BorderLayout.CENTER);
        timetableScreenPanel.add(middleLabelPanel);
       
        //Create the servicePattern list panel and three buttons.
        JPanel servicePatternListPanel = new JPanel(new BorderLayout());
        servicePatternListPanel.setBackground(Color.WHITE);
        //Here is the actual service pattern list.
        JPanel centreServicePatternListPanel = new JPanel(new GridBagLayout());
        centreServicePatternListPanel.setBackground(Color.WHITE);
        theServicePatternModel = new DefaultListModel();
        //Now get all the service pattern which we have at the moment.
        try {
            Iterator<String> patternKeys = theSelectedRoute.getTimetable(theTimetableNameField.getText()).getServicePatternNames().iterator();
            while ( patternKeys.hasNext() ) {
                String servicePatternName = patternKeys.next();
                theServicePatternModel.addElement(theSelectedRoute.getTimetable(theTimetableNameField.getText()).getServicePattern(servicePatternName).getName());
            }
        } catch (NullPointerException npe) { }
        theServicePatternList = new JList(theServicePatternModel);
        if ( theServicePatternModel.getSize() > 0 ) { theServicePatternList.setSelectedIndex(0); }
        theServicePatternList.setVisibleRowCount(3);
        theServicePatternList.setFixedCellWidth(450);
        theServicePatternList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        JScrollPane timetablePane = new JScrollPane(theServicePatternList);
        centreServicePatternListPanel.add(timetablePane);
        servicePatternListPanel.add(centreServicePatternListPanel, BorderLayout.CENTER);
        //Now the three create, modify and delete button.
        JPanel servicePatternButtonPanel = new JPanel();
        servicePatternButtonPanel.setBackground(Color.WHITE);
        theCreateServicePatternButton = new JButton("Create");
        if (theTimetableNameField.getText().equalsIgnoreCase("")) { theCreateServicePatternButton.setEnabled(false); }
        theCreateServicePatternButton.addActionListener(new ActionListener() {
            public void actionPerformed ( ActionEvent e ) {
                //Create relevant calendar object.
                if ( theSelectedRoute.getTimetable(theTimetableNameField.getText()) == null) {
                    int vfYear = Integer.parseInt(theValidFromMonthBox.getSelectedItem().toString().split(" ")[1]);
                    int vfMonth = getMonthNumber(theValidFromMonthBox.getSelectedItem().toString().split(" ")[0]);
                    int vfDay = Integer.parseInt(theValidFromDayModel.getSelectedItem().toString());
                    GregorianCalendar validFrom = new GregorianCalendar(vfYear, vfMonth, vfDay);
                    int vtYear = Integer.parseInt(theValidToMonthBox.getSelectedItem().toString().split(" ")[1]);
                    int vtMonth = getMonthNumber(theValidToMonthBox.getSelectedItem().toString().split(" ")[0]);
                    int vtDay = Integer.parseInt(theValidToDayModel.getSelectedItem().toString());
                    GregorianCalendar validTo = new GregorianCalendar(vtYear, vtMonth, vtDay);
                    //Save this timetable with valid dates first.
                    theSelectedRoute.addTimetable(theTimetableNameField.getText(), new Timetable(theTimetableNameField.getText(), validFrom, validTo));
                    //logger.debug("Adding timetable with name " + theTimetableNameField.getText() + " to route " + theSelectedRoute.getRouteNumber());
                }
                //Process the stops.
                ArrayList<String> stops = new ArrayList<String>();
                for ( int i = 0; i < theStopModel.getSize(); i++ ) {
View Full Code Here

Examples of trams.data.Timetable

   
    private Timetable createAndStoreTimetable(String name, Calendar validFromDate, Calendar validToDate, ServicePattern servicePattern) {
        //Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        //session.beginTransaction();

        Timetable theTimetable = new Timetable();
        theTimetable.addServicePattern(servicePattern.getName(), servicePattern);
        theTimetable.setName(name);
        theTimetable.setValidFromDate(validFromDate);
        theTimetable.setValidToDate(validToDate);
       
        return theTimetable;
        //session.save(theTimetable);

        //session.getTransaction().commit();
View Full Code Here

Examples of trams.data.Timetable

            route.appendChild(instops);
            //Now do timetables for this route.
            Iterator<String> timetableNames = myRoute.getTimetableNames();
            while ( timetableNames.hasNext() ) {
                //Create a timetable element with attributes name, validFrom and validTo dates.
                Timetable myTimetable = myRoute.getTimetable(timetableNames.next());
                Element timetable = doc.createElement("timetable");
                timetable.setAttribute("name", myTimetable.getName());
                //Do valid from date.
                Calendar validFromDate = myTimetable.getValidFrom();
                int vfMonthNum = validFromDate.get(Calendar.MONTH)+1; String vfMonth = "" + vfMonthNum; if ( vfMonthNum < MAX_SINGLE_DIGIT ) { vfMonth = "0" + vfMonthNum; }
                int vfDateNum = validFromDate.get(Calendar.DATE); String vfDate = "" + vfDateNum; if ( vfDateNum < MAX_SINGLE_DIGIT ) { vfDate = "0" + vfDateNum; }
                timetable.setAttribute("validFrom", validFromDate.get(Calendar.YEAR) + "-" + vfMonth + "-" + vfDate );
                //Do valid to date.
                Calendar validToDate = myTimetable.getValidTo();
                int vtMonthNum = validToDate.get(Calendar.MONTH)+1; String vtMonth = "" + vtMonthNum; if ( vtMonthNum < MAX_SINGLE_DIGIT ) { vtMonth = "0" + vtMonthNum; }
                int vtDateNum = validToDate.get(Calendar.DATE); String vtDate = "" + vtDateNum; if ( vtDateNum < MAX_SINGLE_DIGIT ) { vtDate = "0" + vtDateNum; }
                timetable.setAttribute("validTo", validToDate.get(Calendar.YEAR) + "-" + vtMonth + "-" + vtDate );
                //Now for all service patterns.
                Iterator<String> servicePatternNames = myTimetable.getServicePatternNames().iterator();
                while ( servicePatternNames.hasNext() ) {
                    ServicePattern myServicePattern = myTimetable.getServicePattern(servicePatternNames.next());
                    //Create element with appropriate attributes.
                    Element servicePattern = doc.createElement("servicePattern");
                    servicePattern.setAttribute("name", myServicePattern.getName());
                    servicePattern.setAttribute("days", myServicePattern.getDaysOfOperation());
                    servicePattern.setAttribute("returnTerminus", myServicePattern.getReturnTerminus());
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.