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}