package edu.cmu.minorthird.text.learn.experiments;
import java.util.List;
import java.util.Set;
import edu.cmu.minorthird.text.AnnotatorLoader;
import edu.cmu.minorthird.text.Details;
import edu.cmu.minorthird.text.MonotonicTextLabels;
import edu.cmu.minorthird.text.Span;
import edu.cmu.minorthird.text.Token;
import edu.cmu.minorthird.text.Trie;
/**
* A subset of another TextLabels that can be added to. Additions are propogated
* back to the underlying MonotonicTextLabels passed in as an argument.
*
* @author William Cohen
*/
public class MonotonicSubTextLabels extends SubTextLabels implements
MonotonicTextLabels{
private MonotonicTextLabels monotonicLabels;
@Override
public void setAnnotatorLoader(AnnotatorLoader newLoader){
monotonicLabels.setAnnotatorLoader(newLoader);
}
@Override
public AnnotatorLoader getAnnotatorLoader(){
return monotonicLabels.getAnnotatorLoader();
}
public MonotonicSubTextLabels(SubTextBase subBase,MonotonicTextLabels labels){
super(subBase,labels);
this.monotonicLabels=labels;
}
@Override
public void defineDictionary(String dictName,Set<String> dict){
monotonicLabels.defineDictionary(dictName,dict);
}
/** Associate a dictionary from this file */
@Override
public void defineDictionary(String dictName,List<String> fileNames,
boolean ignoreCase){
monotonicLabels.defineDictionary(dictName,fileNames,ignoreCase);
}
/** Return a trie if defined */
@Override
public Trie getTrie(){
return monotonicLabels.getTrie();
}
/** Define a trie */
@Override
public void defineTrie(List<String> phraseList){
monotonicLabels.defineTrie(phraseList);
}
@Override
public void setProperty(Token token,String prop,String value){
monotonicLabels.setProperty(token,prop,value);
}
@Override
public void setProperty(Token token,String prop,String value,Details details){
monotonicLabels.setProperty(token,prop,value,details);
}
@Override
public void setProperty(Span span,String prop,String value){
if(subBase.contains(span))
monotonicLabels.setProperty(span,prop,value);
}
@Override
public void setProperty(Span span,String prop,String value,Details details){
if(subBase.contains(span))
monotonicLabels.setProperty(span,prop,value,details);
}
@Override
public void addToType(Span span,String type){
if(subBase.contains(span))
monotonicLabels.addToType(span,type);
}
@Override
public void addToType(Span span,String type,Details details){
if(subBase.contains(span))
monotonicLabels.addToType(span,type,details);
}
@Override
public void declareType(String type){
monotonicLabels.declareType(type);
}
@Override
public void require(String annotationType,String fileToLoad){
monotonicLabels.require(annotationType,fileToLoad);
}
@Override
public void require(String annotationType,String fileToLoad,
AnnotatorLoader loader){
monotonicLabels.require(annotationType,fileToLoad,loader);
}
}