21 package org.matsim.facilities;
23 import java.util.SortedMap;
24 import java.util.TreeMap;
26 import org.apache.logging.log4j.LogManager;
27 import org.apache.logging.log4j.Logger;
69 ((ActivityFacilityImpl) facility).setLinkId(linkId);
71 throw new RuntimeException(
"cannot set linkID for this facility type; API needs to be cleaned up") ;
83 Link accessActLink = null ;
91 if ( accessActLinkId!=null ) {
92 return accessActLinkId ;
103 Link accessActLink = null ;
112 if ( accessActLinkId!=null ) {
119 if ( accessActLink==null ) {
124 throw new RuntimeException(
"link for facility cannot be determined when neither facility link id nor facility coordinate given") ;
128 if ( accessActLink == null ) {
129 log.warn(
"Facility without link for which no nearest link on the respective network could be found. " +
130 "About to abort. Writing out the first 10 links to understand which subnetwork was used to help debugging.");
142 return accessActLink;
150 if ( activityFacilities!=null && toWrap.
getFacilityId()!=null ){
156 return new ActivityWrapperFacility( toWrap );
164 return new ActivityWrapperFacility( toWrap ) ;
190 throw new RuntimeException(
"facility with id=" + ((Identifiable) facility).getId() +
" has neither coord nor linkId. This " +
191 "does not work ..." ) ;
193 throw new RuntimeException(
"facility which does not implement Identifiable has neither coord nor linkId. This " +
194 "does not work ..." ) ;
203 return new Coord( fromCoord.
getX() + relativePositionOfEntryExitOnLink *( toCoord.
getX() - fromCoord.
getX()) , fromCoord.
getY() + relativePositionOfEntryExitOnLink *( toCoord.
getY() - fromCoord.
getY() ) );
213 return facility.getAttributes().getAttribute( key );
216 public static <F extends Facility & Attributable>
void putFacilityAttribute(F facility, String key, Object value ) {
217 facility.getAttributes().putAttribute( key, value ) ;
221 return facility.getAttributes().removeAttribute( key );
Map< Id< ActivityFacility >, ? extends ActivityFacility > getFacilities()
static< F extends Facility &Attributable > Object removeFacilityAttribute(F facility, String key)
static Facility wrapLink(final Link link)
static< F extends Facility &Attributable > void putFacilityAttribute(F facility, String key, Object value)
static< F extends Facility &Attributable > Object getFacilityAttribute(F facility, String key)
static ActivityFacilities createActivityFacilities(String name)
static SortedMap< Id< ActivityFacility >, ActivityFacility > getSortedFacilities(final ActivityFacilities facilities)
static Facility wrapLinkAndCoord(final Link link, final Coord coord)
static Link decideOnLink(final Facility facility, final Network network)
static Link getNearestLink(Network network, final Coord coord)
static void assertNotNull(Object obj)
static Facility wrapActivity(final Activity toWrap)
Map< Id< Link >, ? extends Link > getLinks()
Id< ActivityFacility > getFacilityId()
static Coord decideOnCoord(final Facility facility, final Network network, final Config config)
static void setLinkID(final Facility facility, Id< Link > linkId)
double getRelativePositionOfEntryExitOnLink()
final GlobalConfigGroup global()
static ActivityFacilities createActivityFacilities()
static Id< Link > decideOnLinkId(final Facility facility, final Network network)
static Facility toFacility(final Activity toWrap, ActivityFacilities activityFacilities)
static Coord decideOnCoord(final Facility facility, final Network network, double relativePositionOfEntryExitOnLink)