Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
  * regarding copyright ownership.  The ASF licenses this file
  * to you 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
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
Implementation of an interceptor that enforces pass-by-value semantics on operation invocations by copying the operation input and output data.

$Rev: 909221 $ $Date: 2010-02-12 06:22:11 +0200 (Fri, 12 Feb 2010) $
public class PassByValueInterceptor implements Interceptor {
    private Mediator mediator;
    private Operation operation;
    private Invoker nextInvoker;
    private InvocationChain chain;

Constructs a new PassByValueInterceptor.

dataBindings databinding extension point
operation the intercepted operation
    public PassByValueInterceptor(Mediator mediatorInvocationChain chainOperation operation) {
        this. = mediator;
        this. = chain;
        this. = operation;
    public Message invoke(Message msg) {
        if (.allowsPassByReference()) {
            return .invoke(msg);
        msg.setBody(.copyInput(msg.getBody(), ));
        Message resultMsg = .invoke(msg);
        if (!resultMsg.isFault() && .getOutputType() != null) {
            resultMsg.setBody(.copyOutput(resultMsg.getBody(), ));
        if (resultMsg.isFault()) {
            resultMsg.setFaultBody(.copyFault(resultMsg.getBody(), ));
        return resultMsg;
    public Invoker getNext() {
        return ;
    public void setNext(Invoker next) {
        this. = next;
New to GrepCode? Check out our FAQ X