blob: 7864c2646e6a583e79447e70e16b2e2ff5be4023 [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;
/**
* Represents metadata for an endpoint. Contains information about the name and namespace of the endpoint. Contains exposed operations. This interface
* is intended to be used as input data for implementors of {@link IEndpointGenerator}.
*
* @author Plamen Pavlov
*/
public interface IEndpointMetadata
{
/**
* @return The name of enpoint.
*/
public String getName();
/**
* @return The package/namespace of the endpoint.
*/
public String getPackage();
/**
* @return the name of the service representing this endpoint
*/
public String getServiceName();
/**
* Sets the name of the wsdl:service representing this endpoint.
*
* @param serviceName
*/
public void setServiceName(String serviceName);
/**
* @return the name of the wsdl:port referencing this endpoint which this
*/
public String getPortName();
/**
* Sets the name of the wsdl:port referencing this endpoint which this
*
* @param portName
*/
public void setPortName(String portName);
/**
* @return the wsdl location in case this endpoint is generated from wsdl otherwise <tt>null</tt>
*/
public String getWsdlLocation();
/**
* Sets the wsdl location in case this endpoint is generated from wsdl
*
* @param wsdlLocation
* location
*/
public void setWsdlLocation(String wsdlLocation);
/**
* @return the namespace URI
*/
public String getNamespaceURI();
/**
* sets the namespace URI
*
* @param namespaceURI
*/
public void setNamespaceURI(String namespaceURI);
/**
* @return the name of the Service Endpoint Interface containing WebService methods that will be implemented by this endpoint implementation. This
* method can return <tt>null</tt>
*/
public String getSEIName();
/**
* Sets the Service Endpoint Interface referenced by this endpoint.
*
* @param seiName
* @throws NullPointerException
* in case <tt>seiName</tt> is null
* @throws IllegalArgumentException
* in case <tt>seiName</tt> is empty string
*/
public void setSEIName(String seiName);
/**
* @return The fully qualified name of endpoint.
*/
public String getFullyQualifiedName();
/**
* @return list of added methods
*/
public List<IEndpointMethod> getMethods();
/**
* Creates an empty instance of {@link IEndpointMethod} with <tt>name</tt> and <tt>returnTypeFQName</tt> and adds it to the set of available
* methods.
*
* @param name
* @param returnTypeFQName
* @return created IEndpointMethod for added method
*/
public IEndpointMethod addMethod(String name, String returnTypeFQName);
/**
* Adds {@link IAnnotationPropertyContainer} to the {@link IEndpointMetadata} descriptor.
*
* @param annotationsContainer - Container, which will be added.
*
*/
public void addAnnotationsContainer(final IAnnotationPropertyContainer annotationsContainer);
/**
* Returns Set with {@link IAnnotationPropertyContainer} related to the {@link IEndpointMetadata} descriptor.
*
* @return Set with {@link IAnnotationPropertyContainer}.
*/
public Set<IAnnotationPropertyContainer> getAnnotationsContainer();
}