Author: tchemit Date: 2011-02-01 17:43:24 +0100 (Tue, 01 Feb 2011) New Revision: 1045 Url: http://nuiton.org/repositories/revision/eugene/1045 Log: add array support in ImportManager Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/extension/ImportsManager.java trunk/eugene/src/test/java/org/nuiton/eugene/java/extension/ImportsManagerTest.java Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/extension/ImportsManager.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/extension/ImportsManager.java 2011-01-31 18:08:12 UTC (rev 1044) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/extension/ImportsManager.java 2011-02-01 16:43:24 UTC (rev 1045) @@ -130,6 +130,14 @@ // was not imported return false; } + + if (fqn.endsWith("[]")) { + + // fqn contains an array definition + String simpleFQN = fqn.substring(0, fqn.length() - 2); + return addImport(simpleFQN); + } + if (JavaGeneratorUtil.containsGenerics(fqn)) { // Generics case : @@ -168,6 +176,20 @@ * If there is a conflict, returns the fully qualified name, otherwise * returns the simple name * + * @param clazz the clazz to add + * @return the fqn or simple name according to in-place imports + * @since 2.3.2 + */ + public String getType(Class<?> clazz) { + String type = getType(clazz.getName()); + return type; + } + + /** + * Accorging to the already added types, returns the type to write in file. + * If there is a conflict, returns the fully qualified name, otherwise + * returns the simple name + * * @param fqn the fully qualified name to add * @return the fqn or simple name according to in-place imports */ @@ -187,7 +209,7 @@ // There is a conflict, do not use simple name return fqn; - } + } // No conflict, use simple name int packageEndIndex = getLastDotIndex(fqn); if (packageEndIndex == -1) { Modified: trunk/eugene/src/test/java/org/nuiton/eugene/java/extension/ImportsManagerTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/java/extension/ImportsManagerTest.java 2011-01-31 18:08:12 UTC (rev 1044) +++ trunk/eugene/src/test/java/org/nuiton/eugene/java/extension/ImportsManagerTest.java 2011-02-01 16:43:24 UTC (rev 1045) @@ -30,6 +30,7 @@ import org.junit.Before; import org.junit.Test; +import java.io.File; import java.io.Serializable; import java.util.List; @@ -106,6 +107,9 @@ Assert.assertTrue(mgr.addImport(Serializable.class)); Assert.assertFalse(mgr.addImport("org.nuiton.eugene.Serializable")); + + Assert.assertTrue(mgr.addImport(File.class.getName() + "[]")); + Assert.assertTrue(mgr.addImport(File.class)); // was already import just above } @Test @@ -122,6 +126,9 @@ Assert.assertEquals("Byte", mgr.getType("Byte")); Assert.assertEquals("Toto", mgr.getType("java.lang.Toto")); Assert.assertEquals("java.lang.sub.Toto", mgr.getType("java.lang.sub.Toto")); // Conflict, package differs + + Assert.assertEquals("File[]", mgr.getType(File.class.getName() + "[]")); + Assert.assertEquals("File", mgr.getType(File.class.getName())); } @Test @@ -141,7 +148,7 @@ Assert.assertEquals("org.nuiton.eugene.subpackage.Tata", imports.get(2)); } -@Test + @Test public void testGetImportsWithGeneric() throws Exception { Assert.assertTrue(mgr.addImport("org.nuiton.eugene.Toto<String, java.util.File>")); List<String> imports = mgr.getImports("org.nuiton.eugene"); @@ -149,7 +156,7 @@ Assert.assertEquals("java.util.File", imports.get(0)); } - + @Test public void testGetImports() throws Exception { Assert.assertTrue(mgr.addImport("org.nuiton.eugene.Toto"));