Class UniqueNameFeatureTypeImpl

  • All Implemented Interfaces:
    AttributeType, ComplexType, FeatureType, PropertyType
    Direct Known Subclasses:
    ComplexFeatureTypeImpl

    public class UniqueNameFeatureTypeImpl
    extends FeatureTypeImpl
    A specialisation of FeatureTypeImpl that avoids equality tests on feature types with cyclic definitions by considering features types to be equal if and only if their names are equal.

    Users of this class must not create multiple instances with the same name unless they represent the same type, because other parts of the implementation will assume they are equal, and if they are not, Bad Things Will Happen.

    It should be noted that app-schema does not support the multiple definition XSD types with the same name. This restriction allows multiple XSD elements and thus WFS feature types (with different names) to have the same XSD type, because the XSD type can be recognised by name even if it has a cyclic definition. This simplified equality testing allows FeatureTypeCache to handle these types, despite their cyclic definition preventing a full recursive implementation of equals(Object)equals(). Unit test coverage is in GeoServer app-schema-test DuplicateTypeTest.

    Author:
    Ben Caradoc-Davies (CSIRO Earth Science and Resource Engineering)