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 }