package nl.ipo.cds.etl.featuretype; import nl.ipo.cds.domain.AttributeType; import nl.ipo.cds.domain.FeatureTypeAttribute; import nl.ipo.cds.domain.QName; public class DefaultFeatureTypeAttribute implements FeatureTypeAttribute { private final QName qname; private final AttributeType type; DefaultFeatureTypeAttribute (final QName qname, final AttributeType type) { if (qname == null) { throw new NullPointerException ("qname is null"); } if (type == null) { throw new NullPointerException ("type is null"); } this.qname = new DefaultQName (qname); this.type = type; } @Override public QName getName() { return qname; } @Override public AttributeType getType() { return type; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((qname == null) ? 0 : qname.hashCode()); result = prime * result + ((type == null) ? 0 : type.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; DefaultFeatureTypeAttribute other = (DefaultFeatureTypeAttribute) obj; if (qname == null) { if (other.qname != null) return false; } else if (!qname.equals(other.qname)) return false; if (type != other.type) return false; return true; } @Override public String toString () { return getName ().getLocalPart () + ": " + getType (); } @Override public int compareTo (final FeatureTypeAttribute o) { final int result = getName ().compareTo (o.getName ()); return result == 0 ? getType ().compareTo (o.getType ()) : result; } }