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    }