import jalview.analysis.WUSSParseException;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
*/
public boolean autoCalculated = false;
+ /**
+ * unique ID for this annotation, used to match up the same annotation row
+ * shown in multiple views and alignments
+ */
public String annotationId;
+ /**
+ * the sequence this annotation is associated with (or null)
+ */
public SequenceI sequenceRef;
- /** DOCUMENT ME!! */
+ /** label shown in dropdown menus and in the annotation label area */
public String label;
- /** DOCUMENT ME!! */
+ /** longer description text shown as a tooltip */
public String description;
- /** DOCUMENT ME!! */
+ /** Array of annotations placed in the current coordinate system */
public Annotation[] annotations;
public ArrayList<SimpleBP> bps = null;
// System.out.println("featuregroup " + _rnasecstr[0].getFeatureGroup());
}
+ /**
+ * map of positions in the associated annotation
+ */
public java.util.Hashtable<Integer, Annotation> sequenceMapping;
/** DOCUMENT ME!! */
this.scaleColLabel = annotation.scaleColLabel;
this.showAllColLabels = annotation.showAllColLabels;
this.calcId = annotation.calcId;
+ if (annotation.properties!=null)
+ {
+ properties = new HashMap<String,String>();
+ for (Map.Entry<String, String> val:annotation.properties.entrySet())
+ {
+ properties.put(val.getKey(), val.getValue());
+ }
+ }
if (this.hasScore = annotation.hasScore)
{
this.score = annotation.score;
{
threshold = new GraphLine(annotation.threshold);
}
+ Annotation[] ann = annotation.annotations;
if (annotation.annotations != null)
{
- Annotation[] ann = annotation.annotations;
this.annotations = new Annotation[ann.length];
for (int i = 0; i < ann.length; i++)
{
}
}
}
- ;
- if (annotation.sequenceRef != null)
+ }
+ if (annotation.sequenceRef != null)
+ {
+ this.sequenceRef = annotation.sequenceRef;
+ if (annotation.sequenceMapping != null)
{
- this.sequenceRef = annotation.sequenceRef;
- if (annotation.sequenceMapping != null)
+ Integer p = null;
+ sequenceMapping = new Hashtable();
+ Enumeration pos = annotation.sequenceMapping.keys();
+ while (pos.hasMoreElements())
{
- Integer p = null;
- sequenceMapping = new Hashtable();
- Enumeration pos = annotation.sequenceMapping.keys();
- while (pos.hasMoreElements())
+ // could optimise this!
+ p = (Integer) pos.nextElement();
+ Annotation a = annotation.sequenceMapping.get(p);
+ if (a == null)
+ {
+ continue;
+ }
+ if (ann != null)
{
- // could optimise this!
- p = (Integer) pos.nextElement();
- Annotation a = annotation.sequenceMapping.get(p);
- if (a == null)
- {
- continue;
- }
for (int i = 0; i < ann.length; i++)
{
if (ann[i] == a)
}
}
}
- else
- {
- this.sequenceMapping = null;
- }
+ }
+ else
+ {
+ this.sequenceMapping = null;
}
}
// TODO: check if we need to do this: JAL-952
}
}
- public Object getProperty(String property)
+ public String getProperty(String property)
{
if (properties == null)
{
}
properties.put(property, value);
}
+
+ public boolean hasProperties()
+ {
+ return properties != null && properties.size() > 0;
+ }
+
+ public Collection<String> getProperties()
+ {
+ if (properties == null)
+ {
+ return Collections.EMPTY_LIST;
+ }
+ return properties.keySet();
+ }
}