001package org.maltparser.core.symbol.nullvalue; 002 003import org.maltparser.core.symbol.SymbolTable; 004/** 005 006 007@author Johan Hall 008@since 1.0 009 */ 010public 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("rootnode")) { 045 nullValueEncoding = NullValueDegree.ROOTNODE; 046 } else if (nullValueStrategy.equalsIgnoreCase("novalue")) { 047 nullValueEncoding = NullValueDegree.ROOTNODE; 048 } else { 049 nullValueEncoding = NullValueDegree.ONE; 050 } 051 } 052 053 public String toString() { 054 final StringBuilder sb = new StringBuilder(); 055 056 return sb.toString(); 057 } 058}