Class MetaData

    • Field Detail

      • EMPTY

        public static final MetaData EMPTY
        MetaData object that indicates no data is expected.
      • NO_META_DATA

        public static final MetaData NO_META_DATA
        Meta data object to use when none is available. Please do not use this, except when the payload is varying.
    • Constructor Detail

      • MetaData

        public MetaData​(String name,
                        String description,
                        ObjectDescriptor... objectDescriptors)
        Construct a new MetaData object that can check an array of Object.
        Parameters:
        name - String; name of the new MetaData object, which cannot be null or the empty string
        description - String; description of the new MetaData object
        objectDescriptors - ObjectDescriptor...; array of ObjectDescriptor. This constructor does <b>not</b> make a deep copy of this array; subsequent modification of the contents of the provided objectDescriptors array will affect the behavior of the MetaData object.
    • Method Detail

      • getName

        public String getName()
        Retrieve the name of this MetaData object.
        Returns:
        String; the name of this MetaData object
      • getDescription

        public String getDescription()
        Retrieve the description of this MetaData object.
        Returns:
        String; the description of this MetaData object
      • size

        public int size()
        Retrieve the length of described Object array.
        Returns:
        int; the length of the described Object array; returns 0 if this MetaDataObject is not set up to validate an array of Object.
      • getObjectDescriptors

        public ObjectDescriptor[] getObjectDescriptors()
        Returns a safe copy of the object descriptors. As the object descriptors are immutable objects, they are not cloned.
        Returns:
        ObjectDescriptor[]; a safe copy of the object descriptors
      • getFieldName

        public String getFieldName​(int index)
        Retrieve the name of one element in the Object array.
        Parameters:
        index - int; index of the element in the Object array (must be 0 if this MetaData object is not set up to validate an array of Object)
        Returns:
        String; name of the argument
      • getObjectDescription

        public String getObjectDescription​(int index)
        Retrieve the description of one element in the Object array.
        Parameters:
        index - int; index of the element in the Object array (must be 0 if this MetaData object is not set up to validate an array of Object)
        Returns:
        String; description of the argument
      • getObjectClass

        public Class<?> getObjectClass​(int index)
        Retrieve the java class of one element in the Object array.
        Parameters:
        index - int; index of the element in the Object array (must be 0 if this MetaData object is not set up to validate an array of Object)
        Returns:
        Class<?>; java class of the element
      • getObjectDescriptor

        public ObjectDescriptor getObjectDescriptor​(int index)
        Select one of the ObjectDescriptors.
        Parameters:
        index - int; index of the ObjectDescriptor (must be 0 in case this MetaData object is not set up to validate an array of Object)
        Returns:
        ObjectDescriptor; the selected ObjectDescriptor
      • verifyComposition

        public final void verifyComposition​(Object[] objectArray)
        Verify that an Object array has the prescribed composition.
        Parameters:
        objectArray - Object[]; the Object array to verify. If the array is supposed to have 0 length, a null pointer is deemed OK.
        Throws:
        NullPointerException - when the object array is null and the size of the object descriptors array is not 0 or 1
        IndexOutOfBoundsException - when size of the object descriptors array is not equal to the size of the object array
        ClassCastException - when one of the objects is of the wrong class
      • verifyComposition

        public final void verifyComposition​(Object object)
        Verify that an Object has the prescribed composition. In order for one object to fit the metadata, the array of expected objects needs to have a length of 1.
        Parameters:
        object - Object; the Object to verify.
        Throws:
        IndexOutOfBoundsException - when size of the object descriptors array is not 1
        ClassCastException - when the object is of the wrong class
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object