All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.tuscany.sca.interfacedef.Operation Maven / Gradle / Ivy

There is a newer version: 2.0.1
Show newest version
/*
 * 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.tuscany.sca.interfacedef;

import java.util.List;
import java.util.Map;

import javax.xml.namespace.QName;

import org.apache.tuscany.sca.interfacedef.util.WrapperInfo;
import org.apache.tuscany.sca.interfacedef.util.XMLType;
import org.apache.tuscany.sca.policy.PolicySubject;

/**
 * Represents an operation on a service interface.
 *
 * @version $Rev: 1061329 $ $Date: 2011-01-20 16:57:06 +0200 (Thu, 20 Jan 2011) $
 * @tuscany.spi.extension.inheritfrom
 */
public interface Operation extends Cloneable, PolicySubject {
    /**
     * Returns the name of the operation.
     *
     * @return the name of the operation
     */
    String getName();

    /**
     * Sets the name of the operation.
     *
     * @param name the name of the operation
     */
    void setName(String name);

    /**
     * Returns true if the model element is unresolved.
     *
     * @return true if the model element is unresolved.
     */
    boolean isUnresolved();

    /**
     * Sets whether the model element is unresolved.
     *
     * @param unresolved whether the model element is unresolved
     */
    void setUnresolved(boolean unresolved);

    /**
     * Get the data type that represents the input of this operation. The logic
     * type is a list of data types and each element represents a parameter
     *
     * @return the inputType
     */
    DataType> getInputType();

    /**
     * @param inputType
     */
    void setInputType(DataType> inputType);

    /**
     * Get the data type for the output
     *
     * @return the outputType
     */  
    DataType> getOutputType();
    /**
     * @param outputType
     */
    void setOutputType(DataType> outputType);

    /**
     * Get a list of data types to represent the faults/exceptions
     *
     * @return the faultTypes
     */
    List getFaultTypes();

    /**
     * @param faultTypes
     */
    void setFaultTypes(List faultTypes);

    /**
     * Get the owning interface
     * @return
     */
    Interface getInterface();

    /**
     * Set the owning interface
     * @param interfaze
     */
    void setInterface(Interface interfaze);

    /**
     * Indicate if the operation is non-blocking
     * @return
     */
    boolean isNonBlocking();
    
    /**
     * Indicate if the operation is an async server operation
     * @return - true if the operation is an async server operation
     */
    boolean isAsyncServer();

    /**
     * Set the operation to be non-blocking
     */
    void setNonBlocking(boolean nonBlocking);

    /**
     * @return the wrapperInfo
     */
    WrapperInfo getWrapper();

    /**
     * @param wrapperInfo the wrapperInfo to set
     */
    void setWrapper(WrapperInfo wrapperInfo);

    /**
     * @return the wrapperStyle
     */
    boolean isWrapperStyle();

    /**
     * @param wrapperStyle the wrapperStyle to set
     */
    void setWrapperStyle(boolean wrapperStyle);

    /**
     * @deprecated This should be the WrapperInfo.getDataBinding()
     * Get the databinding for the operation
     * @return
     */
    @Deprecated
    String getDataBinding();

    /**
     * @deprecated This should be the WrapperInfo.setDataBinding()
     * Set the databinding for the operation
     * @param dataBinding
     */
    @Deprecated
    void setDataBinding(String dataBinding);

    /**
     * Returns true if the operation is dynamic.
     *
     * @return true if the operation is dynamic otherwise false
     */
    boolean isDynamic();

    /**
     * Set if the operation is dynamic
     * @param b
     */
    void setDynamic(boolean b);

    /**
     * Get the synthesized fault beans for this operation
     *
     * @return the fault beans
     */
    Map>> getFaultBeans();

    /**
     * Set the synthesized fault beans for this operation
     * @param faultBeans
     */
    void setFaultBeans(Map>> faultBeans);

    /**
     * Get a map of attributes assoicated with the operation
     * @return A map of attributes
     */
    Map getAttributes();

    /**
     * Implementations must support cloning.
     */
    Object clone() throws CloneNotSupportedException;

    /**
     * Returns the ParameterModes
     * @return
     */
    List getParameterModes();
    
    /**
     * Returns true 
     * @return
     */
    public boolean hasArrayWrappedOutput();
    
    public void setHasArrayWrappedOutput(boolean value);
    
    /**
     * A special databinding for input message of an operation
     */
    String IDL_INPUT = "idl:input";
    /**
     * A special databinding for output message of an operation
     */
    String IDL_OUTPUT = "idl:output";
    /**
     * A special databinding for fault message of an operation
     */
    String IDL_FAULT = "idl:fault";
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy