Revision: 6255 http://languagetool.svn.sourceforge.net/languagetool/?rev=6255&view=rev Author: dnaber Date: 2012-01-15 21:36:36 +0000 (Sun, 15 Jan 2012) Log Message: ----------- some refactoring: extract code to private methods
Modified Paths: -------------- trunk/JLanguageTool/src/dev/org/languagetool/dev/RuleOverview.java Modified: trunk/JLanguageTool/src/dev/org/languagetool/dev/RuleOverview.java =================================================================== --- trunk/JLanguageTool/src/dev/org/languagetool/dev/RuleOverview.java 2012-01-15 18:48:18 UTC (rev 6254) +++ trunk/JLanguageTool/src/dev/org/languagetool/dev/RuleOverview.java 2012-01-15 21:36:36 UTC (rev 6255) @@ -21,6 +21,7 @@ import java.io.File; import java.io.FileFilter; import java.io.IOException; +import java.net.URL; import java.text.SimpleDateFormat; import java.util.*; @@ -45,7 +46,7 @@ } private RuleOverview() { - // no constructor + // no public constructor } private void run() throws IOException { @@ -66,18 +67,11 @@ System.out.println(" <th> </th>"); System.out.println(" <th valign='bottom' align=\"left\">Rule Maintainers</th>"); System.out.println("</tr>"); - final List<String> sortedLanguages = new ArrayList<String>(); - for (Language element : Language.LANGUAGES) { - if (element == Language.DEMO) { - continue; - } - sortedLanguages.add(element.getName()); - } - Collections.sort(sortedLanguages); + final List<String> sortedLanguages = getSortedLanguages(); //setup false friends counting final String falseFriendFile = JLanguageTool.getDataBroker().getRulesDir() + File.separator + "false-friends.xml"; - final java.net.URL falseFriendUrl = this.getClass().getResource(falseFriendFile); + final URL falseFriendUrl = this.getClass().getResource(falseFriendFile); final String falseFriendRules = StringTools.readFile(Tools.getStream(falseFriendFile)) .replaceAll("(?s)<!--.*?-->", "") .replaceAll("(?s)<rules.*?>", ""); @@ -88,7 +82,7 @@ System.out.print("<tr>"); System.out.print("<td valign=\"top\">" + lang.getName() + "</td>"); final String xmlFile = JLanguageTool.getDataBroker().getRulesDir() + File.separator + lang.getShortName() + File.separator + "grammar.xml"; - final java.net.URL url = this.getClass().getResource(xmlFile); + final URL url = this.getClass().getResource(xmlFile); if (url == null) { System.out.println("<td valign=\"top\" align=\"right\">0</td>"); } else { @@ -96,24 +90,8 @@ String xmlRules = StringTools.readFile(Tools.getStream(xmlFile)); xmlRules = xmlRules.replaceAll("(?s)<!--.*?-->", ""); xmlRules = xmlRules.replaceAll("(?s)<rules.*?>", ""); - int pos = 0; - int count = 0; - while (true) { - pos = xmlRules.indexOf("<rule ", pos + 1); - if (pos == -1) { - break; - } - count++; - } - pos = 0; - int countInRuleGroup = 0; - while (true) { - pos = xmlRules.indexOf("<rule>", pos + 1); - if (pos == -1) { - break; - } - countInRuleGroup++; - } + final int count = countXmlRules(xmlRules); + final int countInRuleGroup = countXmlRuleGroupRules(xmlRules); System.out.print("<td valign=\"top\" align=\"right\">" + (count + countInRuleGroup) + " (" + "<a href=\"http://languagetool.svn.sourceforge.net/viewvc/languagetool/trunk/JLanguageTool/src/rules/" + lang.getShortName() + "/grammar.xml?content-type=text%2Fplain" + "\">show</a>/" + @@ -125,12 +103,12 @@ // count Java rules: final File dir = new File("src/java/org/languagetool" + - JLanguageTool.getDataBroker().getRulesDir() + "/" + lang.getShortName()); + JLanguageTool.getDataBroker().getRulesDir() + "/" + lang.getShortName()); if (!dir.exists()) { System.out.print("<td valign=\"top\" align=\"right\">0</td>"); } else { final File[] javaRules = dir.listFiles(new JavaFilter()); - final int javaCount = javaRules.length-1; // minus 1: one is always "<Language>Rule.java" + final int javaCount = javaRules.length - 1; // minus 1: one is always "<Language>Rule.java" System.out.print("<td valign=\"top\" align=\"right\">" + javaCount + "</td>"); overallJavaCount++; } @@ -140,16 +118,7 @@ if (falseFriendUrl == null) { System.out.println("<td valign=\"top\" align=\"right\">0</td>"); } else { - // count XML rules: - int pos = 0; - int count = 0; - while (true) { - pos = falseFriendRules.indexOf("<pattern lang=\""+ lang.getShortName(), pos + 1); - if (pos == -1) { - break; - } - count++; - } + final int count = countFalseFriendRules(falseFriendRules, lang); System.out.print("<td valign=\"top\" align=\"right\">" + count + "</td>"); System.out.print("<td></td>"); @@ -157,28 +126,8 @@ // maintainer information: System.out.print("<td></td>"); - final StringBuilder maintainerInfo = new StringBuilder(); - if (lang.getMaintainers() != null) { - for (Contributor contributor : lang.getMaintainers()) { - if (!StringTools.isEmpty(maintainerInfo. toString())) { - maintainerInfo.append(", "); - } - if (contributor.getUrl() != null) { - maintainerInfo.append("<a href=\""); - maintainerInfo.append(contributor.getUrl()); - maintainerInfo.append("\">"); - } - maintainerInfo.append(contributor.getName()); - if (contributor.getUrl() != null) { - maintainerInfo.append("</a>"); - } - if (contributor.getRemark() != null) { - maintainerInfo.append(" (" + contributor.getRemark() + ")"); - } - } - } - System.out.print("<td valign=\"top\" align=\"left\">" + maintainerInfo.toString() + - "</td>"); + final StringBuilder maintainerInfo = getMaintainerInfo(lang); + System.out.print("<td valign=\"top\" align=\"left\">" + maintainerInfo.toString() + "</td>"); } System.out.println("</tr>"); @@ -188,9 +137,84 @@ throw new RuntimeException("No Java rules found"); } - System.out.println("</table>"); + System.out.println("</table>"); } - + + private List<String> getSortedLanguages() { + final List<String> sortedLanguages = new ArrayList<String>(); + for (Language element : Language.LANGUAGES) { + if (element == Language.DEMO) { + continue; + } + sortedLanguages.add(element.getName()); + } + Collections.sort(sortedLanguages); + return sortedLanguages; + } + + private int countXmlRules(String xmlRules) { + int pos = 0; + int count = 0; + while (true) { + pos = xmlRules.indexOf("<rule ", pos + 1); + if (pos == -1) { + break; + } + count++; + } + return count; + } + + private int countXmlRuleGroupRules(String xmlRules) { + int pos = 0; + int countInRuleGroup = 0; + while (true) { + pos = xmlRules.indexOf("<rule>", pos + 1); + if (pos == -1) { + break; + } + countInRuleGroup++; + } + return countInRuleGroup; + } + + private int countFalseFriendRules(String falseFriendRules, Language lang) { + int pos = 0; + int count = 0; + while (true) { + pos = falseFriendRules.indexOf("<pattern lang=\"" + lang.getShortName(), pos + 1); + if (pos == -1) { + break; + } + count++; + } + return count; + } + + private StringBuilder getMaintainerInfo(Language lang) { + final StringBuilder maintainerInfo = new StringBuilder(); + if (lang.getMaintainers() != null) { + for (Contributor contributor : lang.getMaintainers()) { + if (!StringTools.isEmpty(maintainerInfo.toString())) { + maintainerInfo.append(", "); + } + if (contributor.getUrl() != null) { + maintainerInfo.append("<a href=\""); + maintainerInfo.append(contributor.getUrl()); + maintainerInfo.append("\">"); + } + maintainerInfo.append(contributor.getName()); + if (contributor.getUrl() != null) { + maintainerInfo.append("</a>"); + } + if (contributor.getRemark() != null) { + maintainerInfo.append(" (" + contributor.getRemark() + ")"); + } + } + } + return maintainerInfo; + } + private boolean isAutoDetected(String code) { if (LanguageIdentifier.getSupportedLanguages().contains(code)) { return true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ RSA(R) Conference 2012 Mar 27 - Feb 2 Save $400 by Jan. 27 Register now! http://p.sf.net/sfu/rsa-sfdev2dev2 _______________________________________________ Languagetool-cvs mailing list Languagetool-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/languagetool-cvs