diff options
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/util/CommonRelationshipAttributeMaintenanceAdapter.java')
-rw-r--r-- | plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/util/CommonRelationshipAttributeMaintenanceAdapter.java | 173 |
1 files changed, 0 insertions, 173 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/util/CommonRelationshipAttributeMaintenanceAdapter.java b/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/util/CommonRelationshipAttributeMaintenanceAdapter.java deleted file mode 100644 index 4ad56a3bb..000000000 --- a/plugins/org.eclipse.jst.j2ee.core/mofj2ee/org/eclipse/jst/j2ee/ejb/internal/util/CommonRelationshipAttributeMaintenanceAdapter.java +++ /dev/null @@ -1,173 +0,0 @@ -/******************************************************************************* - * 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 - *******************************************************************************/ -package org.eclipse.jst.j2ee.ejb.internal.util; -import java.util.List; - -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.Notifier; -import org.eclipse.emf.common.notify.impl.AdapterImpl; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EStructuralFeature; -import org.eclipse.jst.j2ee.ejb.CMPAttribute; -import org.eclipse.jst.j2ee.ejb.CommonRelationship; -import org.eclipse.jst.j2ee.ejb.CommonRelationshipRole; -import org.eclipse.jst.j2ee.ejb.ContainerManagedEntity; -import org.eclipse.jst.j2ee.ejb.EjbPackage; -import org.eclipse.jst.j2ee.ejb.internal.impl.EjbFactoryImpl; - -public abstract class CommonRelationshipAttributeMaintenanceAdapter extends AdapterImpl { - protected static EjbPackage EJB_PACK = EjbFactoryImpl.getPackage(); - /** - * Constructor for CommonRelationshipAttributeMaintenanceAdapter. - */ - public CommonRelationshipAttributeMaintenanceAdapter() { - super(); - } - /** - * @see org.eclipse.emf.common.notify.impl.AdapterImpl#notifyChanged(Notification) - */ - public void notifyChanged(Notification msg) { - switch (msg.getEventType()) { - case Notification.ADD : - addedNotification(msg); - break; - case Notification.REMOVE : - removedNotification(msg); - break; - } - } - protected void addedNotification(Notification msg) { - if ((EStructuralFeature)msg.getFeature() == EJB_PACK.getContainerManagedEntity_KeyAttributes()) - addedKeyAttribute((ContainerManagedEntity) msg.getNotifier(), (CMPAttribute) msg.getNewValue()); - else if (isRelationshipsSF((EStructuralFeature)msg.getFeature())) - added(); - else if (isRelationshipRolesSF((EStructuralFeature)msg.getFeature())) - addedRole((CommonRelationshipRole) msg.getNewValue()); - } - protected void removedNotification(Notification msg) { - if ((EStructuralFeature)msg.getFeature() == EJB_PACK.getContainerManagedEntity_KeyAttributes()) - removedKeyAttribute((ContainerManagedEntity) msg.getNotifier(), (CMPAttribute) msg.getOldValue()); - else if (isRelationshipsSF((EStructuralFeature)msg.getFeature())) - removed(); - else if (isRelationshipRolesSF((EStructuralFeature)msg.getFeature())) - removedRole((CommonRelationshipRole) msg.getOldValue()); - } - protected abstract boolean isRelationshipRolesSF(EObject sf); - protected abstract boolean isRelationshipsSF(EObject sf); - //Same as the add - private void removedKeyAttribute(ContainerManagedEntity aCMPEntity, CMPAttribute cmpAttribute) { - addedKeyAttribute(aCMPEntity, cmpAttribute); - } - protected void addedKeyAttribute(ContainerManagedEntity aCMPEntity, CMPAttribute newAttribute) { - CommonRelationshipRole role, inverse; - role = getRole(aCMPEntity); - if (role != null && !role.isForward()) { - inverse = role.getOppositeAsCommonRole(); - if (inverse != null) - inverse.reconcileAttributes(); - } - } - protected CommonRelationshipRole getRole(ContainerManagedEntity aCMPEntity) { - CommonRelationship relation = getRelationship(); - if (relation == null) return null; - List roles = relation.getCommonRoles(); - if (roles.isEmpty()) - return null; - CommonRelationshipRole role = null; - for (int i = 0; i < roles.size(); i++) { - role = (CommonRelationshipRole) roles.get(i); - if (role.getSourceEntity() == aCMPEntity) - return role; - } - return role; - } - protected CommonRelationship getRelationship() { - return (CommonRelationship) getTarget(); - } - protected void reconcileRoleAttributes() { - List roles = getRelationship().getCommonRoles(); - if (roles.isEmpty()) - return; - CommonRelationshipRole role = null; - for (int i = 0; i < roles.size(); i++) { - role = (CommonRelationshipRole) roles.get(i); - role.reconcileAttributes(); - } - } - protected void added() { - reconcileRoleAttributes(); - } - protected void removed() { - if (getRelationship().getCommonRoles().size() > 1) { - //remove one force a disconnect - getRelationship().getCommonRoles().remove(0); - } - } - /** - * Add this Adapter to @aRole and the ContainerManagedEntity - * that the ContainerManagedEntityExtension container is pointing to. - * This only works if @aRole is contained. - */ - protected void addAdaptors(CommonRelationshipRole aRole) { - removeAdaptors(aRole); //to ensure this adapter is not added twice - aRole.eAdapters().add(this); - ContainerManagedEntity cmp = aRole.getSourceEntity(); - if (cmp != null) - cmp.eAdapters().add(this); - } - /** - * Remove this Adapter from @aRole and the ContainerManagedEntity - * that the ContainerManagedEntityExtension container is pointing to. - * This only works if @aRole is contained. - */ - protected void removeAdaptors(CommonRelationshipRole aRole) { - aRole.eAdapters().remove(this); - ContainerManagedEntity cmp = aRole.getSourceEntity(); - if (cmp != null) - cmp.eAdapters().remove(this); - } - protected void addedRole(CommonRelationshipRole aRole) { - addAdaptors(aRole); - if ((getRelationship().eContainer() != null) && rolesFullyReflected()) - reconcileRoleAttributes(); - } - protected boolean rolesFullyReflected() { - List roles = getRelationship().getCommonRoles(); - if (roles.isEmpty()) - return false; - CommonRelationshipRole role = null; - for (int i = 0; i < roles.size(); i++) { - role = (CommonRelationshipRole) roles.get(i); - if (role.getSourceEntity() == null) - return false; - } - return true; - } - - protected void removedRole(CommonRelationshipRole aRole) { - removeAdaptors(aRole); - if (getRelationship().eContainer() != null) { - aRole.reconcileAttributes(); - reconcileRoleAttributes(); - } - } - - /* (non-Javadoc) - * @see org.eclipse.emf.common.notify.impl.AdapterImpl#setTarget(org.eclipse.emf.common.notify.Notifier) - */ - public void setTarget(Notifier notifier) { - //Only set the target if it is a CommonRelationship - if (notifier == null || notifier instanceof CommonRelationship) - super.setTarget(notifier); - } - -} - |