Package org.opentripplanner.api.resource

Source Code of org.opentripplanner.api.resource.PlannerRequest

/* This program is free software: you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public License
as published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>. */

package org.opentripplanner.api.resource;

import java.util.Date;
import java.util.HashMap;
import java.util.List;

import org.opentripplanner.common.model.NamedPlace;
import org.opentripplanner.routing.core.OptimizeType;
import org.opentripplanner.routing.core.TraverseModeSet;

/**
* Sample POJO for ReflectiveQueryScraper
*/
public class PlannerRequest {

    /** The router ID -- internal ID to switch between router implementation (or graphs) */
    public String routerId;
   
    /** The start location -- either a Vertex name or latitude, longitude in degrees */
    public String from;
   
    /** The start location's user-visible name */
    public String fromName;

    /** The end location (see the from field for format) */
    public String to;

    /** The end location's user-visible name */
    public String toName;

    /** An unordered list of intermediate locations to be visited (see the from field for format) */
    public List<NamedPlace> intermediatePlaces;

    /** The maximum distance (in meters) the user is willing to walk. Defaults to 1/2 mile  */
    public double maxWalkDistance = Double.MAX_VALUE;

    /** The set of TraverseModes that a user is willing to use. Defaults to WALK | TRANSIT */
    public TraverseModeSet mode; // defaults in constructor

    /** The set of characteristics that the user wants to optimize for -- defaults to QUICK, or
     *  optimize for transit time. */
    public OptimizeType optimize = OptimizeType.QUICK;
   
    /** The date/time that the trip should depart (or arrive, for requests where arriveBy is true) */
    public Date dateTime = new Date();

    /** Whether the trip should depart at dateTime (false, the default), or arrive at dateTime */
    public boolean arriveBy = false;

    /** Whether the trip must be wheelchair accessible. */
    public boolean wheelchair = false;
 
    /** The maximum number of possible itineraries to return. */
    public int numItineraries = 3;

    /** The maximum slope of streets for wheelchair trips. */
    public double maxSlope = -1;
   
    /** Whether the planner should return intermediate stops lists for transit legs. */
    public boolean showIntermediateStops = false;
   
    /** List of preffered routes. */
    public String[] preferredRoutes;
   
    /** List of unpreferred routes. */
    public String[] unpreferredRoutes;
   
    /** The complete list of parameters. */
    public final HashMap<String, String> parameters = new HashMap<String, String>();

    /** TODO: documentation */
    public Integer minTransferTime;

    /** TODO: documentation */
    public String[] bannedRoutes;
   
    /** TODO: documentation */
    public Integer transferPenalty;
   
    /** TODO: documentation */
    public double walkSpeed;
   
    /** TODO: documentation */
    public double bikeSpeed;

    /** TODO: documentation */
    public double triangleSafetyFactor;
   
    /** TODO: documentation */
    public double triangleSlopeFactor;
   
    /** TODO: documentation */
    public double triangleTimeFactor;
   
    /** TODO: documentation */
    public Integer maxTransfers;
   
    /** TODO: documentation */
    public boolean intermediatePlacesOrdered;
   
    /** Constructor. All defaults should be set here or in field declarations. */
    public PlannerRequest() {
        mode = new TraverseModeSet("TRANSIT,WALK");
    }

    /**
     * Ideally this should block setting any field named 'fromPlace' from a query param
     * of the same name, and this method's parameters should be filled in from
     * query parameters of the same name.
     */
    public void setFromPlace(String from) {
        if (from.contains("::")) {
            String[] parts = from.split("::");
            this.fromName = parts[0];
            this.from = parts[1];
        } else {
            this.from = from;
        }
    }

    /** TODO: documentation */
    public void setToPlace(String to) {
        if (to.contains("::")) {
            String[] parts = to.split("::");
            this.toName = parts[0];
            this.to = parts[1];
        } else {
            this.to = to;
        }
    }

}
TOP

Related Classes of org.opentripplanner.api.resource.PlannerRequest

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.