    001    package org.maltparser.core.feature.value;
    002
    003    import org.maltparser.core.feature.function.Function;
    004    /**
    005     *
    006     *
    007     * @author Johan Hall
    008     * @since 1.0
    009    **/
    010    public class AddressValue extends FunctionValue {
    011            private Object address;
    012
    013            public AddressValue(Function function) {
    014                    super(function);
    015                    setAddress(null);
    016            }
    017
    018            public void reset() {
    019                    setAddress(null);
    020            }
    021
    022            public Class<?> getAddressClass() {
    023                    if (address != null) {
    024                            return address.getClass();
    025                    }
    026                    return null;
    027            }
    028
    029            public Object getAddress() {
    030                    return address;
    031            }
    032
    033            public void setAddress(Object address) {
    034                    this.address = address;
    035            }
    036
    037            public boolean equals(Object obj) {
    038                    if (this == obj)
    039                            return true;
    040                    if (obj == null)
    041                            return false;
    042                    if (getClass() != obj.getClass())
    043                            return false;
    044                    AddressValue other = (AddressValue) obj;
    045                    if (address == null) {
    046                            if (other.address != null)
    047                                    return false;
    048                    } else if (!address.equals(other.address))
    049                            return false;
    050                    return super.equals(obj);
    051            }
    052
    053            public int hashCode() {
    054                    return 31 + ((address == null) ? 0 : address.hashCode());
    055            }
    056
    057            public String toString() {
    058                    final StringBuilder sb = new StringBuilder();
    059                    sb.append(super.toString());
    060                    sb.append(address.toString());
    061                    return sb.toString();
    062            }
    063    }