    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    }