blob: ad21cf02d1b62d234a9b33288f887893018ab5d6 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 by SAP AG, Walldorf.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* SAP AG - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.ws.jaxws.dom.runtime.provider;
import java.util.List;
import java.util.Set;
import org.eclipse.jst.ws.jaxws.utils.annotations.IAnnotationPropertyContainer;
/**
* An interface representing method in endpoint.
*
* @author Georgi Vachkov
*/
public interface IEndpointMethod
{
/**
* @return the method name
*/
public String getName();
/**
* @return the returnFQName
*/
public String getReturnType();
/**
* @param returnTypeFQName
* sets the return type
*/
public void setReturnType(String returnTypeFQName);
/**
* @return human readable method representation
*/
public String getSignature();
/**
* @return set of thrown exceptions
*/
public Set<String> getExceptions();
/**
* @param exceptionFQName
* add thrown exception to the method
*/
public void addException(String exceptionFQName);
/**
* @return list of method params on the order they appear in method
*/
public List<IMethodParameter> getParameters();
/**
* creates new param ans adds it to the end of parameters list.
*
* @param type fully qualified type name
* @param name parameter name
* @return {@link IMethodParameter} creates
*/
public IMethodParameter addParameter(String type, String name);
/**
* Adds {@link IAnnotationPropertyContainer} to the {@link IEndpointMethod} descriptor.
*
* @param annotationsContainer - Container, which will be added.
*
*/
public void addAnnotationsContainer(final IAnnotationPropertyContainer annotationsContainer);
/**
* Returns Set with {@link IAnnotationPropertyContainer} related to the {@link IEndpointMethod} descriptor.
*
* @return Set with {@link IAnnotationPropertyContainer}.
*/
public Set<IAnnotationPropertyContainer> getAnnotationsContainer();
}