Class MetaData

java.lang.Object
org.djutils.metadata.MetaData
All Implemented Interfaces:
Serializable

public class MetaData extends Object implements Serializable
MetaDataInterface; documenting Object arrays.
Copyright (c) 2020-2024 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://djutils.org. The DJUTILS project is distributed under a three-clause BSD-style license, which can be found at https://djutils.org/docs/license.html.
Author:
Alexander Verbraeck, Peter Knoppers
See Also:
  • Field Details

    • 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 Details

    • 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 Details

    • 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
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object