diff options
author | canderson | 2011-06-13 19:24:49 +0000 |
---|---|---|
committer | canderson | 2011-06-13 19:24:49 +0000 |
commit | 303dfb56fcd6f1fa84e64cc257aaf422754e5a59 (patch) | |
tree | 4a98f3a5a178bce057386fc4ef3041b2e1edb2ea | |
parent | f6b27eb9434cbbcf94ded8419c54ee3494ff366d (diff) | |
download | webtools.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.java | 10 | ||||
-rw-r--r-- | plugins/org.eclipse.jem/mofjava/org/eclipse/jem/java/internal/impl/MethodImpl.java | 36 |
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); + } +} |