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("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                    StringBuilder sb = new StringBuilder();
055                    
056                    return sb.toString();
057            }
058    }