package edu.stanford.nlp.trees.treebank; import java.io.File; /** * Generic interface for mapping one string to another given some contextual evidence. * * @author Spence Green * */ public interface Mapper { /** * Perform initialization prior to the first call to <code>map</code>. * * @param path A filename for data on disk used during mapping * @param options Variable length array of strings for options. Option format may * vary for the particular class instance. */ public void setup(File path, String... options); /** * Maps from one string representation to another. * * @param parent <code>element</code>'s context (e.g., the parent node in a parse tree) * @param element The string to be transformed. * @return The transformed string */ public String map(String parent, String element); /** * Indicates whether <code>child</code> can be converted to another encoding. In the ATB, for example, * if a punctuation character is labeled with the "PUNC" POS tag, then that character should not * be converted from Buckwalter to UTF-8. * * @param parent <code>element</code>'s context (e.g., the parent node in a parse tree) * @param child The string to be transformed. * @return True if the string encoding can be changed. False otherwise. */ public boolean canChangeEncoding(String parent, String child); }