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>&nbsp;&nbsp;</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("&nbsp;(" + 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("&nbsp;(" + 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

Reply via email to