package org.seqcode.gsebricks.verbs.assignment; import java.util.Collection; import java.util.Vector; import org.seqcode.gsebricks.verbs.Expander; import java.util.List; public interface Annotations<Item, Annotation> { /* returns the number of items that have been annotated */ public int getNumItems(); public Item getItem(int i); /* returns true iff the item has any annotations */ public boolean isAnnotated(Item target); /* returns true iff the item has any annotations provided by the annotator specified by key */ public boolean isAnnotated(Item target, String key); /* returns a bit vector (as a string) showing whether the item is annotated by each annotator. The order of the annotators is that specified by getAnnotationKeyOrder */ public String getAnnotationBitVector(Item target); /* returns all annotations for this item */ public Vector<Annotation> getAnnotations(Item target); /* returns all annotations for this item that were provided by the specified annotator */ public Vector<Annotation> getAnnotations(Item target, String key); public List<String> getAnnotationKeyOrder(); /* adds new items to the set of annotated items */ public void addItems(Collection<Item> newItems); /* adds a new annotator to this set of annotations. Generates annotations for all previously added items */ public void addAnnotations(String key, Expander<Item, ? extends Annotation> annotator); }