001 package org.maltparser.core.symbol.nullvalue;
002
003 import org.maltparser.core.symbol.SymbolTable;
004 /**
005
006
007 @author Johan Hall
008 @since 1.0
009 */
010 public class InputNullValues extends NullValues {
011
012 public InputNullValues(String nullValueStrategy, SymbolTable table) {
013 super(table);
014 setNullValueEncoding(nullValueStrategy);
015 makeNullValues();
016 }
017
018 protected void makeNullValues() {
019 if (nullValueEncoding == NullValueDegree.NONE || nullValueEncoding == NullValueDegree.ONE) {
020 nullValue2SymbolMap.put(NullValueId.NO_NODE, "#null#");
021 nullValue2SymbolMap.put(NullValueId.ROOT_NODE, "#null#");
022 nullValue2CodeMap.put(NullValueId.NO_NODE, 0);
023 nullValue2CodeMap.put(NullValueId.ROOT_NODE, 0);
024 symbol2CodeMap.put("#null#", 0);
025 code2SymbolMap.put(0, "#null#");
026 setNextCode(1);
027 } else if (nullValueEncoding == NullValueDegree.ROOTNODE) {
028 nullValue2SymbolMap.put(NullValueId.NO_NODE, "#null#");
029 nullValue2SymbolMap.put(NullValueId.ROOT_NODE, "#rootnode#");
030 nullValue2CodeMap.put(NullValueId.NO_NODE, 0);
031 nullValue2CodeMap.put(NullValueId.ROOT_NODE, 1);
032 symbol2CodeMap.put("#null#", 0);
033 symbol2CodeMap.put("#rootnode#", 1);
034 code2SymbolMap.put(0, "#null#");
035 code2SymbolMap.put(1, "#rootnode#");
036 setNextCode(2);
037 }
038 }
039
040 protected void setNullValueEncoding(String nullValueStrategy) {
041 setNullValueStrategy(nullValueStrategy);
042 if (nullValueStrategy.equalsIgnoreCase("none")) {
043 nullValueEncoding = NullValueDegree.NONE;
044 } else if (nullValueStrategy.equalsIgnoreCase("rootlabel")) {
045 nullValueEncoding = NullValueDegree.ONE;
046 } else if (nullValueStrategy.equalsIgnoreCase("rootnode")) {
047 nullValueEncoding = NullValueDegree.ROOTNODE;
048 } else if (nullValueStrategy.equalsIgnoreCase("novalue")) {
049 nullValueEncoding = NullValueDegree.ROOTNODE;
050 } else {
051 nullValueEncoding = NullValueDegree.ONE;
052 }
053 }
054
055 public String toString() {
056 StringBuilder sb = new StringBuilder();
057
058 return sb.toString();
059 }
060 }