Author: echatellier Date: 2010-01-14 11:02:37 +0100 (Thu, 14 Jan 2010) New Revision: 787 Modified: trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java Log: Use a simplier code to parse import. Modified: trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2010-01-10 23:05:10 UTC (rev 786) +++ trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2010-01-14 10:02:37 UTC (rev 787) @@ -611,21 +611,20 @@ */ public static Set<String> getTypesList(String str) { - Pattern p = Pattern.compile("^(([\\w\\s\\?]*\\s))?([\\w\\.]+)((<)(.*)(>))?(\\(\\))?$"); - Matcher m = p.matcher(str); - Set<String> results = new HashSet<String>(); - if (m.find()) { - results.add(m.group(3)); - if (m.group(6) != null) { // cas du type generic - // FIXME can not work in some case - if (m.group(6).matches("[^,]+<.*>")) { - results.addAll(getTypesList(m.group(6))); - } - else for (String onepart : m.group(6).split("(\\s*,\\s*)")) { - results.addAll(getTypesList(onepart)); - } + // remove extends, super + String localStr = str.replaceAll("([\\w\\?]+ extends|[\\w\\?]+ super|new)", ""); + + // replace non java enabled characters + localStr = localStr.replaceAll("[^\\w\\.]", " "); + + // each space separated part is an import + String[] strArray = localStr.split("\\s+"); + for (String strImport : strArray) { + String localStrImport = strImport.trim(); + if (!localStrImport.isEmpty()) { + results.add(localStrImport); } } Modified: trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java 2010-01-10 23:05:10 UTC (rev 786) +++ trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java 2010-01-14 10:02:37 UTC (rev 787) @@ -205,10 +205,10 @@ log.info(str + " -> " + results); assertEquals(4, results.size()); - //str = "java.util.TreeMap<java.util.ArrayList<java.util.Date>, java.util.SortedSet<java.lang.Number, java.lang.Double>>"; - //results = GeneratorUtil.getTypesList(str); - //log.info(str + " -> " + results); - //assertEquals(4, results.size()); + str = "java.util.TreeMap<java.util.ArrayList<java.util.Date>, java.util.SortedSet<java.lang.Number, java.lang.Double>>"; + results = GeneratorUtil.getTypesList(str); + log.info(str + " -> " + results); + assertEquals(6, results.size()); // str = "<T extends org.nuiton.topia.TopiaEntity> T"; // results = GeneratorUtil.getTypesList(str);