[348221] JEM needs to handle a flush better (redux)
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 9337977..4ae1b26 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 @@ 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 f42ed61..149140c 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
@@ -1008,5 +1008,23 @@ return eCrossReferences; } + /** + * <!-- 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); + } + }