class Athena::Validator::ExecutionContext
inherits Reference
#
Basic implementation of AVD::ExecutionContextInterface
.
Included modules
Athena::Validator::ExecutionContextInterface
Methods#
#add_violation(message : String, code : String, value : _) : Nil
#
Adds a violation with the provided message, and code, value parameter.
The provided value is added to the violations' parameters as "{{ value }}"
.
#add_violation(message : String, code : String) : Nil
#
Adds a violation with the provided message and code
#add_violation(message : String, parameters : Hash(String, String) = {} of String => String) : Nil
#
Adds a violation with the provided message, and optionally parameters based on the node currently being validated.
#build_violation(message : String, code : String, value : _) : AVD::Violation::ConstraintViolationBuilderInterface
#
Returns an AVD::Violation::ConstraintViolationBuilderInterface
with the provided message, and code, and value.
The provided value is added to the violations' parameters as "{{ value }}"
.
#build_violation(message : String, code : String) : AVD::Violation::ConstraintViolationBuilderInterface
#
Returns an AVD::Violation::ConstraintViolationBuilderInterface
with the provided message, and code.
#build_violation(message : String, parameters : Hash(String, String) = {} of String => String) : AVD::Violation::ConstraintViolationBuilderInterface
#
Returns an AVD::Violation::ConstraintViolationBuilderInterface
with the provided message.
Can be used to add additional information to the AVD::Violation::ConstraintViolationInterface
being adding it to self
.
#constraint : AVD::Constraint | ::Nil
#
Returns the AVD::Constraint
that is currently being validated, if any.
#metadata : AVD::Metadata::MetadataInterface | ::Nil
#
Returns an AVD::Metadata::MetadataInterface
object for the value currently being validated.
This would be an AVD::Metadata::PropertyMetadataInterface
if the current value is an object,
an AVD::Metadata::GenericMetadata
if the current value is a plain value, and an
AVD::Metadata::ClassMetadata
if the current value value is an entire class.
#property_name : String | ::Nil
#
Returns the property name of the node currently being validated.
#property_path(path : String = "") : String
#
Returns the path to the property that is currently being validated.
For example, given a Person
object that has an Address
property;
the property path would be empty initially. When the address
property
is being validated the property_path would be address
.
When the street property of the related Address
object is being validated
the property_path would be address.street
.
This also works for collections of objects. If the Person
object had multiple
addresses, the property path when validating the first street of the first address
would be addresses[0].street
.
#root
#
Returns the object initially passed to AVD::Validator::ValidatorInterface#validate
.
#validator : AVD::Validator::ValidatorInterface
#
Returns a reference to an AVD::Validator::ValidatorInterface
that can be used to validate
additional constraints as part of another constraint.
#violations : AVD::Violation::ConstraintViolationList
#
Returns the AVD::Violation::ConstraintViolationInterface
instances generated by the validator thus far.