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