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:
- namethe name of the data class
- propertiesall the- DataProperty's of the class (more on that later)
- methodsall the magical creation- DataMethods of the class (more on that later)
- constructorMethodthe constructor- DataMethodof the class
##DataProperty
A data property represents a single property within a data object.
- namethe name of the property
- classNamethe name of the class of the property
- typethe- DataTypeof the property (more on that later)
- validateshould the property be automatically validated
- isPromotedis the property constructor promoted
- hasDefaultValuehas the property a default value
- defaultValuethe default value of the property
- castthe cast assigned to the property
- transformerthe transformer assigned to the property
- inputMappedNamethe name used to map a property name given
- outputMappedNamethe name used to map a property name onto
- attributesa collection of- ReflectionAttributes assigned to the property
##DataMethod
A data method represents a method within a data object.
- namethe name of the method
- parametersall the- DataParameter's of the class (more on that later)
- isStaticwhether the method is static
- isPublicwhether the method is public
- isCustomCreationMethodwhether the method is a custom creation method (=magical creation method)
##DataParameter
A data parameter represents a single parameter/property within a data method.
- namethe name of the parameter
- hasDefaultValuehas the parameter a default value
- defaultValuethe default value of the parameter
- isPromotedis the property/parameter constructor promoted
- typethe- DataTypeof the parameter (more on that later)
##DataType
- isNullablecan the type be nullable
- isMixedis the type a mixed type
- isLazycan the type be lazy
- isOptionalcan the type be optional
- isDataObjectis the type a data object
- isDataCollectableis the type a data collection
- dataClassthe class of the data object/collection
- acceptedTypesan array of types accepted by this type + their base types