Class AbstractLazyAttributeTypeImpl

    • Constructor Detail

      • AbstractLazyAttributeTypeImpl

        public AbstractLazyAttributeTypeImpl​(Name name,
                                             Class<?> binding,
                                             boolean identified,
                                             boolean isAbstract,
                                             List<Filter> restrictions,
                                             InternationalString description)
        Constructor arguments have the same meaning as in AttributeTypeImpl.
    • Method Detail

      • buildSuper

        public abstract AttributeType buildSuper()
        Subclasses must override this method to return the super type of this type or null if none. This method will only be called once at most.
        Returns:
        super type or null
      • isIdentified

        public boolean isIdentified()
        Description copied from interface: AttributeType
        Indicates if the type is identified or not.

        If this method returns true, then the corresponding attribute must have a unique identifier, ie, Attribute#getID() must return a value, and cannot be null.

        Specified by:
        isIdentified in interface AttributeType
        Returns:
        true if the attribute is identified, otherwise false.
        See Also:
        AttributeType.isIdentified()
      • getBinding

        public Class<?> getBinding()
        Description copied from interface: PropertyType
        The java class that values of properties of the property type are bound to.

        This value is never null.

        Specified by:
        getBinding in interface PropertyType
        Returns:
        The binding of the property type.
        See Also:
        PropertyType.getBinding()
      • getRestrictions

        public List<Filter> getRestrictions()
        Description copied from interface: PropertyType
        List of restrictions used define valid values for properties of this property type.

        Each restriction is a Filter object in which the property is passed through. If Filter.evaluate(Object) returns true the restriction is met. If false is returned then the restriction has not been met and the property should be considered invalid. Remember to check getSuper().getRestrictions() as well.

        This method returns an empty set in the case of no restrictions and should not return null.

        Specified by:
        getRestrictions in interface PropertyType
        Returns:
        List used to validate allowable values.
        See Also:
        PropertyType.getRestrictions()
      • getUserData

        public Map<Object,​Object> getUserData()
        Description copied from interface: PropertyType
        A map of "user data" which enables applications to store "application-specific" information against a property type.

        As an example, consider an application that builds a PropertyType from an xml schema. A useful bit of information to attach to the PropertyType is the original schema itself, in whatever construct it might be stored in:

         
         XSDComplexTypeDefinition complexTypeDef = ...;
         PropertyType type = buildPropertyType( complexTypeDef );
        
         type.getUserData().put( XSDComplexTypeDefintion.class, complexTypeDef );
         
         
        Specified by:
        getUserData in interface PropertyType
        Returns:
        A map of user data.
        See Also:
        PropertyType.getUserData()
      • equals

        public boolean equals​(Object other)
        Equality by name. Yes, this may be a surprise to some client code, but how else do you define equality in the face of cyclic type definitions, without breaking encapsulation to analyse the full graph of types?
        Specified by:
        equals in interface PropertyType
        Overrides:
        equals in class Object
        Returns:
        true if other is a PropertyType with the same name
        See Also:
        Object.equals(java.lang.Object)
      • hashCode

        public int hashCode()
        Description copied from interface: PropertyType
        Hashcode override based on PropertyType.getName().
        Specified by:
        hashCode in interface PropertyType
        Overrides:
        hashCode in class Object
        Returns:
        getName().hashCode()
        See Also:
        Object.hashCode()
      • toString

        public String toString()
        Overrides:
        toString in class Object
        See Also:
        Object.toString()