Package org.djutils.metadata
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-2021 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:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static MetaData
EMPTY
MetaData object that indicates no data is expected.static MetaData
NO_META_DATA
Meta data object to use when none is available.
-
Constructor Summary
Constructors Constructor Description MetaData(String name, String description, ObjectDescriptor... objectDescriptors)
Construct a new MetaData object that can check an array of Object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object obj)
String
getDescription()
Retrieve the description of this MetaData object.String
getFieldName(int index)
Retrieve the name of one element in the Object array.String
getName()
Retrieve the name of this MetaData object.Class<?>
getObjectClass(int index)
Retrieve the java class of one element in the Object array.String
getObjectDescription(int index)
Retrieve the description of one element in the Object array.ObjectDescriptor
getObjectDescriptor(int index)
Select one of the ObjectDescriptors.ObjectDescriptor[]
getObjectDescriptors()
Returns a safe copy of the object descriptors.int
hashCode()
int
size()
Retrieve the length of described Object array.String
toString()
void
verifyComposition(Object object)
Verify that an Object has the prescribed composition.void
verifyComposition(Object[] objectArray)
Verify that an Object array has the prescribed composition.
-
-
-
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 stringdescription
- String; description of the new MetaData objectobjectDescriptors
- ObjectDescriptor...; array of ObjectDescriptor. This constructor does <b>not</b> make a deep copy of this array; subsequent modification of the contents of the providedobjectDescriptors
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 1IndexOutOfBoundsException
- when size of the object descriptors array is not equal to the size of the object arrayClassCastException
- 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 1ClassCastException
- when the object is of the wrong class
-
-