Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcanderson2011-06-13 19:24:49 +0000
committercanderson2011-06-13 19:24:49 +0000
commit303dfb56fcd6f1fa84e64cc257aaf422754e5a59 (patch)
tree4a98f3a5a178bce057386fc4ef3041b2e1edb2ea
parentf6b27eb9434cbbcf94ded8419c54ee3494ff366d (diff)
downloadwebtools.javaee-303dfb56fcd6f1fa84e64cc257aaf422754e5a59.tar.gz
webtools.javaee-303dfb56fcd6f1fa84e64cc257aaf422754e5a59.tar.xz
webtools.javaee-303dfb56fcd6f1fa84e64cc257aaf422754e5a59.zip
[348396] JEM needs to handle a flush better (redux)
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java10
-rw-r--r--plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java36
2 files changed, 44 insertions, 2 deletions
diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java
index 29531877f..24fdbb90e 100644
--- a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java
+++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/JavaClassImpl.java
@@ -238,7 +238,15 @@ public class JavaClassImpl extends EClassImpl implements JavaClass {
protected void collectMethodsExtended(Map methods, boolean onlyPublic, List excludedClasses, List excludedMethods) {
Iterator it1, it2;
- it2 = getExtendedLookupIterator();
+ // copy over the contents
+ List extendedLookupClasses = new ArrayList();
+ EList extendedLookupEList = null;
+ if (isInterface())
+ extendedLookupEList = getImplementsInterfaces();
+ else
+ extendedLookupEList = getESuperTypes();
+ extendedLookupClasses.addAll(extendedLookupEList);
+ it2 = extendedLookupClasses.iterator();
JavaClassImpl javaClass;
while (it2.hasNext()) {
javaClass = (JavaClassImpl) it2.next();
diff --git a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java
index 747505dba..0c98e46e6 100644
--- a/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java
+++ b/plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java
@@ -1004,5 +1004,39 @@ public class MethodImpl extends EOperationImpl implements Method {
return ECrossReferenceEList.createECrossReferenceEList(this);
}
-}
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ public void setEType(EClassifier newEType)
+ {
+ EClassifier newContainer = newEType;
+ if (eType != null && newEType == null)
+ {
+ ReadAdaptor readAdaptor = getReadAdapter();
+ if (readAdaptor instanceof JavaReflectionAdaptor)
+ {
+ newContainer = ((JavaReflectionAdaptor)readAdaptor).createJavaClassRef(((JavaHelpers)eType).getJavaName());
+ }
+ }
+ super.setEType(newContainer);
+ }
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ */
+ public NotificationChain setEType(EClassifier newEType, NotificationChain msgs)
+ {
+ EClassifier newContainer = newEType;
+ if (eType != null && newEType == null)
+ {
+ ReadAdaptor readAdaptor = getReadAdapter();
+ if (readAdaptor instanceof JavaReflectionAdaptor)
+ {
+ newContainer = ((JavaReflectionAdaptor)readAdaptor).createJavaClassRef(((JavaHelpers)eType).getJavaName());
+ }
+ }
+ return super.setEType(newContainer, msgs);
+ }
+}

Back to the top