001 package org.maltparser.core.feature.value;
002
003 import org.maltparser.core.feature.function.Function;
004
005 /**
006 *
007 *
008 * @author Johan Hall
009 * @since 1.0
010 **/
011 public abstract class FeatureValue extends FunctionValue {
012 protected boolean nullValue;
013 protected int cardinality;
014
015 public FeatureValue(Function function) {
016 super(function);
017 setNullValue(true);
018 setCardinality(0);
019 }
020
021 public void reset() {
022 setNullValue(true);
023 }
024
025 public boolean isNullValue() {
026 return nullValue;
027 }
028
029 public void setNullValue(boolean nullValue) {
030 this.nullValue = nullValue;
031 }
032
033 /**
034 * Returns the cardinality (the number of distinct values) of the feature
035 *
036 * @return the cardinality (the number of distinct values) of the feature
037 */
038 public int getCardinality() {
039 return cardinality;
040 }
041
042 /**
043 * Sets the cardinality (the number of distinct values) of the feature
044 *
045 * @param cardinality the cardinality (the number of distinct values)
046 */
047 public void setCardinality(int cardinality) {
048 this.cardinality = cardinality;
049 }
050
051 public boolean equals(Object obj) {
052 if (this == obj)
053 return true;
054 if (obj == null)
055 return false;
056 if (getClass() != obj.getClass())
057 return false;
058 return super.equals(obj);
059 }
060
061 public String toString() {
062 return super.toString()+ "[ null=" + nullValue + ", cardinality="+cardinality+" ] ";
063 }
064 }