001package org.maltparser.core.syntaxgraph; 002 003import java.util.Set; 004 005import org.maltparser.core.exception.MaltChainedException; 006import org.maltparser.core.symbol.SymbolTable; 007/** 008* 009* 010* @author Johan Hall 011*/ 012public interface Element { 013 /** 014 * Adds a label (a string value) to the symbol table and to the graph element. 015 * 016 * @param table the symbol table 017 * @param symbol a label symbol 018 * @throws MaltChainedException 019 */ 020 public void addLabel(SymbolTable table, String symbol) throws MaltChainedException; 021 /** 022 * Adds a label (an integer value) to the symbol table and to the graph element. 023 * 024 * @param table the symbol table 025 * @param code a label code 026 * @throws MaltChainedException 027 */ 028 public void addLabel(SymbolTable table, int code) throws MaltChainedException; 029 /** 030 * Adds the labels of the label set to the label set of the graph element. 031 * 032 * @param labelSet a label set. 033 * @throws MaltChainedException 034 */ 035 public void addLabel(LabelSet labelSet) throws MaltChainedException; 036 /** 037 * Returns <i>true</i> if the graph element has a label for the symbol table, otherwise <i>false</i>. 038 * 039 * @param table the symbol table 040 * @return <i>true</i> if the graph element has a label for the symbol table, otherwise <i>false</i>. 041 * @throws MaltChainedException 042 */ 043 public boolean hasLabel(SymbolTable table) throws MaltChainedException; 044 /** 045 * Returns the label symbol(a string representation) of the symbol table if it exists, otherwise 046 * an exception is thrown. 047 * 048 * @param table the symbol table 049 * @return the label (a string representation) of the symbol table if it exists. 050 * @throws MaltChainedException 051 */ 052 public String getLabelSymbol(SymbolTable table) throws MaltChainedException; 053 /** 054 * Returns the label code (an integer representation) of the symbol table if it exists, otherwise 055 * an exception is thrown. 056 * 057 * @param table the symbol table 058 * @return the label code (an integer representation) of the symbol table if it exists 059 * @throws MaltChainedException 060 */ 061 public int getLabelCode(SymbolTable table) throws MaltChainedException; 062 /** 063 * Returns <i>true</i> if the graph element has one or more labels, otherwise <i>false</i>. 064 * 065 * @return <i>true</i> if the graph element has one or more labels, otherwise <i>false</i>. 066 */ 067 public boolean isLabeled(); 068 /** 069 * Returns the number of labels of the graph element. 070 * 071 * @return the number of labels of the graph element. 072 */ 073 public int nLabels(); 074 /** 075 * Returns a set of symbol tables (labeling functions or label types) that labels the graph element. 076 * 077 * @return a set of symbol tables (labeling functions or label types) 078 */ 079 public Set<SymbolTable> getLabelTypes(); 080 /** 081 * Returns the label set. 082 * 083 * @return the label set. 084 */ 085 public LabelSet getLabelSet(); 086 087 public void removeLabel(SymbolTable table) throws MaltChainedException; 088 public void removeLabels() throws MaltChainedException; 089 090 /** 091 * Returns the graph (structure) in which the graph element belongs to. 092 * 093 * @return the graph (structure) in which the graph element belongs to. 094 */ 095 public LabeledStructure getBelongsToGraph(); 096 /** 097 * Sets the graph (structure) in which the graph element belongs to. 098 * 099 * @param belongsToGraph a graph (structure). 100 */ 101 public void setBelongsToGraph(LabeledStructure belongsToGraph); 102 /** 103 * Resets the graph element. 104 * 105 * @throws MaltChainedException 106 */ 107 public void clear() throws MaltChainedException; 108}