
org.opentripplanner.street.model.RentalRestrictionExtension Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of otp Show documentation
Show all versions of otp Show documentation
The OpenTripPlanner multimodal journey planning system
The newest version!
package org.opentripplanner.street.model;
import java.util.List;
import java.util.Set;
import org.opentripplanner.service.vehiclerental.street.CompositeRentalRestrictionExtension;
import org.opentripplanner.service.vehiclerental.street.NoRestriction;
import org.opentripplanner.street.search.state.State;
/**
* An extension which defines rules for how rental vehicles may or may not traverse a vertex.
*/
public interface RentalRestrictionExtension {
/**
* The static default instance which doesn't have any restrictions at all.
*/
public static final RentalRestrictionExtension NO_RESTRICTION = new NoRestriction();
/**
* If the current state is banned from traversing the location.
*/
boolean traversalBanned(State state);
/**
* If the current state is allowed to drop its free-floating vehicle.
*/
boolean dropOffBanned(State state);
/**
* Return the types of restrictions in this extension for debugging purposes.
*/
Set debugTypes();
/**
* Add another extension to this one and returning the combined one.
*/
default RentalRestrictionExtension add(RentalRestrictionExtension other) {
return CompositeRentalRestrictionExtension.of(this, other);
}
/**
* Remove the extension from this one
*/
default RentalRestrictionExtension remove(RentalRestrictionExtension toRemove) {
return NO_RESTRICTION;
}
/**
* Return all extensions contained in this one as a list.
*/
List toList();
/**
* List all networks that have a restriction in this extension.
*/
List networks();
boolean hasRestrictions();
Set noDropOffNetworks();
enum RestrictionType {
NO_TRAVERSAL,
NO_DROP_OFF,
BUSINESS_AREA_BORDER,
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy