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 }