Package sim.util

Class CollectionProperties

java.lang.Object
sim.util.Properties
sim.util.CollectionProperties
All Implemented Interfaces:
Serializable

public class CollectionProperties extends Properties
A simple class for examining the slots of Maps, Collections, Indexed, and arrays as if the slots were Java Bean Properties. Beware that Maps and non-List Collections perform O(n) scans just to give you the property you were looking for. Lists, Indexed, and arrays are always O(1).

You can easily create a CollectionProperties object by passing in the appropriate object to examine. From then on, you can get the number of "Properties" (in this case, objects in the set), and retrieve the "Name" and the value of each Property, plus other information.

This class allows you to set and get properties on the object via boxing the property (java.lang.Integer for int, for example). You can also pass in a String, and SimpleProperties will parse the appropriate value out of the string automatically without you having to bother checking the type. arrays, Maps, Indexed, and Lists can have property values set. Other Collections cannot have values set.

If any errors arise from generating the properties, setting them, or getting their values, then typically null is returned.

See Also:
  • Constructor Details

    • CollectionProperties

      public CollectionProperties(Object o)
      Object can be a Collection, a List, a Map, an Indexed, or an array.
  • Method Details

    • isVolatile

      public boolean isVolatile()
      Description copied from class: Properties
      Returns true if the number or order of properties could change at any time
      Specified by:
      isVolatile in class Properties
    • numProperties

      public int numProperties()
      Description copied from class: Properties
      Returns the number of properties discovered in the object.
      Specified by:
      numProperties in class Properties
    • getValue

      public Object getValue(int index)
      Description copied from class: Properties
      Returns the value of the property at the given index.
      Specified by:
      getValue in class Properties
    • isReadWrite

      public boolean isReadWrite(int index)
      Description copied from class: Properties
      Returns true if the property at the given index is both readable and writable (as opposed to read-only).
      Specified by:
      isReadWrite in class Properties
    • getName

      public String getName(int index)
      Description copied from class: Properties
      Returns the name of the property at the given index.
      Specified by:
      getName in class Properties
    • getType

      public Class getType(int index)
      Description copied from class: Properties
      Returns the Class (or for primitive objects, the primitive TYPE) of the property at the given index.
      Specified by:
      getType in class Properties
    • _setValue

      protected Object _setValue(int index, Object value)
      Specified by:
      _setValue in class Properties