/*
* Copyright 2005 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.ws.soap.server;
import org.springframework.ws.server.EndpointInterceptor;
import org.springframework.ws.server.EndpointInvocationChain;
/**
* SOAP-specific subclass of the {@code EndpointInvocationChain}. Adds associated actors (SOAP 1.1) or roles (SOAP
* 1.2). Used by the {@code SoapMessageDispatcher} to determine the MustUnderstand headers for particular
* endpoint.
*
* @author Arjen Poutsma
* @see #getActorsOrRoles()
* @see SoapMessageDispatcher
* @since 1.0.0
*/
public class SoapEndpointInvocationChain extends EndpointInvocationChain {
private String[] actorsOrRoles;
private boolean isUltimateReceiver = true;
/**
* Create new {@code SoapEndpointInvocationChain}.
*
* @param endpoint the endpoint object to invoke
*/
public SoapEndpointInvocationChain(Object endpoint) {
super(endpoint);
}
/**
* Create new {@code SoapEndpointInvocationChain}.
*
* @param endpoint the endpoint object to invoke
* @param interceptors the array of interceptors to apply
*/
public SoapEndpointInvocationChain(Object endpoint, EndpointInterceptor[] interceptors) {
super(endpoint, interceptors);
}
/**
* Create new {@code EndpointInvocationChain}.
*
* @param endpoint the endpoint object to invoke
* @param interceptors the array of interceptors to apply
* @param actorsOrRoles the array of actorsOrRoles to set
* @param isUltimateReceiver whether this chain fullfils the SOAP 1.2 Ultimate receiver role
*/
public SoapEndpointInvocationChain(Object endpoint,
EndpointInterceptor[] interceptors,
String[] actorsOrRoles,
boolean isUltimateReceiver) {
super(endpoint, interceptors);
this.actorsOrRoles = actorsOrRoles;
this.isUltimateReceiver = isUltimateReceiver;
}
/**
* Gets the actors (SOAP 1.1) or roles (SOAP 1.2) associated with an invocation of this chain and its contained
* interceptors and endpoint.
*
* @return a string array of URIs for SOAP actors/roles
*/
public String[] getActorsOrRoles() {
return actorsOrRoles;
}
/** Indicates whether this chain fulfills the SOAP 1.2 Ultimate Receiver role. Default is {@code true}. */
public boolean isUltimateReceiver() {
return isUltimateReceiver;
}
}