blob: 2ac13658f6ec99d8c4de659784a673f0d88010f7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2006 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.ejb.internal.impl;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
import org.eclipse.jem.java.JavaHelpers;
import org.eclipse.jem.java.JavaParameter;
import org.eclipse.jem.java.Method;
import org.eclipse.jst.j2ee.ejb.AcknowledgeMode;
import org.eclipse.jst.j2ee.ejb.ActivationConfig;
import org.eclipse.jst.j2ee.ejb.ActivationConfigProperty;
import org.eclipse.jst.j2ee.ejb.AssemblyDescriptor;
import org.eclipse.jst.j2ee.ejb.CMPAttribute;
import org.eclipse.jst.j2ee.ejb.CMRField;
import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity;
import org.eclipse.jst.j2ee.ejb.DestinationType;
import org.eclipse.jst.j2ee.ejb.EJBJar;
import org.eclipse.jst.j2ee.ejb.EJBMethodCategory;
import org.eclipse.jst.j2ee.ejb.EJBRelation;
import org.eclipse.jst.j2ee.ejb.EJBRelationshipRole;
import org.eclipse.jst.j2ee.ejb.EjbFactory;
import org.eclipse.jst.j2ee.ejb.EjbPackage;
import org.eclipse.jst.j2ee.ejb.Entity;
import org.eclipse.jst.j2ee.ejb.ExcludeList;
import org.eclipse.jst.j2ee.ejb.MessageDriven;
import org.eclipse.jst.j2ee.ejb.MessageDrivenDestination;
import org.eclipse.jst.j2ee.ejb.MethodElement;
import org.eclipse.jst.j2ee.ejb.MethodElementKind;
import org.eclipse.jst.j2ee.ejb.MethodPermission;
import org.eclipse.jst.j2ee.ejb.MethodTransaction;
import org.eclipse.jst.j2ee.ejb.MultiplicityKind;
import org.eclipse.jst.j2ee.ejb.Query;
import org.eclipse.jst.j2ee.ejb.QueryMethod;
import org.eclipse.jst.j2ee.ejb.Relationships;
import org.eclipse.jst.j2ee.ejb.ReturnTypeMapping;
import org.eclipse.jst.j2ee.ejb.RoleSource;
import org.eclipse.jst.j2ee.ejb.Session;
import org.eclipse.jst.j2ee.ejb.SessionType;
import org.eclipse.jst.j2ee.ejb.SubscriptionDurabilityKind;
import org.eclipse.jst.j2ee.ejb.TransactionAttributeType;
import org.eclipse.jst.j2ee.ejb.TransactionType;
import org.eclipse.jst.j2ee.ejb.internal.util.CMPKeySynchronizationAdapter;
import org.eclipse.wst.common.internal.emf.utilities.AdapterFactoryDescriptor;
import org.eclipse.wst.common.internal.emf.utilities.AdapterFactoryUtil;
import org.eclipse.wst.common.internal.emf.utilities.ExtendedEcoreUtil;
/**
* @generated
*/
public class EjbFactoryImpl extends EFactoryImpl implements EjbFactory {
/**
* Creates the default factory implementation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static EjbFactory init() {
try {
EjbFactory theEjbFactory = (EjbFactory)EPackage.Registry.INSTANCE.getEFactory("ejb.xmi"); //$NON-NLS-1$
if (theEjbFactory != null) {
return theEjbFactory;
}
}
catch (Exception exception) {
EcorePlugin.INSTANCE.log(exception);
}
return new EjbFactoryImpl();
}
private static List CMP_ADAPTER_FACTORIES = new ArrayList(1);
private static List CMP_ADAPTER_FACTORY_DESCRIPTORS = new ArrayList(1);
private static List EJB_RELATION_ADAPTER_FACTORIES = new ArrayList(1);
private static List EJB_RELATION_ADAPTER_FACTORY_DESCRIPTORS = new ArrayList(1);
private static List RELATIONSHIPS_ADAPTER_FACTORIES = new ArrayList(1);
private static List RELATIONSHIPS_ADAPTER_FACTORY_DESCRIPTORS = new ArrayList(1);
public static final String MM_VERSION = "1.1"; //$NON-NLS-1$
private boolean createdAdapterFactories = false;
public EjbFactoryImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EObject create(EClass eClass) {
switch (eClass.getClassifierID()) {
case EjbPackage.CONTAINER_MANAGED_ENTITY: return createContainerManagedEntity();
case EjbPackage.METHOD_PERMISSION: return createMethodPermission();
case EjbPackage.ASSEMBLY_DESCRIPTOR: return createAssemblyDescriptor();
case EjbPackage.METHOD_TRANSACTION: return createMethodTransaction();
case EjbPackage.SESSION: return createSession();
case EjbPackage.ENTITY: return createEntity();
case EjbPackage.EJB_METHOD_CATEGORY: return createEJBMethodCategory();
case EjbPackage.EJB_JAR: return createEJBJar();
case EjbPackage.METHOD_ELEMENT: return createMethodElement();
case EjbPackage.CMP_ATTRIBUTE: return createCMPAttribute();
case EjbPackage.RELATIONSHIPS: return createRelationships();
case EjbPackage.QUERY: return createQuery();
case EjbPackage.EJB_RELATION: return createEJBRelation();
case EjbPackage.EJB_RELATIONSHIP_ROLE: return createEJBRelationshipRole();
case EjbPackage.ROLE_SOURCE: return createRoleSource();
case EjbPackage.CMR_FIELD: return createCMRField();
case EjbPackage.MESSAGE_DRIVEN: return createMessageDriven();
case EjbPackage.MESSAGE_DRIVEN_DESTINATION: return createMessageDrivenDestination();
case EjbPackage.EXCLUDE_LIST: return createExcludeList();
case EjbPackage.QUERY_METHOD: return createQueryMethod();
case EjbPackage.ACTIVATION_CONFIG_PROPERTY: return createActivationConfigProperty();
case EjbPackage.ACTIVATION_CONFIG: return createActivationConfig();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object createFromString(EDataType eDataType, String initialValue) {
switch (eDataType.getClassifierID()) {
case EjbPackage.TRANSACTION_ATTRIBUTE_TYPE:
return createTransactionAttributeTypeFromString(eDataType, initialValue);
case EjbPackage.TRANSACTION_TYPE:
return createTransactionTypeFromString(eDataType, initialValue);
case EjbPackage.SESSION_TYPE:
return createSessionTypeFromString(eDataType, initialValue);
case EjbPackage.METHOD_ELEMENT_KIND:
return createMethodElementKindFromString(eDataType, initialValue);
case EjbPackage.ACKNOWLEDGE_MODE:
return createAcknowledgeModeFromString(eDataType, initialValue);
case EjbPackage.SUBSCRIPTION_DURABILITY_KIND:
return createSubscriptionDurabilityKindFromString(eDataType, initialValue);
case EjbPackage.RETURN_TYPE_MAPPING:
return createReturnTypeMappingFromString(eDataType, initialValue);
case EjbPackage.DESTINATION_TYPE:
return createDestinationTypeFromString(eDataType, initialValue);
case EjbPackage.MULTIPLICITY_KIND:
return createMultiplicityKindFromString(eDataType, initialValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String convertToString(EDataType eDataType, Object instanceValue) {
switch (eDataType.getClassifierID()) {
case EjbPackage.TRANSACTION_ATTRIBUTE_TYPE:
return convertTransactionAttributeTypeToString(eDataType, instanceValue);
case EjbPackage.TRANSACTION_TYPE:
return convertTransactionTypeToString(eDataType, instanceValue);
case EjbPackage.SESSION_TYPE:
return convertSessionTypeToString(eDataType, instanceValue);
case EjbPackage.METHOD_ELEMENT_KIND:
return convertMethodElementKindToString(eDataType, instanceValue);
case EjbPackage.ACKNOWLEDGE_MODE:
return convertAcknowledgeModeToString(eDataType, instanceValue);
case EjbPackage.SUBSCRIPTION_DURABILITY_KIND:
return convertSubscriptionDurabilityKindToString(eDataType, instanceValue);
case EjbPackage.RETURN_TYPE_MAPPING:
return convertReturnTypeMappingToString(eDataType, instanceValue);
case EjbPackage.DESTINATION_TYPE:
return convertDestinationTypeToString(eDataType, instanceValue);
case EjbPackage.MULTIPLICITY_KIND:
return convertMultiplicityKindToString(eDataType, instanceValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
}
}
public MethodElement createMethodElement(String aSignature) {
MethodElement me = createMethodElement();
me.initializeFromSignature(aSignature);
return me;
}
/**
* Helper method to create a MethodElement from a java method. Defaults the type to "Unspecified".
*/
public MethodElement createMethodElementFrom(
Method method) {
MethodElement element = createMethodElement();
element.setName(method.getName());
element.setType(MethodElementKind.UNSPECIFIED_LITERAL);
JavaParameter[] params =
method.listParametersWithoutReturn();
if (params.length == 0)
element.applyZeroParams();
else {
for (int i = 0; i < params.length; i++) {
JavaHelpers helper = (JavaHelpers) params[i].getEType();
element.addMethodParams(helper.getQualifiedName());
}
}
return element;
}
/**
* Helper method to reflect the method and create a MethodElement. If the parameter is null, creates an element
* with a name of "*". Defaults the type to "Unspecified".
*/
public MethodElement createMethodElementFrom(java.lang.reflect.Method method) {
String methodName = method == null ? "*" : method.getName(); //$NON-NLS-1$
MethodElement me = createMethodElement();
me.setName(methodName);
me.setType(MethodElementKind.UNSPECIFIED_LITERAL);
if (method != null) {
Class[] types = method.getParameterTypes();
for (int i = 0; i < types.length; i++) {
me.addMethodParams(getTypeName(types[i]));
}
}
return me;
}
public static EjbFactory getActiveFactory() {
return (EjbFactory) getPackage().getEFactoryInstance();
}
/*
* Utility routine to paper over array type names
* Borrowed from a package-visibility helper on java.lang.reflect.Field
*/
static String getTypeName(Class type) {
if (type.isArray()) {
try {
Class cl = type;
int dimensions = 0;
while (cl.isArray()) {
dimensions++;
cl = cl.getComponentType();
}
StringBuffer sb = new StringBuffer();
sb.append(cl.getName());
for (int i = 0; i < dimensions; i++) {
sb.append("[]");//$NON-NLS-1$
}
return sb.toString();
} catch (Throwable e) { /*FALLTHRU*/
}
}
return type.getName();
}
/**
* @generated This field/method will be replaced during code generation.
*/
public MethodPermission createMethodPermission() {
MethodPermissionImpl methodPermission = new MethodPermissionImpl();
return methodPermission;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public AssemblyDescriptor createAssemblyDescriptor() {
AssemblyDescriptorImpl assemblyDescriptor = new AssemblyDescriptorImpl();
return assemblyDescriptor;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public MethodTransaction createMethodTransaction() {
MethodTransactionImpl methodTransaction = new MethodTransactionImpl();
return methodTransaction;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public Entity createEntity() {
EntityImpl entity = new EntityImpl();
return entity;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public ContainerManagedEntity createContainerManagedEntityGen() {
ContainerManagedEntityImpl containerManagedEntity = new ContainerManagedEntityImpl();
return containerManagedEntity;
}
public ContainerManagedEntity createContainerManagedEntity() {
ContainerManagedEntity cmp = createContainerManagedEntityGen();
adaptNew(cmp, CMP_ADAPTER_FACTORIES);
addKeySynchronizationAdapter(cmp);
return cmp;
}
/**
* @param cmp
*/
private void addKeySynchronizationAdapter(ContainerManagedEntity cmp) {
CMPKeySynchronizationAdapter cmpAdapter = new CMPKeySynchronizationAdapter(cmp);
Adapter loadingAdapter = ExtendedEcoreUtil.createAdapterForLoading(cmpAdapter,cmp);
cmp.eAdapters().add(loadingAdapter);
}
/**
* @generated This field/method will be replaced during code generation.
*/
public CMPAttribute createCMPAttribute() {
CMPAttributeImpl cmpAttribute = new CMPAttributeImpl();
return cmpAttribute;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public CMRField createCMRField() {
CMRFieldImpl cmrField = new CMRFieldImpl();
return cmrField;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public EJBRelationshipRole createEJBRelationshipRole() {
EJBRelationshipRoleImpl ejbRelationshipRole = new EJBRelationshipRoleImpl();
return ejbRelationshipRole;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public EJBRelation createEJBRelationGen() {
EJBRelationImpl ejbRelation = new EJBRelationImpl();
return ejbRelation;
}
public EJBRelation createEJBRelation() {
EJBRelation rel = createEJBRelationGen();
adaptNew(rel, EJB_RELATION_ADAPTER_FACTORIES);
return rel;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public Relationships createRelationshipsGen() {
RelationshipsImpl relationships = new RelationshipsImpl();
return relationships;
}
public Relationships createRelationships() {
Relationships rel = createRelationshipsGen();
adaptNew(rel, RELATIONSHIPS_ADAPTER_FACTORIES);
return rel;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public EJBJar createEJBJar() {
EJBJarImpl ejbJar = new EJBJarImpl();
return ejbJar;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public RoleSource createRoleSource() {
RoleSourceImpl roleSource = new RoleSourceImpl();
return roleSource;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public Query createQuery() {
QueryImpl query = new QueryImpl();
return query;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public QueryMethod createQueryMethod() {
QueryMethodImpl queryMethod = new QueryMethodImpl();
return queryMethod;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ActivationConfigProperty createActivationConfigProperty() {
ActivationConfigPropertyImpl activationConfigProperty = new ActivationConfigPropertyImpl();
return activationConfigProperty;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ActivationConfig createActivationConfig() {
ActivationConfigImpl activationConfig = new ActivationConfigImpl();
return activationConfig;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TransactionAttributeType createTransactionAttributeTypeFromString(EDataType eDataType, String initialValue) {
TransactionAttributeType result = TransactionAttributeType.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertTransactionAttributeTypeToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public TransactionType createTransactionTypeFromString(EDataType eDataType, String initialValue) {
TransactionType result = TransactionType.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertTransactionTypeToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public SessionType createSessionTypeFromString(EDataType eDataType, String initialValue) {
SessionType result = SessionType.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertSessionTypeToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public MethodElementKind createMethodElementKindFromString(EDataType eDataType, String initialValue) {
MethodElementKind result = MethodElementKind.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertMethodElementKindToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public AcknowledgeMode createAcknowledgeModeFromString(EDataType eDataType, String initialValue) {
AcknowledgeMode result = AcknowledgeMode.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertAcknowledgeModeToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public SubscriptionDurabilityKind createSubscriptionDurabilityKindFromString(EDataType eDataType, String initialValue) {
SubscriptionDurabilityKind result = SubscriptionDurabilityKind.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertSubscriptionDurabilityKindToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public ReturnTypeMapping createReturnTypeMappingFromString(EDataType eDataType, String initialValue) {
ReturnTypeMapping result = ReturnTypeMapping.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertReturnTypeMappingToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public DestinationType createDestinationTypeFromString(EDataType eDataType, String initialValue) {
DestinationType result = DestinationType.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertDestinationTypeToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public MultiplicityKind createMultiplicityKindFromString(EDataType eDataType, String initialValue) {
MultiplicityKind result = MultiplicityKind.get(initialValue);
if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
return result;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertMultiplicityKindToString(EDataType eDataType, Object instanceValue) {
return instanceValue == null ? null : instanceValue.toString();
}
/**
* @generated This field/method will be replaced during code generation.
*/
public MethodElement createMethodElement() {
MethodElementImpl methodElement = new MethodElementImpl();
return methodElement;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public ExcludeList createExcludeList() {
ExcludeListImpl excludeList = new ExcludeListImpl();
return excludeList;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public Session createSession() {
SessionImpl session = new SessionImpl();
return session;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public MessageDriven createMessageDriven() {
MessageDrivenImpl messageDriven = new MessageDrivenImpl();
return messageDriven;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public MessageDrivenDestination createMessageDrivenDestination() {
MessageDrivenDestinationImpl messageDrivenDestination = new MessageDrivenDestinationImpl();
return messageDrivenDestination;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public EJBMethodCategory createEJBMethodCategory() {
EJBMethodCategoryImpl ejbMethodCategory = new EJBMethodCategoryImpl();
return ejbMethodCategory;
}
/**
* @generated This field/method will be replaced during code generation.
*/
public EjbPackage getEjbPackage() {
return (EjbPackage)getEPackage();
}
/**
* @generated This field/method will be replaced during code generation.
*/
public static EjbPackage getPackage() {
return EjbPackage.eINSTANCE;
}
public static void internalRegisterCMPAdapterFactory(AdapterFactoryDescriptor config) {
CMP_ADAPTER_FACTORY_DESCRIPTORS.add(config);
}
public static void internalRegisterEJBRelationAdapterFactory(AdapterFactoryDescriptor config) {
EJB_RELATION_ADAPTER_FACTORY_DESCRIPTORS.add(config);
}
public static void internalRegisterRelationshipsAdapterFactory(AdapterFactoryDescriptor config) {
RELATIONSHIPS_ADAPTER_FACTORY_DESCRIPTORS.add(config);
}
private void createAdapterFactories() {
createdAdapterFactories = true;
AdapterFactoryUtil.createAdapterFactories(CMP_ADAPTER_FACTORY_DESCRIPTORS, CMP_ADAPTER_FACTORIES);
AdapterFactoryUtil.createAdapterFactories(EJB_RELATION_ADAPTER_FACTORY_DESCRIPTORS, EJB_RELATION_ADAPTER_FACTORIES);
AdapterFactoryUtil.createAdapterFactories(RELATIONSHIPS_ADAPTER_FACTORY_DESCRIPTORS, RELATIONSHIPS_ADAPTER_FACTORIES);
}
private void adaptNew(Notifier notifier, List factories) {
if (!createdAdapterFactories)
createAdapterFactories();
AdapterFactoryUtil.adaptNew(notifier, factories);
}
}