blob: 896d4acf8321fe6df651ded8a2433f91e9a743b2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2005 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
*******************************************************************************/
/*
* Created on Mar 31, 2003
*
*/
package org.eclipse.jst.j2ee.internal.model.translator.ejb;
import org.eclipse.jst.j2ee.common.CommonPackage;
import org.eclipse.jst.j2ee.ejb.EjbPackage;
import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
import org.eclipse.jst.j2ee.internal.model.translator.common.CommonTranslators;
import org.eclipse.jst.j2ee.internal.model.translator.common.JavaClassTranslator;
import org.eclipse.jst.j2ee.internal.xml.EjbDeploymentDescriptorXmlMapperI;
import org.eclipse.wst.common.internal.emf.resource.IDTranslator;
import org.eclipse.wst.common.internal.emf.resource.Translator;
/**
* @author schacher
*/
public abstract class AbstractEJBTranslator extends Translator implements EjbDeploymentDescriptorXmlMapperI, J2EEVersionConstants {
protected static final EjbPackage EJB_PKG = EjbPackage.eINSTANCE;
protected static final CommonPackage COMMON_PKG = CommonPackage.eINSTANCE;
/**
* @param domNameAndPath
* @param aFeature
*/
public AbstractEJBTranslator(String domNameAndPath) {
super(domNameAndPath, EJB_PKG.getEJBJar_EnterpriseBeans());
}
protected Translator[] create13Children() {
Translator[] start = getCommonBeginMaps13();
Translator[] middle = getSpecificMaps(J2EE_1_3_ID);
Translator[] end = getEndMaps13();
return (Translator[]) concat(start, concat(middle, end));
}
protected Translator[] create14Children() {
Translator[] start = getCommonBeginMaps14();
Translator[] middle = getSpecificMaps(J2EE_1_4_ID);
Translator[] end = getEndMaps14();
//Translator[] deploymentExt = getDeploymentExtensionMaps();
return (Translator[]) concat(start, concat(middle, end));
}
protected Translator[] getCommonBeginMaps13() {
Translator[] beginMaps = 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(EJB_NAME, EJB_PKG.getEnterpriseBean_Name())
};
if (usesHomeRemoteAttributes())
return (Translator[])concat(concat(beginMaps, getHomeRemoteMaps()), getEJBClassMap());
return (Translator[])concat(beginMaps, getEJBClassMap());
}
protected Translator[] getCommonBeginMaps14() {
Translator[] beginMaps = new Translator[] {
IDTranslator.INSTANCE,
CommonTranslators.DESCRIPTIONS_TRANSLATOR,
CommonTranslators.DISPLAYNAMES_TRANSLATOR,
CommonTranslators.ICONS_TRANSLATOR,
new Translator(EJB_NAME, EJB_PKG.getEnterpriseBean_Name())
};
if (usesHomeRemoteAttributes())
return (Translator[])concat(concat(beginMaps, getHomeRemoteMaps()), getEJBClassMap());
return (Translator[])concat(beginMaps, getEJBClassMap());
}
protected Translator[] getHomeRemoteMaps() {
return new Translator[] {
new JavaClassTranslator(HOME, EJB_PKG.getEnterpriseBean_HomeInterface()),
new JavaClassTranslator(REMOTE, EJB_PKG.getEnterpriseBean_RemoteInterface()),
//Begin EJB 2.0
new JavaClassTranslator(LOCAL_HOME, EJB_PKG.getEnterpriseBean_LocalHomeInterface()),
new JavaClassTranslator(LOCAL, EJB_PKG.getEnterpriseBean_LocalInterface())
//End EJB 2.0
};
}
protected Translator[] getEJBClassMap() {
return new Translator[] {
new JavaClassTranslator(EJB_CLASS, EJB_PKG.getEnterpriseBean_EjbClass())
};
}
protected boolean usesHomeRemoteAttributes() {
return true;
}
protected Translator[] getEndMaps13() {
return new Translator[] {
CommonTranslators.JNDI_REF_GROUP_ENV_ENTRY_1_3,
CommonTranslators.JNDI_REF_GROUP_EJB_REF_1_3,
CommonTranslators.JNDI_REF_GROUP_EJB_LOCAL_REF_1_3,
CommonTranslators.createSecurityRoleRefTranslator13(EJB_PKG.getEnterpriseBean_SecurityRoleRefs()),
new SecurityIdentityTranslator(),
CommonTranslators.JNDI_REF_GROUP_RESOURCE_REF_1_3,
CommonTranslators.JNDI_REF_GROUP_RESOURCE_ENV_REF_1_3
};
}
protected Translator[] getEndMaps14() {
return new Translator[] {
CommonTranslators.JNDI_REF_GROUP_ENV_ENTRY_1_4,
CommonTranslators.JNDI_REF_GROUP_EJB_REF_1_4,
CommonTranslators.JNDI_REF_GROUP_EJB_LOCAL_REF_1_4,
CommonTranslators.JNDI_REF_GROUP_SERVICE_REF_1_4,
CommonTranslators.JNDI_REF_GROUP_RESOURCE_REF_1_4,
CommonTranslators.JNDI_REF_GROUP_RESOURCE_ENV_REF_1_4,
CommonTranslators.JNDI_REF_GROUP_MESSAGE_DEST_REF_1_4,
CommonTranslators.createSecurityRoleRefTranslator14(EJB_PKG.getEnterpriseBean_SecurityRoleRefs()),
new SecurityIdentityTranslator(),
};
}
protected abstract Translator[] getSpecificMaps(int versionID);
// protected Translator[] getDeploymentExtensionMaps(){
// return new Translator[] {
// CommonTranslators.createDeploymentExtensionTranslator(EJB_PKG.getEnterpriseBean_Extensions())
// };
// }
}