com.sun.xml.ws.policy.spi
Class AbstractQNameValidator

java.lang.Object
  extended by com.sun.xml.ws.policy.spi.AbstractQNameValidator
All Implemented Interfaces:
PolicyAssertionValidator
Direct Known Subclasses:
JCapsPolicyValidator

public abstract class AbstractQNameValidator
extends Object
implements PolicyAssertionValidator

This abstract policy assertion validator validates assertions by their qualified name. Server and client side validation methods return Fitness based on following schema:

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 validateClientSide(PolicyAssertion) and validateServerSide(PolicyAssertion) methods.

Author:
Marek Potociar (marek.potociar at sun.com)

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.sun.xml.ws.policy.spi.PolicyAssertionValidator
PolicyAssertionValidator.Fitness
 
Constructor Summary
protected AbstractQNameValidator(Collection<QName> serverSideAssertions, Collection<QName> clientSideAssertions)
          Constructor that takes two collections specifying qualified names of assertions supported on either server or client side.
 
Method Summary
 String[] declareSupportedDomains()
          Each service provider that implements this SPI must make sure to identify all possible domains it supports.
 PolicyAssertionValidator.Fitness validateClientSide(PolicyAssertion assertion)
          An implementation of this method must return: Fitness.UNKNOWN if the policy assertion type is not recognized Fitness.SUPPORTED if the policy assertion is supported in the client-side context Fitness.UNSUPPORTED if the policy assertion is recognized however it's content is not supported.
 PolicyAssertionValidator.Fitness validateServerSide(PolicyAssertion assertion)
          An implementation of this method must return: Fitness.UNKNOWN if the policy assertion type is not recognized Fitness.SUPPORTED if the policy assertion is supported in the server-side context Fitness.UNSUPPORTED if the policy assertion is recognized however it's content is not supported.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractQNameValidator

protected AbstractQNameValidator(Collection<QName> serverSideAssertions,
                                 Collection<QName> 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 PolicyAssertionValidator.declareSupportedDomains()).

Parameters:
serverSideAssertions - The server-side assertions.
clientSideAssertions - The client-side assertions.
Method Detail

declareSupportedDomains

public String[] declareSupportedDomains()
Description copied from interface: PolicyAssertionValidator
Each service provider that implements this SPI must make sure to identify all possible domains it supports. This operation must be implemented as idempotent (must return same values on multiple calls).

It is legal for two or more PolicyAssertionValidators to support the same domain. In such case, the most significant result returned from validation methods will be eventually assigned to the assertion. The significance of validation results is as follows (from most to least significant):

  1. SUPPORTED
  2. UNSUPPORTED
  3. INVALID
  4. UNKNOWN

Specified by:
declareSupportedDomains in interface PolicyAssertionValidator
Returns:
String array holding String representations of identifiers of all supported domains. Usually a domain identifier is represented by a namespace.

validateClientSide

public PolicyAssertionValidator.Fitness validateClientSide(PolicyAssertion assertion)
Description copied from interface: PolicyAssertionValidator
An implementation of this method must return:

Specified by:
validateClientSide in interface PolicyAssertionValidator
Parameters:
assertion - A policy asssertion (See PolicyAssertion). May contain nested policies and assertions.
Returns:
fitness of the assertion on in the client-side context. Must not be null.

validateServerSide

public PolicyAssertionValidator.Fitness validateServerSide(PolicyAssertion assertion)
Description copied from interface: PolicyAssertionValidator
An implementation of this method must return: For each assetion that will be eventually marked with validation value of UNKNOWN, UNSUPPORTED or INVALID, the policy processor will log a SEVERE error and throw an exception.

Specified by:
validateServerSide in interface PolicyAssertionValidator
Parameters:
assertion - A policy asssertion (See PolicyAssertion). May contain nested policies and assertions.
Returns:
fitness of the assertion on in the server-side context. Must not be null.


Copyright © 2005-2015 Oracle Corporation. All Rights Reserved.