The State class maintains state for a collection of named items, with a varying number of properties defined.
It avoids the need to create a separate class for the item, and separate instances of these classes for each item, by storing the state in a 2 level hash table, improving performance when the number of items is likely to be large.
Adds a property to an item.
Adds multiple properties to an item.
For a given item, returns the value of the property requested, or undefined if not found.
For the given item, returns an object with all of the item's property/value pairs. By default the object returned is a shallow copy of the stored data, but passing in true as the second parameter will return a reference to the stored data.
Removes a property from an item.
Hash of attributes