This package has some internal structures which are used to analyze data objects and their properties. They can be helpful when writing casts, transformers or rule inferrers.
##DataClass
The DataClass represents the structure of a data object and has the following properties:
name the name of the data class
properties all the DataProperty's of the class (more on that later)
methods all the magical creation DataMethods of the class (more on that later)
constructorMethod the constructor DataMethod of the class
##DataProperty
A data property represents a single property within a data object.
name the name of the property
className the name of the class of the property
type the DataType of the property (more on that later)
validate should the property be automatically validated
isPromoted is the property constructor promoted
hasDefaultValue has the property a default value
defaultValue the default value of the property
cast the cast assigned to the property
transformer the transformer assigned to the property
inputMappedName the name used to map a property name given
outputMappedName the name used to map a property name onto
attributes a collection of ReflectionAttributes assigned to the property
##DataMethod
A data method represents a method within a data object.
name the name of the method
parameters all the DataParameter's of the class (more on that later)
isStatic whether the method is static
isPublic whether the method is public
isCustomCreationMethod whether the method is a custom creation method (=magical creation method)
##DataParameter
A data parameter represents a single parameter/property within a data method.
name the name of the parameter
hasDefaultValue has the parameter a default value
defaultValue the default value of the parameter
isPromoted is the property/parameter constructor promoted
type the DataType of the parameter (more on that later)
##DataType
isNullable can the type be nullable
isMixed is the type a mixed type
isLazy can the type be lazy
isOptional can the type be optional
isDataObject is the type a data object
isDataCollectable is the type a data collection
dataClass the class of the data object/collection
acceptedTypes an array of types accepted by this type + their base types