###############################################################################
# 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
###############################################################################
AbstractClassNotImplementedException_Error_Message=Abstract class {0} cannot be used as runtime class because it is not extended by non abstract class which is suitable for a runtime class
ConstructorNotExposableException_Error_Message=Constructor {0} cannot be exposed as web service operation
EndpointTypeValidator_ERR_MSG_BINARYCLASS	= Class {0} is binary class and cannot be annotated
EndpointTypeValidator_ERR_MSG_NOTCLASS		= {0} is not a class
EndpointTypeValidator_ERR_MSG_ABSTRACT		= Class {0} is abstract
EndpointTypeValidator_ERR_MSG_CONSTRUCTOR	= Class {0} does not have a default constructor
EndpointTypeValidator_ERR_MSG_NOTPUBLIC		= Class {0} is not public and cannot be used as web service endpoint
EndpointTypeValidator_ERR_MSG_FINAL			= Class {0} is final and cannot be used as web service endpoint
EndpointTypeValidator_ERR_MSG_HASFINALYZE	= Class {0} contains finalize() method and cannot be used as web service endpoint
HasInadmisableInnerTypesException_Error_Message=Class {0} has inner types that are not public and static
InheritanceAndImplementationExecption_Error_Message=Class {0} extends {1} and implements custom interface (multiple inheritance is not allowed)
InterfacesNotSupportedException_Error_Message={0} is a interface, and JAXB cannot handle interfaces
MethodNotPublicException_Error_Message=Method {0} is not public and cannot be exposed as a web service operation
MultipleImplementationException_Error_Message=Class {0} implements both interface {1} and interface {2} (multiple inheritance is not allowed)
RemoteObjectException_Error_Message=Class {0} is a remote Object


WsDomStartupParticipant_Startup_Job_Message	=Loading Web Service DOM...
WorkspaceCUFinder_LOADING_CANCELED=JAX-WS DOM loading canceled
JAXWS_DOM_LOADING=Loading DOM for JAX-WS Web Services
SeiImplementationValidator_METHOD_NOT_FOUND = Method {0} cannot be found in the implementation bean {1}. It is required that the bean implements all the methods of the specified service endpoint interface
SeiImplementationValidator_METHOD_HASDIFFERENT_EXCEPTIONS = Method {0} in the implementation bean {1} is declared to throw exceptions that differ from exceptions thrown by the same method in the service endpoint interface
SeiImplementationValidator_METHOD_NOT_PUBLIC= Method {0} in the implementation bean {1} is not public and therefore cannot be exposed as a web service operation


SeiValidator_NOT_COMPILATIONUNIT_MSG = {0} is a binary interface and cannot annotated as a service endpoint interface
SeiValidator_NOT_INTERFACE_MSG = {0} is not a interface and cannot be used as a service endpoint interface
SeiValidator_NOT_OUTER_MSG = {0} is not a outer interface and cannot be used as a service endpoint interface
SeiValidator_NOT_PUBLIC_MSG = {0} is not a public interface and cannot be used as a service endpoint interface
TypeNotFoundException_Error_Message=Class {0} cannot be found

DomValidationConstraintDescriptor_WS_DOM_VALIDATION_CONSTRAINT=WebService DOM validation constraint
TargetNsValidUriConstraint_URI_SYNTAX_ERROR=URI syntax error at index {0} of input String ''{1}''. Reason: {2}
