    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                    StringBuilder sb = new StringBuilder();
    063                    sb.append(super.toString());
    064                    sb.append("[null=");
    065                    sb.append(nullValue);
    066                    sb.append("]");
    067                    return sb.toString();
    068            }
    069    }