/** * Copyright (c) 2007 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 */ package org.eclipse.emf.test.examples; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import java.io.File; import java.util.HashMap; import java.util.Hashtable; import java.util.List; import java.util.Map; import org.eclipse.emf.common.EMFPlugin; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.java.JClass; import org.eclipse.emf.java.JCompilationUnit; import org.eclipse.emf.java.JField; import org.eclipse.emf.java.JInitializer; import org.eclipse.emf.java.JMethod; import org.eclipse.emf.java.JPackage; import org.eclipse.emf.java.JVisibility; import org.eclipse.emf.java.JavaPackage; import org.eclipse.emf.java.util.JavaPackageResourceFactoryImpl; import org.eclipse.emf.java.util.JavaPackageResourceImpl; import org.eclipse.emf.java.util.JavaResourceFactoryImpl; import org.eclipse.emf.java.util.JavaUtil; import org.eclipse.emf.test.common.TestUtil; import org.eclipse.jdt.core.JavaCore; import org.junit.Before; import org.junit.Test; /** * @author marcelop */ public class JavaTest { protected JCompilationUnit compilationUnit; protected JClass mainType; private boolean testHeader = true; private boolean testComment = true; private boolean testBody = true; private boolean testContentWithComments = false; private boolean trimContents = true; @Before public void setUp() throws Exception { if (EMFPlugin.IS_ECLIPSE_RUNNING) { Hashtable<String, String> map = JavaCore.getOptions(); map.put(JavaCore.COMPILER_SOURCE, "1.5"); JavaCore.setOptions(map); } else { Map<String, String> options = new HashMap<String, String>(); JavaCore.setComplianceOptions("1.5", options); JavaCore.getOptions().putAll(options); } } @Test public void testRead() throws Exception { loadCompilationUnitAndMainType(); assertNotNull(compilationUnit); readTest(compilationUnit); readTest(compilationUnit.getPackage()); readTestImports(compilationUnit.getImports()); readTestTypes(compilationUnit.getTypes()); readTestMainType(); readTestNestedTypes(mainType.getTypes()); readTestFields(mainType.getFields()); readTestMethods(mainType.getMethods()); List<JInitializer> initializers = (List<JInitializer>)EcoreUtil.<JInitializer>getObjectsByType(mainType.getMembers(), JavaPackage.Literals.JINITIALIZER); readTestInitializers(initializers); } protected void loadCompilationUnitAndMainType() throws Exception { ResourceSet resourceSet = new ResourceSetImpl(); resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("packages", new JavaPackageResourceFactoryImpl()); resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("java", new JavaResourceFactoryImpl()); JavaPackageResourceImpl javaPackageResource = (JavaPackageResourceImpl)resourceSet.getResource(JavaUtil.JAVA_PACKAGE_RESOURCE_URI, true); javaPackageResource.setClassLoader(getClass().getClassLoader()); assertFalse(javaPackageResource.getContents().isEmpty()); File javaFile = new File(TestUtil.getPluginDirectory(AllSuites.PLUGIN_ID) + "/data/Example1.java"); assertTrue(javaFile.isFile()); Resource javaResource = resourceSet.getResource(URI.createFileURI(javaFile.getAbsolutePath()), true); assertFalse(javaResource.getContents().isEmpty()); compilationUnit = (JCompilationUnit)javaResource.getContents().get(0); for (JClass cls : compilationUnit.getTypes()) { if (cls.getVisibility() == JVisibility.PUBLIC_LITERAL) { mainType = cls; break; } } assertNotNull(mainType); } protected void readTest(JCompilationUnit compilationUnit) throws Exception { assertNotNull(compilationUnit); assertNull(compilationUnit.eContainer()); assertContentEquals("Example1.java", compilationUnit.getName()); assertContentEquals("Example1.java", compilationUnit.getQualifiedName()); assertFalse(compilationUnit.eContents().isEmpty()); assertEquals(2, compilationUnit.eContents().size()); int index = 0; testInstanceOf(compilationUnit.eContents().get(index++), JavaPackage.Literals.JCLASS); testInstanceOf(compilationUnit.eContents().get(index++), JavaPackage.Literals.JCLASS); StringBuffer expectedHeader = new StringBuffer(); expectedHeader.append("/**"); expectedHeader.append("\n").append(" * Copyright (c) 2004-2006 IBM Corporation and others."); expectedHeader.append("\n").append(" * All rights reserved. This program and the accompanying materials"); expectedHeader.append("\n").append(" * are made available under the terms of the Eclipse Public License v1.0"); expectedHeader.append("\n").append(" * which accompanies this distribution, and is available at"); expectedHeader.append("\n").append(" * http://www.eclipse.org/legal/epl-v10.html"); expectedHeader.append("\n").append(" * "); expectedHeader.append("\n").append(" * Contributors: "); expectedHeader.append("\n").append(" * IBM - Initial API and implementation"); expectedHeader.append("\n").append(" */"); expectedHeader.append("\n").append("\n // line comment1 "); expectedHeader.append("\n").append("\n/**"); expectedHeader.append("\n").append(" * A javadoc"); expectedHeader.append("\n").append(" */"); expectedHeader.append("\n").append("\n "); expectedHeader.append("\n"); if (testHeader) assertContentEquals(expectedHeader.toString(), compilationUnit.getComment()); } protected void readTest(JPackage jPackage) throws Exception { assertNotNull(jPackage); assertContentEquals("org.eclipse.emf.test.examples", jPackage.getName()); assertContentEquals("org.eclipse.emf.test.examples", jPackage.getQualifiedName()); } protected void readTestImports(List<?> imports) throws Exception { assertNotNull(imports); assertEquals(6, imports.size()); { String jImport = (String)imports.get(0); assertContentEquals("java.util.Collections", jImport); } { String jImport = (String)imports.get(1); assertContentEquals("java.util.List", jImport); } { String jImport = (String)imports.get(2); assertContentEquals("java.util.Map", jImport); } { String jImport = (String)imports.get(3); assertContentEquals("org.eclipse.emf.common.*", jImport); } { String jImport = (String)imports.get(4); assertContentEquals("org.eclipse.emf.common.notify.Notification", jImport); } { String jImport = (String)imports.get(5); assertContentEquals("org.eclipse.emf.ecore.impl.EObjectImpl", jImport); } } protected void readTestTypes(List<?> types) throws Exception { assertNotNull(types); assertEquals(2, types.size()); { JClass type = (JClass)types.get(0); assertEquals(compilationUnit, type.eContainer()); assertContentEquals("AnotherClass", type.getName()); assertContentEquals("org.eclipse.emf.test.examples.AnotherClass", type.getQualifiedName()); assertEquals(JVisibility.PACKAGE_LITERAL, type.getVisibility()); assertEquals(0, type.getSuperTypes().size()); assertNull(type.getComment()); } { JClass type = (JClass)types.get(1); assertEquals(compilationUnit, type.eContainer()); assertContentEquals("Example1", type.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1", type.getQualifiedName()); assertEquals(JVisibility.PUBLIC_LITERAL, type.getVisibility()); assertEquals(1, type.getSuperTypes().size()); assertEquals("EObjectImpl", type.getSuperTypes().get(0).getName()); StringBuffer expectedComment = new StringBuffer(); expectedComment.append("/**"); expectedComment.append("\n").append(" * This is an example of a fairly complete Java file."); expectedComment.append("\n").append(" * Its content is not really important"); expectedComment.append("\n").append(" * "); expectedComment.append("\n").append(" * @author EMF team"); expectedComment.append("\n").append(" * @generated"); expectedComment.append("\n").append(" * @generated NOT"); expectedComment.append("\n").append(" */"); if (testComment) assertContentEquals(expectedComment.toString(), type.getComment()); assertEquals(21, type.eContents().size()); int index = 0; testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JCLASS); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JINITIALIZER); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JFIELD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JCLASS); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JFIELD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JFIELD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JFIELD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JINITIALIZER); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JMETHOD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JMETHOD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JMETHOD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JMETHOD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JFIELD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JMETHOD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JMETHOD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JMETHOD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JINITIALIZER); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JFIELD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JFIELD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JFIELD); testInstanceOf(type.eContents().get(index++), JavaPackage.Literals.JFIELD); } } protected void readTestMainType() throws Exception { assertNotNull(mainType); assertEquals(compilationUnit, mainType.eContainer()); assertEquals(compilationUnit.eContents().get(1), mainType); } protected void readTestNestedTypes(List<?> types) throws Exception { assertNotNull(types); assertEquals(2, types.size()); { JClass type = (JClass)types.get(0); assertEquals(mainType, type.eContainer()); assertContentEquals("InnerClass", type.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.InnerClass", type.getQualifiedName()); assertTrue(type.isAbstract()); assertEquals(JVisibility.PUBLIC_LITERAL, type.getVisibility()); assertEquals(2, type.getSuperTypes().size()); assertContentEquals("Notification", type.getSuperTypes().get(0).getName()); assertContentEquals("org.eclipse.emf.common.notify.Notifier", type.getSuperTypes().get(1).getQualifiedName()); assertNull(type.getComment()); } { JClass type = (JClass)types.get(1); assertEquals(mainType, type.eContainer()); assertContentEquals("InnerInterface", type.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.InnerInterface", type.getQualifiedName()); assertTrue(type.isStatic()); assertTrue(type.isInterface()); assertEquals(JVisibility.PRIVATE_LITERAL, type.getVisibility()); assertEquals(2, type.getSuperTypes().size()); assertContentEquals("Notification", type.getSuperTypes().get(0).getName()); assertContentEquals("List", type.getSuperTypes().get(1).getName()); assertNull(type.getComment()); } } protected void readTestFields(List<?> fields) throws Exception { assertNotNull(fields); assertEquals(9, fields.size()); { JField field = (JField)fields.get(0); assertEquals(mainType, field.eContainer()); assertContentEquals("STR_CONST", field.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.STR_CONST", field.getQualifiedName()); assertTrue(field.isStatic()); assertTrue(field.isFinal()); assertEquals(JVisibility.PUBLIC_LITERAL, field.getVisibility()); assertContentEquals("String", field.getType().getName()); assertContentEquals(" \"something is ; different \\\"//; /*;*/\" /*inte;res;ting*/ + \" !!;;\"", field.getInitializer()); StringBuffer expectedComment = new StringBuffer(); expectedComment.append(" /**"); expectedComment.append("\n").append(" * public String constant."); expectedComment.append("\n").append(" */"); if (testComment) assertContentEquals(expectedComment.toString(), field.getComment()); } { JField field = (JField)fields.get(1); assertEquals(mainType, field.eContainer()); assertContentEquals("longStatic", field.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.longStatic", field.getQualifiedName()); assertTrue(field.isStatic()); assertEquals(JVisibility.PROTECTED_LITERAL, field.getVisibility()); assertContentEquals("long", field.getType().getName()); assertContentEquals("1l", field.getInitializer()); StringBuffer expectedComment = new StringBuffer(); expectedComment.append(" /**"); expectedComment.append("\n").append(" * protected static long field."); expectedComment.append("\n").append(" * This is a multiline comment."); expectedComment.append("\n").append(" */"); if (testComment) assertContentEquals(expectedComment.toString(), field.getComment()); } { JField field = (JField)fields.get(2); assertEquals(mainType, field.eContainer()); assertContentEquals("booleanInstance", field.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.booleanInstance", field.getQualifiedName()); assertEquals(JVisibility.PACKAGE_LITERAL, field.getVisibility()); assertContentEquals("Boolean", field.getType().getName()); assertNull(field.getInitializer()); assertNull(field.getComment()); } { JField field = (JField)fields.get(3); assertEquals(mainType, field.eContainer()); assertContentEquals("myEntry", field.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.myEntry", field.getQualifiedName()); assertEquals(JVisibility.PRIVATE_LITERAL, field.getVisibility()); assertContentEquals("java.util.Map.Entry", field.getType().getQualifiedName()); assertNull(field.getInitializer()); assertNull(field.getComment()); } { JField field = (JField)fields.get(4); assertEquals(mainType, field.eContainer()); assertContentEquals("myMatrix", field.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.myMatrix", field.getQualifiedName()); assertEquals(JVisibility.PRIVATE_LITERAL, field.getVisibility()); assertContentEquals("int[][]", field.getType().getName()); assertContentEquals("new int[4][5]", field.getInitializer()); assertNull(field.getComment()); } { JField field = (JField)fields.get(5); assertEquals(mainType, field.eContainer()); assertContentEquals("a", field.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.a", field.getQualifiedName()); assertEquals(JVisibility.PUBLIC_LITERAL, field.getVisibility()); assertContentEquals("int", field.getType().getName()); assertContentEquals(" 1", field.getInitializer()); assertNull(field.getComment()); } { JField field = (JField)fields.get(6); assertEquals(mainType, field.eContainer()); assertContentEquals("b", field.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.b", field.getQualifiedName()); assertEquals(JVisibility.PUBLIC_LITERAL, field.getVisibility()); assertContentEquals("int", field.getType().getName()); assertContentEquals(" 2", field.getInitializer()); assertNull(field.getComment()); } { JField field = (JField)fields.get(7); assertEquals(mainType, field.eContainer()); assertContentEquals("c", field.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.c", field.getQualifiedName()); assertEquals(JVisibility.PUBLIC_LITERAL, field.getVisibility()); assertContentEquals("int", field.getType().getName()); assertContentEquals(" 3", field.getInitializer()); assertNull(field.getComment()); } { JField field = (JField)fields.get(8); assertEquals(mainType, field.eContainer()); assertContentEquals("floatArray", field.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.floatArray", field.getQualifiedName()); assertEquals(JVisibility.PACKAGE_LITERAL, field.getVisibility()); assertContentEquals("float[][][][]", field.getType().getName()); assertNull(field.getInitializer()); assertNull(field.getComment()); } } protected void readTestMethods(List<?> methods) throws Exception { assertNotNull(methods); assertEquals(7, methods.size()); { JMethod method = (JMethod)methods.get(0); assertEquals(mainType, method.eContainer()); assertTrue(method.isConstructor()); assertEquals("Example1", method.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1." + mainType.getName(), method.getQualifiedName()); assertEquals(JVisibility.PUBLIC_LITERAL, method.getVisibility()); assertNull(method.getReturnType()); assertEquals(0, method.getParameters().size()); assertEquals(0, method.getExceptions().size()); StringBuffer expectedComment = new StringBuffer(); expectedComment.append(" /**"); expectedComment.append("\n").append(" * This is a contructor"); expectedComment.append("\n").append(" */"); if (testComment) assertContentEquals(expectedComment.toString(), method.getComment()); StringBuffer expectedBody = new StringBuffer(); expectedBody.append("\n").append(" {"); expectedBody.append("\n").append(" super();"); expectedBody.append("\n").append(" }"); expectedBody.append("\n").append(" \n"); if (testBody) assertContentEquals(expectedBody.toString(), method.getBody()); } { JMethod method = (JMethod)methods.get(1); assertEquals(mainType, method.eContainer()); assertTrue(method.isConstructor()); assertEquals("Example1", method.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.Example1", method.getQualifiedName()); assertEquals(JVisibility.PRIVATE_LITERAL, method.getVisibility()); assertNull(method.getReturnType()); assertEquals(2, method.getParameters().size()); assertEquals("aString", method.getParameters().get(0).getName()); assertEquals("String", method.getParameters().get(0).getType().getName()); assertEquals("bol", method.getParameters().get(1).getName()); assertEquals("boolean", method.getParameters().get(1).getType().getName()); assertEquals(0, method.getExceptions().size()); assertNull(method.getComment()); StringBuffer expectedBody = new StringBuffer(); expectedBody.append("\n").append(" {"); expectedBody.append("\n").append(" super();"); expectedBody.append("\n").append(" }"); expectedBody.append("\n").append("\n"); if (testBody) assertContentEquals(expectedBody.toString(), method.getBody()); } { JMethod method = (JMethod)methods.get(2); assertFalse(method.isConstructor()); assertEquals(mainType, method.eContainer()); assertContentEquals("setBooleanInstance", method.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.setBooleanInstance", method.getQualifiedName()); assertEquals(JVisibility.PUBLIC_LITERAL, method.getVisibility()); assertContentEquals("void", method.getReturnType().getName()); assertEquals(1, method.getParameters().size()); assertEquals("b", method.getParameters().get(0).getName()); assertEquals("Boolean", method.getParameters().get(0).getType().getName()); assertEquals(0, method.getExceptions().size()); StringBuffer expectedComment = new StringBuffer(); expectedComment.append(" /**"); expectedComment.append("\n").append(" * Sets the boolean instance."); expectedComment.append("\n").append(" * @param b"); expectedComment.append("\n").append(" * @generated"); expectedComment.append("\n").append(" */"); if (testComment) assertContentEquals(expectedComment.toString(), method.getComment()); StringBuffer expectedBody = new StringBuffer(); expectedBody.append("\n").append(" {"); expectedBody.append("\n").append(" if (b != null)"); expectedBody.append("\n").append(" {"); expectedBody.append("\n").append(" booleanInstance = b;"); expectedBody.append("\n").append(" }"); expectedBody.append("\n").append(" else"); expectedBody.append("\n").append(" {"); expectedBody.append("\n").append(" booleanInstance = Boolean.FALSE;"); expectedBody.append("\n").append(" }"); expectedBody.append("\n").append(" }"); expectedBody.append("\n").append("\n"); if (testBody) assertContentEquals(expectedBody.toString(), method.getBody()); } { JMethod method = (JMethod)methods.get(3); assertFalse(method.isConstructor()); assertEquals(mainType, method.eContainer()); assertContentEquals("setBooleanInstance", method.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.setBooleanInstance", method.getQualifiedName()); assertEquals(JVisibility.PACKAGE_LITERAL, method.getVisibility()); assertContentEquals("void", method.getReturnType().getName()); assertEquals(1, method.getParameters().size()); assertEquals("a", method.getParameters().get(0).getName()); assertEquals("int", method.getParameters().get(0).getType().getName()); assertEquals(0, method.getExceptions().size()); assertNull(method.getComment()); StringBuffer expectedBody = new StringBuffer(); expectedBody.append("\n").append(" {"); expectedBody.append("\n").append(" setBooleanInstance(a > 0 ? Boolean.TRUE : Boolean.FALSE);"); expectedBody.append("\n").append(" }"); expectedBody.append("\n").append(" \n"); if (testBody) assertContentEquals(expectedBody.toString(), method.getBody()); } { JMethod method = (JMethod)methods.get(4); assertFalse(method.isConstructor()); assertEquals(mainType, method.eContainer()); assertContentEquals("getBooleanInstance", method.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.getBooleanInstance", method.getQualifiedName()); assertEquals(JVisibility.PUBLIC_LITERAL, method.getVisibility()); assertContentEquals("Boolean", method.getReturnType().getName()); assertEquals(1, method.getParameters().size()); assertEquals("Class", method.getParameters().get(0).getType().getName()); assertEquals("aClass", method.getParameters().get(0).getName()); assertEquals(1, method.getExceptions().size()); assertEquals("Exception", method.getExceptions().get(0).getName()); StringBuffer expectedComment = new StringBuffer(); expectedComment.append(" /**"); expectedComment.append("\n").append(" * Gets the boolean instance. Now I will ask you to see "); expectedComment.append("\n").append(" * something {@link EObjectImpl#eAdapters()}. "); expectedComment.append("\n").append(" * @param b"); expectedComment.append("\n").append(" * @generated NOT"); expectedComment.append("\n").append(" */"); if (testComment) assertContentEquals(expectedComment.toString(), method.getComment()); StringBuffer expectedBody = new StringBuffer(); expectedBody.append("\n").append(" {"); expectedBody.append("\n").append(" return booleanInstance == null ? Boolean.FALSE : booleanInstance;"); expectedBody.append("\n").append(" }"); expectedBody.append("\n").append(" \n"); if (testBody) assertContentEquals(expectedBody.toString(), method.getBody()); } { JMethod method = (JMethod)methods.get(5); assertFalse(method.isConstructor()); assertEquals(mainType, method.eContainer()); assertContentEquals("aMethodWithComments", method.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.aMethodWithComments", method.getQualifiedName()); assertEquals(JVisibility.PROTECTED_LITERAL, method.getVisibility()); assertContentEquals("List", method.getReturnType().getName()); assertEquals(0, method.getParameters().size()); assertEquals(3, method.getExceptions().size()); assertEquals("RuntimeException", method.getExceptions().get(0).getName()); assertEquals("IllegalAccessError", method.getExceptions().get(1).getName()); assertEquals("java.lang.NullPointerException", method.getExceptions().get(2).getQualifiedName()); assertNull(method.getComment()); StringBuffer expectedBody = new StringBuffer(); expectedBody.append("\n").append(" {"); expectedBody.append("\n").append(" return Collections.EMPTY_LIST;"); expectedBody.append("\n").append(" }"); expectedBody.append("\n"); if (testBody) assertContentEquals(expectedBody.toString(), method.getBody()); } { JMethod method = (JMethod)methods.get(6); assertFalse(method.isConstructor()); assertEquals(mainType, method.eContainer()); assertContentEquals("aMethodWithNoComments", method.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.aMethodWithNoComments", method.getQualifiedName()); assertTrue(method.isStatic()); assertEquals(JVisibility.PRIVATE_LITERAL, method.getVisibility()); assertContentEquals("long[][]", method.getReturnType().getName()); assertEquals(1, method.getParameters().size()); assertEquals("a", method.getParameters().get(0).getName()); assertEquals("int[]", method.getParameters().get(0).getType().getName()); assertEquals(0, method.getExceptions().size()); assertNull(method.getComment()); StringBuffer expectedBody = new StringBuffer(); expectedBody.append("\n").append(" {"); expectedBody.append("\n").append(" System.out.println(\"I don't do anything\");"); expectedBody.append("\n").append(" return null;"); expectedBody.append("\n").append(" }"); expectedBody.append("\n").append(" \n"); if (testBody) assertContentEquals(expectedBody.toString(), method.getBody()); } } protected void readTestInitializers(List<?> initializers) throws Exception { assertNotNull(initializers); assertEquals(3, initializers.size()); { JInitializer initializer = (JInitializer)initializers.get(0); assertEquals(mainType, initializer.eContainer()); assertContentEquals(mainType.getName() + ".0", initializer.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.0", initializer.getQualifiedName()); assertEquals(JVisibility.PACKAGE_LITERAL, initializer.getVisibility()); assertNull(initializer.getComment()); StringBuffer expectedBody = new StringBuffer(); expectedBody.append("{"); expectedBody.append("\n").append((char)9).append("System.out.println(\"A initializer with Comments\");"); expectedBody.append("\n").append((char)9).append("}"); if (testBody) assertContentEquals(expectedBody.toString(), initializer.getBody()); StringBuffer expectedContent = new StringBuffer(); expectedContent.append((char)9).append("// An initializer. It is indented with TABs"); expectedContent.append("\n").append((char)9).append(expectedBody); if (testContentWithComments) assertContentEquals(expectedContent.toString(), initializer.getBody()); } { JInitializer initializer = (JInitializer)initializers.get(1); assertEquals(mainType, initializer.eContainer()); assertContentEquals(mainType.getName() + ".1", initializer.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.1", initializer.getQualifiedName()); assertTrue(initializer.isStatic()); StringBuffer expectedComment = new StringBuffer(); expectedComment.append(" /**"); expectedComment.append("\n").append(" * An static initializer"); expectedComment.append("\n").append(" */"); if (testComment) assertContentEquals(expectedComment.toString(), initializer.getComment()); StringBuffer expectedBody = new StringBuffer(); expectedBody.append("{"); expectedBody.append("\n").append(" System.out.println(\"A initializer with JavaDoc - line1\");"); expectedBody.append("\n").append(" System.out.println(\"A initializer with JavaDoc - line2\");"); expectedBody.append("\n").append(" }"); if (testBody) assertContentEquals(expectedBody.toString(), initializer.getBody()); } { JInitializer initializer = (JInitializer)initializers.get(2); assertEquals(mainType, initializer.eContainer()); assertContentEquals(mainType.getName() + ".2", initializer.getName()); assertContentEquals("org.eclipse.emf.test.examples.Example1.2", initializer.getQualifiedName()); assertEquals(JVisibility.PACKAGE_LITERAL, initializer.getVisibility()); StringBuffer expectedComment = new StringBuffer(); expectedComment.append(" /**"); expectedComment.append("\n").append(" * Another initializer with 2 lines"); expectedComment.append("\n").append(" * of javadoc."); expectedComment.append("\n").append(" */\n"); if (testComment) assertContentEquals(expectedComment.toString(), initializer.getComment()); StringBuffer expectedBody = new StringBuffer(); expectedBody.append("{"); expectedBody.append("\n").append(" System.out.println(\"Another initializer with JavaDoc\");"); expectedBody.append("\n").append(" }"); if (testBody) assertContentEquals(expectedBody.toString(), initializer.getBody()); } } protected void testInstanceOf(Object object, EClass cls) { assertTrue(object.toString(), cls.isInstance(object)); } protected void testInstanceOf(Object object, Class<?> cls) { assertTrue(object.toString(), cls.isInstance(object)); } public void assertContentEquals(String string1, String string2) { if (string2 != null) { string2 = string2.replaceAll("\r\n", "\n"); string2 = string2.replace('\r', '\n'); if (trimContents) { assertEquals(string1.trim(), string2.trim()); return; } } assertEquals(string1, string2); } public static void main(String arguments[]) { ResourceSet resourceSet = new ResourceSetImpl(); resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("packages", new JavaPackageResourceFactoryImpl()); JavaPackageResourceImpl javaPackageResource = (JavaPackageResourceImpl)resourceSet.getResource(JavaUtil.JAVA_PACKAGE_RESOURCE_URI, true); javaPackageResource.setClassLoader(JavaTest.class.getClassLoader()); JClass thisClass = (JClass)resourceSet.getEObject (JavaUtil.JAVA_PACKAGE_RESOURCE_URI.appendFragment("/org.eclipse.emf.test.examples/JavaTest"), true); System.out.println("All Methods of " + thisClass.getQualifiedName()); for (JMethod jMethod : thisClass.getAllMethods()) { System.out.println(" " + jMethod.getQualifiedName()); } System.exit(1); } }