package nl.ipo.cds.etl.featuretype; import java.util.Collections; import java.util.HashSet; import java.util.Set; import nl.ipo.cds.domain.FeatureType; import nl.ipo.cds.domain.FeatureTypeAttribute; import nl.ipo.cds.domain.QName; public class DefaultFeatureType implements FeatureType { private final QName qname; private final Set<DefaultFeatureTypeAttribute> attributes; DefaultFeatureType (final QName qname, final Set<DefaultFeatureTypeAttribute> attributes) { if (qname == null) { throw new NullPointerException ("qname is null"); } if (attributes == null) { throw new NullPointerException ("attributes is null"); } this.qname = new DefaultQName (qname); this.attributes = new HashSet<DefaultFeatureTypeAttribute> (attributes); } @Override public QName getName() { return qname; } @Override public Set<FeatureTypeAttribute> getAttributes() { return Collections.<FeatureTypeAttribute>unmodifiableSet (attributes); } @Override public String toString () { final StringBuilder builder = new StringBuilder (); for (final FeatureTypeAttribute attr: getAttributes ()) { if (builder.length () > 0) { builder.append (", "); } builder.append (attr.toString ()); } return getName () + "(" + builder.toString () + ")"; } }