blob: de6d735ada48d4eb74818020503783c3ccbaa492 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2004 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.j2ee.internal.model.translator.webservices;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.jst.j2ee.common.CommonPackage;
import org.eclipse.jst.j2ee.internal.J2EEConstants;
import org.eclipse.jst.j2ee.internal.model.translator.common.CommonTranslators;
import org.eclipse.jst.j2ee.webservice.internal.WebServiceConstants;
import org.eclipse.jst.j2ee.webservice.wscommon.WscommonPackage;
import org.eclipse.jst.j2ee.webservice.wsdd.WsddPackage;
import org.eclipse.wst.common.internal.emf.resource.ConstantAttributeTranslator;
import org.eclipse.wst.common.internal.emf.resource.GenericTranslator;
import org.eclipse.wst.common.internal.emf.resource.IDTranslator;
import org.eclipse.wst.common.internal.emf.resource.RootTranslator;
import org.eclipse.wst.common.internal.emf.resource.Translator;
public class WsddTranslator extends RootTranslator implements WsddXmlMapperI, J2EEConstants{
public static WsddTranslator INSTANCE = new WsddTranslator();
private static Translator[] children10;
private static Translator[] children11;
private static WsddPackage WSDD_PKG = WsddPackage.eINSTANCE;
private static WscommonPackage WSCOMMON_PKG = WscommonPackage.eINSTANCE;
private static CommonPackage COMMON_PKG = CommonPackage.eINSTANCE;
protected WsddTranslator() {
super(WEBSERVICES, WsddPackage.eINSTANCE.getWebServices());
}
/* (non-Javadoc)
* @see com.ibm.etools.emf2xml.impl.Translator#getChildren(java.lang.Object, int)
*/
public Translator[] getChildren(Object o, int versionID) {
switch (versionID) {
case (J2EE_1_2_ID) :
case (J2EE_1_3_ID) :
if (children10 == null)
{
children10 = create10Children();
}
return children10;
default :
if (children11 == null)
{
children11 = create11Children();
}
return children11;
}
}
protected Translator[] create10Children() {
return new Translator[] {
IDTranslator.INSTANCE,
new Translator(DESCRIPTION, COMMON_PKG.getCompatibilityDescriptionGroup_Description()),
new Translator(DISPLAY_NAME, COMMON_PKG.getCompatibilityDescriptionGroup_DisplayName()),
new Translator(SMALL_ICON, COMMON_PKG.getCompatibilityDescriptionGroup_SmallIcon()),
new Translator(LARGE_ICON, COMMON_PKG.getCompatibilityDescriptionGroup_LargeIcon()),
create10WebServiceDescTranslator()
};
}
protected Translator[] create11Children() {
return new Translator[] {
IDTranslator.INSTANCE,
new ConstantAttributeTranslator(XML_NS, J2EE_NS_URL),
new ConstantAttributeTranslator(XML_NS_XSI, XSI_NS_URL),
new ConstantAttributeTranslator(XSI_SCHEMA_LOCATION, J2EE_NS_URL+' '+WebServiceConstants.WEBSERVICE_SCHEMA_LOC),
new ConstantAttributeTranslator(VERSION, WebServiceConstants.WEBSERVICE_SCHEMA_VERSION),
CommonTranslators.DESCRIPTIONS_TRANSLATOR,
CommonTranslators.DISPLAYNAMES_TRANSLATOR,
CommonTranslators.ICONS_TRANSLATOR,
create11WebServiceDescTranslator()
};
}
public Translator create10WebServiceDescTranslator() {
GenericTranslator result = new GenericTranslator(WEBSERVICE_DESCRIPTION, WSDD_PKG.getWebServices_WebServiceDescriptions());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
new Translator(DESCRIPTION, WSDD_PKG.getWebServiceDescription_Description()),
new Translator(DISPLAY_NAME, WSDD_PKG.getWebServiceDescription_DisplayName()),
new Translator(SMALL_ICON, WSDD_PKG.getWebServiceDescription_SmallIcon()),
new Translator(LARGE_ICON, WSDD_PKG.getWebServiceDescription_LargeIcon()),
new Translator(WEBSERVICE_DESCRIPTION_NAME, WSDD_PKG.getWebServiceDescription_WebServiceDescriptionName()),
new Translator(WSDL_FILE, WSDD_PKG.getWebServiceDescription_WsdlFile()),
new Translator(JAXRPC_MAPPING_FILE, WSDD_PKG.getWebServiceDescription_JaxrpcMappingFile()),
create10PortComponentTranslator()
});
return result;
}
public Translator create11WebServiceDescTranslator() {
GenericTranslator result = new GenericTranslator(WEBSERVICE_DESCRIPTION, WSDD_PKG.getWebServices_WebServiceDescriptions());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
create11DescriptionTranslator(WSDD_PKG.getWebServiceDescription_DescriptionType()),
create11DisplayNameTranslator(WSDD_PKG.getWebServiceDescription_DisplayNameType()),
create11IconTranslator(WSDD_PKG.getWebServiceDescription_IconType()),
new Translator(WEBSERVICE_DESCRIPTION_NAME, WSDD_PKG.getWebServiceDescription_WebServiceDescriptionName()),
new Translator(WSDL_FILE, WSDD_PKG.getWebServiceDescription_WsdlFile()),
new Translator(JAXRPC_MAPPING_FILE, WSDD_PKG.getWebServiceDescription_JaxrpcMappingFile()),
create11PortComponentTranslator()
});
return result;
}
public Translator create10PortComponentTranslator() {
GenericTranslator result = new GenericTranslator(PORT_COMPONENT, WSDD_PKG.getWebServiceDescription_PortComponents());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
new Translator(DESCRIPTION, WSDD_PKG.getPortComponent_Description()),
new Translator(DISPLAY_NAME, WSDD_PKG.getPortComponent_DisplayName()),
new Translator(SMALL_ICON, WSDD_PKG.getPortComponent_SmallIcon()),
new Translator(LARGE_ICON, WSDD_PKG.getPortComponent_LargeIcon()),
new Translator(PORT_COMPONENT_NAME, WSDD_PKG.getPortComponent_PortComponentName()),
create10WsdlPortTranslator(),
new Translator(SERVICE_ENPOINT_INTERFACE, WSDD_PKG.getPortComponent_ServiceEndpointInterface()),
createServiceImplBeanTranslator(),
createHandler10Translator()
});
return result;
}
public Translator create11PortComponentTranslator() {
GenericTranslator result = new GenericTranslator(PORT_COMPONENT, WSDD_PKG.getWebServiceDescription_PortComponents());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
new Translator(DESCRIPTION, WSDD_PKG.getPortComponent_Description()),
new Translator(DISPLAY_NAME, WSDD_PKG.getPortComponent_DisplayName()),
new Translator(SMALL_ICON, WSDD_PKG.getPortComponent_SmallIcon()),
new Translator(LARGE_ICON, WSDD_PKG.getPortComponent_LargeIcon()),
new Translator(PORT_COMPONENT_NAME, WSDD_PKG.getPortComponent_PortComponentName()),
CommonTranslators.createQNameTranslator(WSDL_PORT, WSDD_PKG.getPortComponent_WsdlPort()),
new Translator(SERVICE_ENPOINT_INTERFACE, WSDD_PKG.getPortComponent_ServiceEndpointInterface()),
createServiceImplBeanTranslator(),
createHandler11Translator()
});
return result;
}
public Translator create10WsdlPortTranslator() {
GenericTranslator result = new GenericTranslator(WSDL_PORT, WSDD_PKG.getPortComponent_WsdlPort());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
new Translator(NAMESPACEURI, COMMON_PKG.getQName_NamespaceURI()),
new Translator(LOCALPART, COMMON_PKG.getQName_LocalPart())
});
return result;
}
public Translator createServiceImplBeanTranslator() {
GenericTranslator result = new GenericTranslator(SERVICE_IMPL_BEAN, WSDD_PKG.getPortComponent_ServiceImplBean());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
new ServletLinkTranslator(),
new EJBLinkTranslator()
});
return result;
}
public Translator createHandler10Translator() {
GenericTranslator result = new GenericTranslator(HANDLER, WSDD_PKG.getPortComponent_Handlers());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
new Translator(DESCRIPTION, COMMON_PKG.getCompatibilityDescriptionGroup_Description()),
new Translator(DISPLAY_NAME, COMMON_PKG.getCompatibilityDescriptionGroup_DisplayName()),
new Translator(SMALL_ICON, COMMON_PKG.getCompatibilityDescriptionGroup_SmallIcon()),
new Translator(LARGE_ICON, COMMON_PKG.getCompatibilityDescriptionGroup_LargeIcon()),
new Translator(HANDLER_NAME, WSDD_PKG.getHandler_HandlerName()),
new Translator(HANDLER_CLASS, WSDD_PKG.getHandler_HandlerClass()),
create10InitParamTranslator(),
create10SOAPHeaderTranslator(),
new SOAPRoleTranslator()
});
return result;
}
public Translator createHandler11Translator() {
GenericTranslator result = new GenericTranslator(HANDLER, WSDD_PKG.getPortComponent_Handlers());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
CommonTranslators.DESCRIPTIONS_TRANSLATOR,
CommonTranslators.DISPLAYNAMES_TRANSLATOR,
CommonTranslators.ICONS_TRANSLATOR,
new Translator(HANDLER_NAME, WSDD_PKG.getHandler_HandlerName()),
new Translator(HANDLER_CLASS, WSDD_PKG.getHandler_HandlerClass()),
create11InitParamTranslator(),
CommonTranslators.createQNameTranslator(SOAP_HEADER, WSDD_PKG.getHandler_SoapHeaders()),
new SOAPRoleTranslator()
});
return result;
}
public Translator create10InitParamTranslator() {
GenericTranslator result = new GenericTranslator(INIT_PARAM, WSDD_PKG.getHandler_InitParams());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
new Translator(PARAM_NAME, WSCOMMON_PKG.getInitParam_ParamName()),
new Translator(PARAM_VALUE, WSCOMMON_PKG.getInitParam_ParamValue()),
new Translator(DESCRIPTION, WSCOMMON_PKG.getInitParam_Description())
});
return result;
}
public Translator create11InitParamTranslator() {
GenericTranslator result = new GenericTranslator(INIT_PARAM, WSDD_PKG.getHandler_InitParams());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
create11DescriptionTranslator(WSCOMMON_PKG.getInitParam_DescriptionTypes()),
new Translator(PARAM_NAME, WSCOMMON_PKG.getInitParam_ParamName()),
new Translator(PARAM_VALUE, WSCOMMON_PKG.getInitParam_ParamValue())
});
return result;
}
public Translator create10SOAPHeaderTranslator() {
GenericTranslator result = new GenericTranslator(SOAP_HEADER, WSDD_PKG.getHandler_SoapHeaders());
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
new Translator(NAMESPACEURI, COMMON_PKG.getQName_NamespaceURI()),
new Translator(LOCALPART, COMMON_PKG.getQName_LocalPart())
});
return result;
}
public Translator create11DescriptionTranslator(EStructuralFeature afeature) {
GenericTranslator result = new GenericTranslator(DESCRIPTION, afeature);
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
new Translator(LANG, COMMON_PKG.getDescription_Lang(), Translator.DOM_ATTRIBUTE),
new Translator(Translator.TEXT_ATTRIBUTE_VALUE, COMMON_PKG.getDescription_Value())
});
return result;
}
public Translator create11DisplayNameTranslator(EStructuralFeature afeature) {
GenericTranslator result = new GenericTranslator(DISPLAY_NAME, afeature);
result.setChildren(new Translator[] {
IDTranslator.INSTANCE,
new Translator(LANG, COMMON_PKG.getDisplayName_Lang(), Translator.DOM_ATTRIBUTE),
new Translator(Translator.TEXT_ATTRIBUTE_VALUE, COMMON_PKG.getDisplayName_Value())
});
return result;
}
private Translator create11IconTranslator(EStructuralFeature afeature) {
GenericTranslator result = new GenericTranslator(ICON, afeature);
result.setChildren(new Translator[] {
new Translator(LANG, COMMON_PKG.getIconType_Lang(), Translator.DOM_ATTRIBUTE),
IDTranslator.INSTANCE,
new Translator(SMALL_ICON, COMMON_PKG.getIconType_SmallIcon()),
new Translator(LARGE_ICON, COMMON_PKG.getIconType_LargeIcon())
});
return result;
}
}