    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    }