001package org.maltparser.core.feature.value;
002
003import org.maltparser.core.feature.function.Function;
004
005/**
006 *  
007 *
008 * @author Johan Hall
009**/
010public abstract class FeatureValue extends FunctionValue {
011        protected boolean nullValue;
012        
013        public FeatureValue(Function function) {
014                super(function);
015                setNullValue(true);
016        }
017        
018        public void reset() {
019                setNullValue(true);
020        }
021
022        public boolean isNullValue() {
023                return nullValue;
024        }
025
026        public void setNullValue(boolean nullValue) {
027                this.nullValue = nullValue;
028        }
029        
030        public abstract boolean isMultiple();
031        
032        public boolean equals(Object obj) {
033                if (this == obj)
034                        return true;
035                if (obj == null)
036                        return false;
037                if (getClass() != obj.getClass())
038                        return false;
039                return super.equals(obj);
040        }
041        
042        public String toString() {
043                StringBuilder sb = new StringBuilder();
044                sb.append(super.toString());
045                sb.append("[null=");
046                sb.append(nullValue);
047                sb.append("]");
048                return sb.toString();
049        }
050}