Class ConditionalEmptyValidator
java.lang.Object
jp.ecuacion.lib.core.jakartavalidation.validator.ConditionalEmptyValidator
- All Implemented Interfaces:
jakarta.validation.ConstraintValidator<ConditionalEmpty, Object>
public class ConditionalEmptyValidator
extends Object
implements jakarta.validation.ConstraintValidator<ConditionalEmpty, Object>
Provides the validation logic for
EnumElement.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static ObjectgetFieldValue(String propertyPath, Object instance) Obtains a field value with any scopes and searches fields in super classes.voidinitialize(String[] propertyPath, String conditionPropertyPath, ConditionValuePattern conditionPattern, ConditionOperator conditionOperator, String[] conditionValueString, String conditionValuePropertyPath, boolean validatesWhenConditionNotSatisfied) voidinitialize(ConditionalEmpty annotation) Initializes an instance.protected booleanbooleanExecutes validation check.protected booleanisValidWhenConditionNotSatisfied(Object valueOfField) Is called whenvalidatesWhenConditionNotSatisfiedistrue.static <A extends Annotation>
Optional<A> searchAnnotationPlacedAtClass(Class<?> classOfTargetInstance, Class<A> annotation) Searches for a class annotation in the argument class and its superClasses.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface jakarta.validation.ConstraintValidator
isValid
-
Field Details
-
CONDITION_PROPERTY_PATH
- See Also:
-
CONDITION_PROPERTY_PATH_ITEM_NAME_KEY
- See Also:
-
CONDITION_PROPERTY_PATH_ITEM_NAME
- See Also:
-
CONDITION_PATTERN
- See Also:
-
CONDITION_OPERATOR
- See Also:
-
CONDITION_VALUE_STRING
- See Also:
-
CONDITION_VALUE_PROPERTY_PATH
- See Also:
-
DISPLAY_STRING_PROPERTY_PATH_OF_CONDITION_VALUE_PROPERTY_PATH
- See Also:
-
DISPLAY_STRING_OF_CONDITION_VALUE
- See Also:
-
VALIDATES_WHEN_CONDITION_NOT_SATISFIED
- See Also:
-
-
Constructor Details
-
ConditionalEmptyValidator
public ConditionalEmptyValidator()
-
-
Method Details
-
initialize
Initializes an instance.- Specified by:
initializein interfacejakarta.validation.ConstraintValidator<ConditionalEmpty, Object>
-
isValid
-
isValidWhenConditionNotSatisfied
Is called whenvalidatesWhenConditionNotSatisfiedistrue.It's supposed to overrided by child classes. This method is default method, that's why it always returns
true.- Parameters:
valueOfField- valueOfField- Returns:
- boolean
-
initialize
public void initialize(String[] propertyPath, String conditionPropertyPath, ConditionValuePattern conditionPattern, ConditionOperator conditionOperator, String[] conditionValueString, String conditionValuePropertyPath, boolean validatesWhenConditionNotSatisfied) -
isValid
Executes validation check. -
searchAnnotationPlacedAtClass
public static <A extends Annotation> Optional<A> searchAnnotationPlacedAtClass(Class<?> classOfTargetInstance, Class<A> annotation) Searches for a class annotation in the argument class and its superClasses.The search starts at the argument instance, and if it doesn't have the annotation, It searches the superClass of the instance next.
And if it continues to search the annotation and it reaches to Object.class, it stops to search and returns empty Optional.Search ends when it founds the first annotation. Even if there is another anntation of same class, it ignores and it returns first-found annotation.
-
getFieldValue
Obtains a field value with any scopes and searches fields in super classes.Since Class#getDeclaredField is used in the method, making its scope public causes a spotbugs error.
That's why its scope is protected and when you use it you need to extend this class.Public method jp.ecuacion.lib.core.util.internal.PrivateFieldReadUtil.getFieldValue(String, Object, String) uses reflection to modify a field it gets in its parameter which could increase the accessibility of any class. REFLF_REFLECTION_MAY_INCREASE_ACCESSIBILITY_OF_FIELD
-