------------------------
CRUDlex\\EntityValidator
------------------------

.. php:namespace: CRUDlex

.. php:class:: EntityValidator

    Performs validation of the field values of the given {@see Entity}.

    .. php:attr:: entity

        protected

        The entity to validate.

    .. php:attr:: definition

        protected

        The entities definition.

    .. php:method:: fieldTypeToRules($field, AbstractData $data, Validator $validator)

        Builds up the validation rules for a single field according to the
        entity definition type.

        :type $field: string
        :param $field: the field for the rules
        :type $data: AbstractData
        :param $data: the data instance to use for validation
        :type $validator: Validator
        :param $validator: the validator to use
        :returns: array the validation rules for the field

    .. php:method:: fieldConstraintsToRules($field, AbstractData $data)

        Builds up the validation rules for a single field according to the
        entity definition constraints.

        :type $field: string
        :param $field: the field for the rules
        :type $data: AbstractData
        :param $data: the data instance to use for validation
        :returns: array the validation rules for the field

    .. php:method:: buildUpRules(AbstractData $data, Validator $validator)

        Builds up the validation rules for the entity according to its
        definition.

        :type $data: AbstractData
        :param $data: the data instance to use for validation
        :type $validator: Validator
        :param $validator: the validator to use
        :returns: array the validation rules for the entity

    .. php:method:: buildUpData()

        Builds up the data to validate from the entity.

        :returns: array a map field to raw value

    .. php:method:: __construct(Entity $entity)

        Constructor.

        :type $entity: Entity
        :param $entity: the entity to validate

    .. php:method:: validate(AbstractData $data, $expectedVersion)

        Validates the entity against the definition.

        :type $data: AbstractData
        :param $data: the data access instance used for counting things
        :type $expectedVersion: integer
        :param $expectedVersion: the version to perform the optimistic locking check on
        :returns: array an array with the fields "valid" and "errors"; valid provides a quick check whether the given entity passes the validation and errors is an array with all errored fields as keys and arrays as values; this field arrays contains the actual errors on the field: "boolean", "floating", "integer", "dateTime" (for dates and datetime fields), "inSet", "reference", "required", "unique", "value" (only for the version field, set if the optimistic locking failed).
