public static class BasicPolymorphicTypeValidator.Builder extends Object
BasicPolymorphicTypeValidator
instances. Criteria for allowing
polymorphic subtypes is specified by adding rules in priority order, starting
with the rules to evaluate first: when a matching rule is found, its status
(PolymorphicTypeValidator.Validity.ALLOWED
or PolymorphicTypeValidator.Validity.DENIED
) is used and no further
rules are checked.Modifier and Type | Method and Description |
---|---|
BasicPolymorphicTypeValidator.Builder |
allowIfBaseType(Class<?> baseOfBase)
Method for appending matcher that will allow all subtypes in cases where
nominal base type is specified class, or one of its subtypes.
|
BasicPolymorphicTypeValidator.Builder |
allowIfBaseType(Pattern patternForBase)
Method for appending matcher that will allow all subtypes in cases where
nominal base type's class name matches given
Pattern
For example, call to |
BasicPolymorphicTypeValidator.Builder |
allowIfBaseType(String prefixForBase)
Method for appending matcher that will allow all subtypes in cases where
nominal base type's class name starts with specific prefix.
|
BasicPolymorphicTypeValidator.Builder |
allowIfSubType(Class<?> subTypeBase)
Method for appending matcher that will allow specific subtype (regardless
of declared base type) if it is
subTypeBase or its subtype. |
BasicPolymorphicTypeValidator.Builder |
allowIfSubType(Pattern patternForSubType)
Method for appending matcher that will allow specific subtype (regardless
of declared base type) in cases where subclass name matches given
Pattern . |
BasicPolymorphicTypeValidator.Builder |
allowIfSubType(String prefixForSubType)
Method for appending matcher that will allow specific subtype (regardless
of declared base type)
in cases where subclass name starts with specified prefix
For example, call to
|
BasicPolymorphicTypeValidator |
build() |
BasicPolymorphicTypeValidator.Builder |
denyForExactBaseType(Class<?> baseTypeToDeny)
Method for appending matcher that will mark any polymorphic properties with exact
specific class to be invalid.
|
public BasicPolymorphicTypeValidator.Builder allowIfBaseType(Class<?> baseOfBase)
builder.allowIfBaseType(MyBaseType.class)would indicate that any polymorphic properties where declared base type is
MyBaseType
(or subclass thereof) would allow all legal (assignment-compatible)
subtypes.public BasicPolymorphicTypeValidator.Builder allowIfBaseType(Pattern patternForBase)
Pattern
For example, call to
builder.allowIfBaseType(Pattern.compile("com\\.mycompany\\..*")would indicate that any polymorphic properties where declared base type is in package
com.mycompany
would allow all legal (assignment-compatible)
subtypes.
NOTE! Pattern
match is applied using
if (patternForBase.matcher(typeId).matches()) { }
that is, it must match the whole class name, not just part.
public BasicPolymorphicTypeValidator.Builder allowIfBaseType(String prefixForBase)
builder.allowIfBaseType("com.mycompany.")would indicate that any polymorphic properties where declared base type is in package
com.mycompany
would allow all legal (assignment-compatible)
subtypes.public BasicPolymorphicTypeValidator.Builder denyForExactBaseType(Class<?> baseTypeToDeny)
builder.denyforExactBaseType(Object.class)would indicate that any polymorphic properties where declared base type is
java.lang.Object
would be deemed invalid, and attempt to deserialize values of such types
should result in an exception.public BasicPolymorphicTypeValidator.Builder allowIfSubType(Class<?> subTypeBase)
subTypeBase
or its subtype.
For example, call to
builder.allowIfSubType(MyImplType.class)would indicate that any polymorphic values with type of is
MyImplType
(or subclass thereof)
would be allowed.public BasicPolymorphicTypeValidator.Builder allowIfSubType(Pattern patternForSubType)
Pattern
.
For example, call to
builder.allowIfSubType(Pattern.compile("com\\.mycompany\\.")would indicate that any polymorphic values in package
com.mycompany
would be allowed.
NOTE! Pattern
match is applied using
if (patternForSubType.matcher(typeId).matches()) { }
that is, it must match the whole class name, not just part.
public BasicPolymorphicTypeValidator.Builder allowIfSubType(String prefixForSubType)
builder.allowIfSubType("com.mycompany.")would indicate that any polymorphic values in package
com.mycompany
would be allowed.public BasicPolymorphicTypeValidator build()
Copyright © 2010 - 2020 Adobe. All Rights Reserved