Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/SubsetSupersetEObjectWithInverseResolvingEList.java')
-rw-r--r--cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/SubsetSupersetEObjectWithInverseResolvingEList.java120
1 files changed, 120 insertions, 0 deletions
diff --git a/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/SubsetSupersetEObjectWithInverseResolvingEList.java b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/SubsetSupersetEObjectWithInverseResolvingEList.java
new file mode 100644
index 00000000..cae4c13b
--- /dev/null
+++ b/cdo/bundles/uml/org.eclipse.uml2.uml.cdo/src/org/eclipse/uml2/uml/cdo/internal/util/SubsetSupersetEObjectWithInverseResolvingEList.java
@@ -0,0 +1,120 @@
+/*
+ * Copyright (c) 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 - initial API and implementation
+ * Eike Stepper - bug 540814
+ *
+ */
+package org.eclipse.uml2.uml.cdo.internal.util;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.InternalEObject;
+
+/**
+ * @since 1.2
+ */
+public class SubsetSupersetEObjectWithInverseResolvingEList<E>
+ extends SubsetSupersetEObjectWithInverseEList<E> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static class Unsettable<E>
+ extends SubsetSupersetEObjectWithInverseResolvingEList<E> {
+
+ private static final long serialVersionUID = 1L;
+
+ public static class ManyInverse<E>
+ extends Unsettable<E> {
+
+ private static final long serialVersionUID = 1L;
+
+ public ManyInverse(Class<?> dataClass, InternalEObject owner,
+ int featureID, int[] supersetFeatureIDs,
+ int[] subsetFeatureIDs, int inverseFeatureID) {
+ super(dataClass, owner, featureID, supersetFeatureIDs,
+ subsetFeatureIDs, inverseFeatureID);
+ }
+
+ @Override
+ protected boolean hasManyInverse() {
+ return true;
+ }
+ }
+
+ protected boolean isSet;
+
+ public Unsettable(Class<?> dataClass, InternalEObject owner,
+ int featureID, int[] supersetFeatureIDs,
+ int[] subsetFeatureIDs, int inverseFeatureID) {
+ super(dataClass, owner, featureID, supersetFeatureIDs,
+ subsetFeatureIDs, inverseFeatureID);
+ }
+
+ @Override
+ protected void didChange() {
+ isSet = true;
+ }
+
+ @Override
+ public boolean isSet() {
+ return isSet;
+ }
+
+ @Override
+ public void unset() {
+ super.unset();
+
+ if (isNotificationRequired()) {
+ boolean oldIsSet = isSet;
+ isSet = false;
+
+ owner.eNotify(createNotification(Notification.UNSET, oldIsSet,
+ false));
+ } else {
+ isSet = false;
+ }
+ }
+ }
+
+ public static class ManyInverse<E>
+ extends SubsetSupersetEObjectWithInverseResolvingEList<E> {
+
+ private static final long serialVersionUID = 1L;
+
+ public ManyInverse(Class<?> dataClass, InternalEObject owner,
+ int featureID, int[] supersetFeatureIDs,
+ int[] subsetFeatureIDs, int inverseFeatureID) {
+ super(dataClass, owner, featureID, supersetFeatureIDs,
+ subsetFeatureIDs, inverseFeatureID);
+ }
+
+ @Override
+ protected boolean hasManyInverse() {
+ return true;
+ }
+ }
+
+ public SubsetSupersetEObjectWithInverseResolvingEList(Class<?> dataClass,
+ InternalEObject owner, int featureID, int[] supersetFeatureIDs,
+ int[] subsetFeatureIDs, int inverseFeatureID) {
+ super(dataClass, owner, featureID, supersetFeatureIDs,
+ subsetFeatureIDs, inverseFeatureID);
+ }
+
+ @Override
+ protected boolean hasProxies() {
+ return true;
+ }
+
+ // @SuppressWarnings("unchecked")
+ // @Override
+ // protected E resolve(int index, E object) {
+ // return (E) resolve(index, (EObject) object);
+ // }
+
+} \ No newline at end of file

Back to the top