AbstractQNameValidatorpublic abstract class AbstractQNameValidator extends Object implements PolicyAssertionValidatorThis abstract policy assertion validator validates assertions by their qualified
name. Server and client side validation methods return {@link Fitness} based on
following schema:
- {@link Fitness#SUPPORTED} - if the assertion qualified name is in the list of
supported assertion names on the server/client side
- {@link Fitness#UNSUPPORTED} - if the assertion qualified name is not in the list of
supported assertion names on the server/client side, however it is in the list of
assertion names supported on the other side
- {@link Fitness#UNKNOWN} - if the assertion qualified name is not present in the any of
the lists of supported assertion names
For some domains such validation may be sufficient enough. Other domains may
use functionality of this base class as a first step validation before any attempts
to validate content of the assertion. To do this one needs to override and reuse
the default behavior of {@link #validateClientSide(PolicyAssertion)} and
{@link #validateServerSide(PolicyAssertion)} methods. |
Fields Summary |
---|
private final Set | supportedDomains | private final Collection | serverAssertions | private final Collection | clientAssertions |
Constructors Summary |
---|
protected AbstractQNameValidator(Collection serverSideAssertions, Collection clientSideAssertions)Constructor that takes two collections specifying qualified names of assertions
supported on either server or client side. The set of all assertion namespaces
defines list of all domains supported by the assertion validator
(see {@link PolicyAssertionValidator#declareSupportedDomains}).
if (serverSideAssertions != null) {
this.serverAssertions = new HashSet<QName>(serverSideAssertions);
for (QName assertion : this.serverAssertions) {
supportedDomains.add(assertion.getNamespaceURI());
}
} else {
this.serverAssertions = new HashSet<QName>(0);
}
if (clientSideAssertions != null) {
this.clientAssertions = new HashSet<QName>(clientSideAssertions);
for (QName assertion : this.clientAssertions) {
supportedDomains.add(assertion.getNamespaceURI());
}
} else {
this.clientAssertions = new HashSet<QName>(0);
}
|
|