1 package org.opentrafficsim.core.perception; 2 3 import java.util.Set; 4 5 import org.opentrafficsim.base.Identifiable; 6 import org.opentrafficsim.core.gtu.GTU; 7 8 /** 9 * The Model package guarantees that objects that are used in an OTS study such as GTUs are retrievable. In a spatial model, for 10 * instance, objects need to be able to find each other. The model interface guarantees access to a number of important objects 11 * in the study. 12 * <p> 13 * Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br> 14 * BSD-style license. See <a href="http://opentrafficsim.org/docs/license.html">OpenTrafficSim License</a>. 15 * </p> 16 * $LastChangedDate: 2015-07-24 02:58:59 +0200 (Fri, 24 Jul 2015) $, @version $Revision: 1147 $, by $Author: averbraeck $, 17 * initial version Dec 10, 2015 <br> 18 * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a> 19 * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a> 20 */ 21 public interface PerceivableContext extends Identifiable 22 { 23 /** 24 * Get a descriptive Id of the perceivable context (e.g., useful for debugging purposes). 25 * @return the id of the context 26 */ 27 @Override 28 String getId(); 29 30 /** 31 * Get an overview of the GTUs in the model. The set returned is a defensive copy. 32 * @return a set of GTUs as registered in the current model. 33 */ 34 Set<GTU> getGTUs(); 35 36 /** 37 * Get a GTU in the model. 38 * @param gtuId String; the id of the GTU 39 * @return a GTU as registered in the current model, or null when the id could not be found. 40 */ 41 GTU getGTU(String gtuId); 42 43 /** 44 * Add a GTU to the network. 45 * @param gtu GTU; the GTU to add 46 */ 47 void addGTU(GTU gtu); 48 49 /** 50 * Remove a GTU from the network. 51 * @param gtu GTU; the GTU to remove 52 */ 53 void removeGTU(GTU gtu); 54 55 /** 56 * Test whether a GTU is registered in the network. 57 * @param gtu GTU; the GTU to search for 58 * @return whether the network contains this GTU 59 */ 60 boolean containsGTU(GTU gtu); 61 62 /** 63 * Test whether a GTU ID is registered in the network. 64 * @param gtuId String; the GTU ID to search for 65 * @return whether the network contains a GTU with this ID 66 */ 67 boolean containsGtuId(String gtuId); 68 69 }