alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Apache CXF example source code file (OperationInfo.java)

This example Apache CXF source code file (OperationInfo.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Apache CXF tags/keywords

faultinfo, faultinfo, interfaceinfo, list, log, log, logging, message, messageinfo, messageinfo, nullpointerexception, operationinfo, operationinfo, qname, string, string, threading, threads, util

The Apache CXF OperationInfo.java source code

/**
 * 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
 *
 * 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.apache.cxf.service.model;

import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;

import javax.xml.namespace.QName;

import org.apache.cxf.common.i18n.Message;
import org.apache.cxf.common.logging.LogUtils;

public class OperationInfo extends AbstractPropertiesHolder implements NamedItem {
    private static final Logger LOG = LogUtils.getL7dLogger(OperationInfo.class);
    InterfaceInfo intf;
    QName opName;
    String inName;
    MessageInfo inputMessage;
    String outName;
    MessageInfo outputMessage;
    Map<QName, FaultInfo> faults;
    OperationInfo unwrappedOperation;
    List<String> parameterOrdering;     

    public OperationInfo() {
    }
    
    OperationInfo(InterfaceInfo it, QName n) { 
        intf = it;
        setName(n);
    }
    OperationInfo(OperationInfo op) {
        intf = op.getInterface();
        setName(op.getName());
    }
    
    /**
     * Returns the name of the Operation.
     * @return the name of the Operation
     */
    public QName getName() {
        return opName;
    }
    /**
     * Sets the name of the operation.
     * @param name the new name of the operation
     */
    public final void setName(QName name) {
        if (name == null) {
            throw new NullPointerException("Operation Name cannot be null.");                
        }        
        opName = name;
    }
    public InterfaceInfo getInterface() {
        return intf;
    }

    
    public MessageInfo createMessage(QName nm, MessageInfo.Type type) {
        return new MessageInfo(this, type, nm);
    }

    public MessageInfo getOutput() {
        return outputMessage;
    }
    public String getOutputName() {
        return outName;
    }
    public void setOutput(String nm, MessageInfo out) {
        outName = nm;
        outputMessage = out;
        if (unwrappedOperation != null && unwrappedOperation.getOutput() != null) {
            unwrappedOperation.getOutput().setDelegate(out, false);
        }
    }    
    public boolean hasOutput() {
        return outputMessage != null;
    }

    public MessageInfo getInput() {
        return inputMessage;
    }
    public String getInputName() {
        return inName;
    }
    public void setInput(String nm, MessageInfo in) {
        inName = nm;
        inputMessage = in;
        if (unwrappedOperation != null && unwrappedOperation.getInput() != null) {
            unwrappedOperation.getInput().setDelegate(in, false);
        }
    }
    public boolean hasInput() {
        return inputMessage != null;
    }
    
    public boolean isOneWay() {
        return inputMessage != null && outputMessage == null;
    }
    
    public boolean isUnwrappedCapable() {
        return unwrappedOperation != null;
    }
    
    public OperationInfo getUnwrappedOperation() {
        return unwrappedOperation;
    }
    public void setUnwrappedOperation(OperationInfo op) {
        unwrappedOperation = op;
    }
    public boolean isUnwrapped() {
        return false;
    }
    
    
    /**
     * Adds an fault to this operation.
     *
     * @param name the fault name.
     */
    public FaultInfo addFault(QName name, QName message) {
        if (name == null) {
            throw new NullPointerException(new Message("FAULT.NAME.NOT.NULL", LOG).toString());
        } 
        if (faults != null && faults.containsKey(name)) {
            throw new IllegalArgumentException(
                new Message("DUPLICATED.FAULT.NAME", LOG, new Object[] {name}).toString());
        }
        FaultInfo fault = new FaultInfo(name, message, this);
        addFault(fault);
        return fault;
    }

    /**
     * Adds a fault to this operation.
     *
     * @param fault the fault.
     */
    public synchronized void addFault(FaultInfo fault) {
        if (faults == null) { 
            faults = new ConcurrentHashMap<QName, FaultInfo>(4);
        }
        faults.put(fault.getFaultName(), fault);
    }

    /**
     * Removes a fault from this operation.
     *
     * @param name the qualified fault name.
     */
    public void removeFault(QName name) {
        if (faults != null) {
            faults.remove(name);
        }
    }

    /**
     * Returns the fault with the given name, if found.
     *
     * @param name the name.
     * @return the fault; or <code>null if not found.
     */
    public FaultInfo getFault(QName name) {
        if (faults != null) {
            return faults.get(name);
        }
        return null;
    }
    
    public boolean hasFaults() {
        return faults != null && faults.size() > 0;
    }

    /**
     * Returns all faults for this operation.
     *
     * @return all faults.
     */
    public Collection<FaultInfo> getFaults() {
        if (faults == null) {
            return Collections.emptyList();
        }
        return Collections.unmodifiableCollection(faults.values());
    }
    
    public void setParameterOrdering(List<String> o) {
        this.parameterOrdering = o;
    }
    
    public List<String> getParameterOrdering() {
        return parameterOrdering;
    }
    
    @Override
    public String toString() {
        return new StringBuilder().append("[OperationInfo: ")
            .append(opName)
            .append("]").toString();
    }
    
    public int hashCode() {
        return opName == null ? -1 : opName.hashCode();
    }
    
    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }

        if (!(o instanceof OperationInfo)) {
            return false;
        }
        OperationInfo oi = (OperationInfo)o;
        return equals(opName, oi.opName) 
            && equals(inputMessage, oi.inputMessage)
            && equals(outputMessage, oi.outputMessage)
            && equals(faults, oi.faults)
            && equals(intf.getName(), oi.intf.getName()); 
    }
    
}

Other Apache CXF examples (source code examples)

Here is a short list of links related to this Apache CXF OperationInfo.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.