1 package org.opentrafficsim.road.definitions; 2 3 import org.djutils.immutablecollections.ImmutableMap; 4 import org.opentrafficsim.core.definitions.Definitions; 5 import org.opentrafficsim.road.network.lane.LaneType; 6 7 /** 8 * The RoadDefinitions interface contains access to the core definitions that can be used to interpret the RoadNetwork and the 9 * RoadPerceivableContext. An example interface allows for the retrieval of LaneTypes.<br> 10 * <br> 11 * Copyright (c) 2003-2018 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See 12 * for project information <a href="https://www.simulation.tudelft.nl/" target="_blank">www.simulation.tudelft.nl</a>. The 13 * source code and binary code of this software is proprietary information of Delft University of Technology. 14 * @author <a href="https://www.tudelft.nl/averbraeck" target="_blank">Alexander Verbraeck</a> 15 */ 16 public interface RoadDefinitions extends Definitions 17 { 18 /***************************************************************************************/ 19 /************************************** LaneTypes **************************************/ 20 /***************************************************************************************/ 21 22 /** 23 * Add the default LaneTypes that have been defined in the enum LaneType.DEFAULTS to the network. It is not necessary to 24 * call this method on every network; when the LaneTypes are for instance defined in an XML file, adding the default types 25 * might not be needed. 26 */ 27 void addDefaultLaneTypes(); 28 29 /** 30 * Add a Lane type to the map. This method is automatically called from the LaneType constructor. 31 * @param laneType the LaneType to add 32 */ 33 void addLaneType(LaneType laneType); 34 35 /** 36 * Retrieve a defined LaneType based on its id. 37 * @param laneTypeId the id to search for 38 * @return the LaneType or null in case it could not be found 39 */ 40 LaneType getLaneType(String laneTypeId); 41 42 /** 43 * Retrieve a defined default LaneType based on its enum. 44 * @param laneTypeEnum the enum to search for 45 * @return the LaneType or null in case it could not be found 46 */ 47 LaneType getLaneType(LaneType.DEFAULTS laneTypeEnum); 48 49 /** 50 * Retrieve a safe copy of the map of defined LaneTypes in this network. 51 * @return the map of defined LaneTypes 52 */ 53 ImmutableMap<String, LaneType> getLaneTypes(); 54 }