Class AnnotationType.Impl

  • All Implemented Interfaces:
    AnnotationType
    Enclosing interface:
    AnnotationType

    public static class AnnotationType.Impl
    extends AnnotationType.Abstract

    An implementation of AnnotationType.

    To build an instance of AnnotationType.Impl, first invoke the no-args constructor, and then use the setPropertyConstraint method to build the property->constraint mapping.

    A convenient class for when you need an AnnotationType instance and don't want to write your own
    Since:
    1.3
    Author:
    Matthew Pocock, Thomas Down
    • Constructor Detail

      • Impl

        public Impl()
        Create a new Impl with no constraints.
      • Impl

        public Impl​(PropertyConstraint defaultPC,
                    Location defaultCC)
        Create a new Impl with a default property and cardinality constraint.
        Parameters:
        defaultPC - the default PropertyConstraint
        defaultCC - the default CardinalityConstraint
      • Impl

        public Impl​(CollectionConstraint unknown)
        Create a new Impl with a default collection constraint.
        Parameters:
        unknown - the default CollectionConstraint
    • Method Detail

      • setDefaultConstraint

        public void setDefaultConstraint​(CollectionConstraint cc)
        Description copied from interface: AnnotationType
        Specifies the default constraint to apply to properties where no other constraint is specified.
        Parameters:
        cc - The default constraint.
      • getDefaultConstraint

        public CollectionConstraint getDefaultConstraint()
        Description copied from interface: AnnotationType
        Get the CollectionConstraint that will be applied to all properties without an explicit binding. This defaults to CollectionConstraint.ALL.

        If you want to find out exactly what constraint will be applied to properties with no explicitly defined constraints

        Returns:
        the default CollectionConstraint
      • getConstraint

        public CollectionConstraint getConstraint​(Object key)
        Description copied from interface: AnnotationType

        Retrieve the constraint that will be applied to all properties with a given key.

        For an Annotation to be accepted, each key in getProperties() must be present in the annotation and each of the values associated with those properties must match the constraint.

        If you want to find out exactly what constraints will be applied to a particular propery key
        Parameters:
        key - the property to be validated.
        Returns:
        PropertyConstraint the constraint by which the values must be accepted.
      • setConstraint

        public void setConstraint​(Object key,
                                  CollectionConstraint cc)
        Description copied from interface: AnnotationType
        Specifies the constraint to apply to the specified property.
        Parameters:
        key - the name of the property to constrain
        cc - the constraint to apply to this slot.
      • getProperties

        public Set getProperties()
        Description copied from interface: AnnotationType
        Retrieve the set of properties for which constraints have been explicity specified. Discover which properties have explicit constraints
        Returns:
        the Set of properties to validate.
      • setComment

        public void setComment​(String comment)
        Description copied from interface: AnnotationType
        Set the comment for the whole AnnotationType. This is human-readable text.
        Parameters:
        comment - the new comment
      • getComment

        public String getComment()
        Description copied from interface: AnnotationType
        Get the comment for the whole AnnotationType. This is human-readable text.
        Returns:
        the comment
      • setComment

        public void setComment​(Object key,
                               String comment)
        Description copied from interface: AnnotationType
        Set the comment for a particular property. This is a human-readable description of the property.
        Parameters:
        key - the property to comment on
        comment - the comment
      • getComment

        public String getComment​(Object key)
        Description copied from interface: AnnotationType
        Get the comment for a particular property. This is a human-readable description of the property.
        Parameters:
        key - the property to get a comment for
        Returns:
        the comment