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