/** * Validate a {@link DerivedString} representation. Subclasses should override this method if they can * provide a validation algorithm which does not rely on canonical strings but works on representation state only. * * @param value Representation value * @return Validated representation or CanonicalValueViolation * @throws NullPointerException if {@code value} is null */ protected Variant<T, CanonicalValueViolation> validate(final T value) { return validate(value, value.toCanonicalString()); }
/** * Validate a {@link DerivedString} representation. Subclasses should override this method if they can * provide a validation algorithm which does not rely on canonical strings but works on representation state only. * * @param value Representation value * @return Validated representation or CanonicalValueViolation * @throws NullPointerException if {@code value} is null */ protected Variant<T, CanonicalValueViolation> validate(final T value) { return validate(value, value.toCanonicalString()); }
@Override public final Variant<T, CanonicalValueViolation> validateRepresentation(final T value, final String canonicalString) { return validatedClass.isAssignableFrom(value.validator().getValidatedRepresentationClass()) ? Variant.ofFirst(validatedClass.cast(value)) : validate(value, requireNonNull(canonicalString)); }
@Override public final Variant<T, CanonicalValueViolation> validateRepresentation(final T value, final String canonicalString) { return validatedClass.isAssignableFrom(value.validator().getValidatedRepresentationClass()) ? Variant.ofFirst(validatedClass.cast(value)) : validate(value, requireNonNull(canonicalString)); }
@Override public final Variant<T, CanonicalValueViolation> validateRepresentation(final T value) { return validatedClass.isAssignableFrom(value.validator().getValidatedRepresentationClass()) ? Variant.ofFirst(validatedClass.cast(value)) : validate(value); }
@Override public final Variant<T, CanonicalValueViolation> validateRepresentation(final T value) { return validatedClass.isAssignableFrom(value.validator().getValidatedRepresentationClass()) ? Variant.ofFirst(validatedClass.cast(value)) : validate(value); }