package org.maltparser.ml.lib; public class MaltFeatureNode implements Comparable<MaltFeatureNode> { int index; double value; public MaltFeatureNode() { index = -1; value = 0; } public MaltFeatureNode(int index, double value) { setIndex(index); setValue(value); } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } public double getValue() { return value; } public void setValue(double value) { this.value = value; } public void clear() { index = -1; value = 0; } public int hashCode() { final int prime = 31; final long temp = Double.doubleToLongBits(value); return prime * (prime + index) + (int) (temp ^ (temp >>> 32)); } public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; MaltFeatureNode other = (MaltFeatureNode) obj; if (index != other.index) return false; if (Double.doubleToLongBits(value) != Double.doubleToLongBits(other.value)) return false; return true; } public int compareTo(MaltFeatureNode aThat) { final int BEFORE = -1; final int EQUAL = 0; final int AFTER = 1; if (this == aThat) return EQUAL; if (this.index < aThat.index) return BEFORE; if (this.index > aThat.index) return AFTER; if (this.value < aThat.value) return BEFORE; if (this.value > aThat.value) return AFTER; return EQUAL; } public String toString() { final StringBuilder sb = new StringBuilder(); sb.append("MaltFeatureNode [index="); sb.append(index); sb.append(", value="); sb.append(value); sb.append("]"); return sb.toString(); } }