Tests: start towards fixing
o.e.o.otdt.tests.otmodel.anonymousinnerclass.rolelevel.internal.AllTests
- includes fixing a TODO re detecting role-local types as roles
diff --git a/org.eclipse.jdt.core/model/org/eclipse/objectteams/otdt/core/OTModelManager.java b/org.eclipse.jdt.core/model/org/eclipse/objectteams/otdt/core/OTModelManager.java
index cc38e14..33cbd8a 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/objectteams/otdt/core/OTModelManager.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/objectteams/otdt/core/OTModelManager.java
@@ -103,72 +103,52 @@
{
IJavaElement parent = elem.getParent();
IOTType result = null;
-
- switch (parent.getElementType())
- {
- case IJavaElement.COMPILATION_UNIT:
- case IJavaElement.CLASS_FILE:
- if(isRoleFile)
- { // could also be a teeam, which is handled inside the constructor
- if (elem.isBinary())
- {
- MAPPING.addOTElement( result = new BinaryRoleType(elem,
- parent,
- typeDeclFlags,
- baseClassName,
- baseClassAnchor));
- }
- else
- {
- MAPPING.addOTElement( result = new RoleFileType(elem,
- parent,
- typeDeclFlags,
- baseClassName,
- baseClassAnchor));
- }
- }
- else if (TypeHelper.isTeam(typeDeclFlags))
- {
- MAPPING.addOTElement( result = new OTType(IOTJavaElement.TEAM, elem, null, typeDeclFlags) );
- }
- break;
- case IJavaElement.TYPE:
- IType encType = (IType)parent;
- IOTType otmParent = MAPPING.getOTElement(encType);
-
- result = maybeAddRoleType(elem, otmParent, typeDeclFlags, baseClassName, baseClassAnchor);
- break;
- //do nothing if anonymous type
- case IJavaElement.METHOD:
- break;
- case IJavaElement.INITIALIZER:
- break;
- case IJavaElement.FIELD:
- break;
-//TODO (jwl) Wether anonymous types are roles or not will be discoverable with
-// a future implementation (probably with the help of a newer version of the compiler)
-
-// case IJavaElement.METHOD:
-// IMethod encMethod = (IMethod)parent;
-// otmParent = MAPPING.getOTElement(encMethod.getDeclaringType());
-//
-// addRoleType(elem, otmParent, typeDeclFlags, baseClassName);
-// break;
-// case IJavaElement.INITIALIZER:
-// IInitializer encInitializer = (IInitializer)parent;
-// otmParent = MAPPING.getOTElement(encInitializer.getDeclaringType());
-//
-// addRoleType(elem, otmParent, typeDeclFlags, baseClassName);
-// break;
-// case IJavaElement.FIELD:
-// IField encField = (IField)parent;
-// otmParent = MAPPING.getOTElement(encField.getDeclaringType());
-//
-// addRoleType(elem, otmParent, typeDeclFlags, baseClassName);
-// break;
- default:
- new Throwable("Warning: unexpected parent for OT element: " + parent).printStackTrace(); //$NON-NLS-1$
- break;
+
+ while (parent != null) {
+ switch (parent.getElementType())
+ {
+ case IJavaElement.COMPILATION_UNIT:
+ case IJavaElement.CLASS_FILE:
+ if(isRoleFile)
+ { // could also be a teeam, which is handled inside the constructor
+ if (elem.isBinary())
+ {
+ MAPPING.addOTElement( result = new BinaryRoleType(elem,
+ parent,
+ typeDeclFlags,
+ baseClassName,
+ baseClassAnchor));
+ }
+ else
+ {
+ MAPPING.addOTElement( result = new RoleFileType(elem,
+ parent,
+ typeDeclFlags,
+ baseClassName,
+ baseClassAnchor));
+ }
+ }
+ else if (TypeHelper.isTeam(typeDeclFlags))
+ {
+ MAPPING.addOTElement( result = new OTType(IOTJavaElement.TEAM, elem, null, typeDeclFlags) );
+ }
+ return result;
+ case IJavaElement.TYPE:
+ IType encType = (IType)parent;
+ IOTType otmParent = MAPPING.getOTElement(encType);
+
+ return maybeAddRoleType(elem, otmParent, typeDeclFlags, baseClassName, baseClassAnchor);
+ case IJavaElement.METHOD:
+ break;
+ case IJavaElement.INITIALIZER:
+ break;
+ case IJavaElement.FIELD:
+ break;
+ default:
+ new Throwable("Warning: unexpected parent for OT element: " + parent).printStackTrace(); //$NON-NLS-1$
+ return result;
+ }
+ parent = parent.getParent();
}
return result;
}
diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/model/org/eclipse/objectteams/otdt/tests/otmodel/anonymousinnerclass/rolelevel/internal/Test3a.java b/testplugins/org.eclipse.objectteams.otdt.tests/model/org/eclipse/objectteams/otdt/tests/otmodel/anonymousinnerclass/rolelevel/internal/Test3a.java
index a208ecb..cefbf8d 100644
--- a/testplugins/org.eclipse.objectteams.otdt.tests/model/org/eclipse/objectteams/otdt/tests/otmodel/anonymousinnerclass/rolelevel/internal/Test3a.java
+++ b/testplugins/org.eclipse.objectteams.otdt.tests/model/org/eclipse/objectteams/otdt/tests/otmodel/anonymousinnerclass/rolelevel/internal/Test3a.java
@@ -44,7 +44,7 @@
public class Test3a extends AttributeAssignmentTest
{
- private final String ANONYMOUS_MAPPING_NAME = "roleMethod() <- baseMethod()";
+ private final String ANONYMOUS_MAPPING_NAME = "roleMethod <- baseMethod";
private final String SUPERROLE_NAME = "Role1";
private final String MAPPED_ROLEMETHOD_NAME = "roleMethod";
private final String BASE_PKG = SRC_FOLDER + "." + "basepkg";
@@ -188,7 +188,7 @@
IMethodMapping[] mappings = role.getMethodMappings();
assertNotNull(mappings);
assertTrue(mappings.length == 1);
- assertEquals(mappings[0].getElementName(), ANONYMOUS_MAPPING_NAME);
+ assertEquals(ANONYMOUS_MAPPING_NAME, mappings[0].getElementName());
assertTrue(mappings[0] instanceof ICallinMapping);
ICallinMapping callinMapping = (ICallinMapping) mappings[0];
diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test1_SampleTeam.java b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test1_SampleTeam.java
index dc97dd0..b0c994a 100644
--- a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test1_SampleTeam.java
+++ b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test1_SampleTeam.java
@@ -1,6 +1,7 @@
+package rolelevelinternal.teampkg;
+
import rolelevelinternal.ordinarypkg.OrdinaryClass;
-package rolelevelinternal.teampkg;
/**
* $Id: Test1_SampleTeam.java 5955 2005-06-21 16:04:55Z haebor $
diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test2_SampleTeam.java b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test2_SampleTeam.java
index eb14a9e..b80881e 100644
--- a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test2_SampleTeam.java
+++ b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test2_SampleTeam.java
@@ -1,7 +1,7 @@
-import rolelevelinternal.ordinarypkg.OrdinaryClass;
-
package rolelevelinternal.teampkg;
+import rolelevelinternal.ordinarypkg.OrdinaryClass;
+
/**
* $Id: Test2_SampleTeam.java 5955 2005-06-21 16:04:55Z haebor $
*
diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test3a_SampleTeam.java b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test3a_SampleTeam.java
index 18ba855..b6c3382 100644
--- a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test3a_SampleTeam.java
+++ b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test3a_SampleTeam.java
@@ -1,7 +1,7 @@
-import rolelevelinternal.basepkg.SampleBase;
-
package rolelevelinternal.teampkg;
+import rolelevelinternal.basepkg.SampleBase;
+
/**
* $Id: Test3a_SampleTeam.java 5955 2005-06-21 16:04:55Z haebor $
*
@@ -12,7 +12,7 @@
*/
public team class Test3a_SampleTeam
{
- public class Role1 playedBy SampleBase \n"
+ public class Role1 playedBy SampleBase
{
public void roleMethod() {}
}
diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test3b_SampleTeam.java b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test3b_SampleTeam.java
index b0a9983..9fdf0ec 100644
--- a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test3b_SampleTeam.java
+++ b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test3b_SampleTeam.java
@@ -1,7 +1,7 @@
-import rolelevelinternal.basepkg.SampleBase;
-
package rolelevelinternal.teampkg;
+import rolelevelinternal.basepkg.SampleBase;
+
/**
* $Id: Test3b_SampleTeam.java 5955 2005-06-21 16:04:55Z haebor $
*
diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test4_SampleTeam.java b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test4_SampleTeam.java
index cab4796..c016383 100644
--- a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test4_SampleTeam.java
+++ b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test4_SampleTeam.java
@@ -1,7 +1,7 @@
-import rolelevelinternal.basepkg.SampleBase;
-
package rolelevelinternal.teampkg;
+import rolelevelinternal.basepkg.SampleBase;
+
/**
* $Id: Test4_SampleTeam.java 5955 2005-06-21 16:04:55Z haebor $
*
diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test78_TeamA.java b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test78_TeamA.java
index f54ca17..4ad0cd0 100644
--- a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test78_TeamA.java
+++ b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test78_TeamA.java
@@ -1,7 +1,7 @@
-import rolelevelinternal.basepkg.SampleBase;
-
package rolelevelinternal.teampkg;
+import rolelevelinternal.basepkg.SampleBase;
+
/**
* $Id: Test78_TeamA.java 5955 2005-06-21 16:04:55Z haebor $
*/
diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test7_TeamB.java b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test7_TeamB.java
index d0193ab..d272c24 100644
--- a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test7_TeamB.java
+++ b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test7_TeamB.java
@@ -1,7 +1,7 @@
-import rolelevelinternal.basepkg.SampleBase;
-
package rolelevelinternal.teampkg;
+import rolelevelinternal.basepkg.SampleBase;
+
/**
* $Id: Test7_TeamB.java 5955 2005-06-21 16:04:55Z haebor $
*
diff --git a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test8_TeamB.java b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test8_TeamB.java
index 6ad37cb..77a25f5 100644
--- a/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test8_TeamB.java
+++ b/testplugins/org.eclipse.objectteams.otdt.tests/workspace/AnonymousInnerclass/rolelevelinternal/rolelevelinternal/teampkg/Test8_TeamB.java
@@ -1,7 +1,7 @@
-import rolelevelinternal.basepkg.SampleBase;
-
package rolelevelinternal.teampkg;
+import rolelevelinternal.basepkg.SampleBase;
+
/**
* $Id: Test8_TeamB.java 5955 2005-06-21 16:04:55Z haebor $
*