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    }