    001    package org.maltparser.core.feature.value;
    002
    003    import org.maltparser.core.feature.function.Function;
    004    /**
    005     *
    006     *
    007     * @author Johan Hall
    008     * @since 1.0
    009    **/
    010    public class SingleFeatureValue extends FeatureValue {
    011            protected int indexCode;
    012            protected String symbol;
    013            protected double value;
    014
    015            public SingleFeatureValue(Function function) {
    016                    super(function);
    017                    setIndexCode(0);
    018                    setSymbol(null);
    019                    setValue(0);
    020            }
    021
    022            public void reset() {
    023                    super.reset();
    024                    setIndexCode(0);
    025                    setSymbol(null);
    026                    setValue(0);
    027            }
    028
    029            public void update(int indexCode, String symbol, boolean nullValue, double value) {
    030                    this.indexCode = indexCode;
    031                    this.symbol = symbol;
    032                    this.nullValue = nullValue;
    033                    this.value = value;
    034            }
    035
    036            public int getIndexCode() {
    037                    return indexCode;
    038            }
    039
    040            public void setIndexCode(int code) {
    041                    this.indexCode = code;
    042            }
    043
    044            public String getSymbol() {
    045                    return symbol;
    046            }
    047
    048            public void setSymbol(String symbol) {
    049                    this.symbol = symbol;
    050            }
    051
    052            public double getValue() {
    053                    return value;
    054            }
    055
    056            public void setValue(double value) {
    057                    this.value = value;
    058            }
    059
    060            public boolean isMultiple() {
    061                    return false;
    062            }
    063
    064            @Override
    065            public int hashCode() {
    066                    final int prime = 31;
    067                    return prime * (prime + indexCode) + ((symbol == null) ? 0 : symbol.hashCode());
    068            }
    069
    070            public boolean equals(Object obj) {
    071                    if (this == obj)
    072                            return true;
    073                    if (obj == null)
    074                            return false;
    075                    if (getClass() != obj.getClass())
    076                            return false;
    077                    SingleFeatureValue other = (SingleFeatureValue) obj;
    078                    if (indexCode != other.indexCode)
    079                            return false;
    080                    if (symbol == null) {
    081                            if (other.symbol != null)
    082                                    return false;
    083                    } else if (!symbol.equals(other.symbol))
    084                            return false;
    085                    return super.equals(obj);
    086            }
    087            public String toString() {
    088                    StringBuilder sb = new StringBuilder();
    089                    sb.append(super.toString());
    090                    sb.append('{');
    091                    sb.append(symbol);
    092                    sb.append("->");
    093                    sb.append(indexCode);
    094                    sb.append('}');
    095                    return sb.toString();
    096            }
    097    }