| Interface | Description | 
|---|---|
| Dirtyable | 
 Objects that implement the  
Dirtyable interface indicate
  that they are able to track their own dirty state. | 
| HashStructure.Filter | |
| PropertyStorage | 
 The PropertyStorage interface defines a single generic entry point
  for accessing properties stored in HashStructure format, such as
  Project Properties and IDE Preferences. 
 | 
| Class | Description | 
|---|---|
| Cache<T> | 
 The  
Cache class is a simple collection that maintains a list of
 references to cached items, but does so weakly or softly, so that those
 references may be released by the garbage collector depending on memory usage
 and availability. | 
| Cache.Factory | 
 A  
Cache instance may not be constructed directly. | 
| ChangeBuffer | 
 This class is a specialized  
StructureChangeListener whose
  purpose is to buffer and accumulate ChangeInfo objects
  representing changes that have occurred to a Structure. | 
| ChangeInfo | 
 An instance of this class identifies a single change that has been
  applied to a  
HashStructure or ListStructure. | 
| HashStructure | 
 This class implements a hash data structure intended to be used as
  the generic storage for project metadata that can be marshalled to
  and from a persistent form without depending on custom marshalling
  code. 
 | 
| HashStructure.HashStructureFilteredImpl | |
| HashStructureAdapter | 
 This class serves as a base implementation of an adapter pattern
  to bridge JavaBeans-style getter and setter methods with
   
HashStructure storage. | 
| ListStructure | 
 This class implements a list data structure that complements
   
HashStructure. | 
| Structure | 
 Base class for  
HashStructure and ListStructure. | 
| StructureChangeEvent | 
 The event object describing a change in a  
HashStructure
  or ListStructure. | 
| StructureChangeListener | 
 Callback interface for receiving notification that property values
  have changed in a  
HashStructure or ListStructure. |