org.biojava.bio
Class SmallAnnotation

java.lang.Object
  extended by org.biojava.utils.AbstractChangeable
      extended by org.biojava.bio.AbstractAnnotation
          extended by org.biojava.bio.SmallAnnotation
All Implemented Interfaces:
Serializable, Annotation, Changeable

public class SmallAnnotation
extends AbstractAnnotation

Annotation that is optimized for memory usage. Access time is linear, so SmallAnnotations are not recommended when the number of entries is large. However, they are fine for small numbers of keys.

Since:
1.2
Author:
Thomas Down, Matthew Pocock
See Also:
Serialized Form
For general use:
A minimal-memory alternative to SimpleAnnotation
For advanced users:
When creating a large number of small Annotation instances, it is worth instantiating SmallAnnotation. Small is anything up to at least 30 properties but will vary with the JavaVM and underlying platform.

Field Summary
 
Fields inherited from interface org.biojava.bio.Annotation
EMPTY_ANNOTATION, PROPERTY
 
Constructor Summary
SmallAnnotation()
          Return a new SmallAnnotation optimised for small sets of properties.
SmallAnnotation(Annotation ann)
          Return a new SmallAnnotation that copies all values from another annoation.
SmallAnnotation(Map map)
          Return a new SmallAnnotation that copies all values from a Map.
 
Method Summary
protected  Map getProperties()
          Implement this to return the Map delegate.
protected  boolean propertiesAllocated()
          A convenience method to see if we have allocated the properties Map.
 
Methods inherited from class org.biojava.bio.AbstractAnnotation
asMap, containsProperty, equals, getProperty, hashCode, keys, removeProperty, setProperty, toString
 
Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
 

Constructor Detail

SmallAnnotation

public SmallAnnotation()
Return a new SmallAnnotation optimised for small sets of properties.


SmallAnnotation

public SmallAnnotation(Annotation ann)
Return a new SmallAnnotation that copies all values from another annoation.

Parameters:
ann - the Annoation to copy all values from
Throws:
NullPointerException - if ann is null

SmallAnnotation

public SmallAnnotation(Map map)
Return a new SmallAnnotation that copies all values from a Map.

Parameters:
map - the Map to copy values from
Method Detail

getProperties

protected final Map getProperties()
Description copied from class: AbstractAnnotation
Implement this to return the Map delegate. Modifying this return value will modify the properties associated with this annotation. From code in the 1.2 version of AbstractAnnotation

Specified by:
getProperties in class AbstractAnnotation
Returns:
a Map containing all properties

propertiesAllocated

protected final boolean propertiesAllocated()
Description copied from class: AbstractAnnotation
A convenience method to see if we have allocated the properties Map.

Specified by:
propertiesAllocated in class AbstractAnnotation
Returns:
true if the properties have been allocated, false otherwise