Revision: 6977
http://languagetool.svn.sourceforge.net/languagetool/?rev=6977&view=rev
Author: milek_pl
Date: 2012-05-18 21:28:24 +0000 (Fri, 18 May 2012)
Log Message:
-----------
use dataBroker in where it should be used
Modified Paths:
--------------
trunk/JLanguageTool/src/java/org/languagetool/rules/patterns/bitext/FalseFriendsAsBitextLoader.java
trunk/JLanguageTool/src/java/org/languagetool/tools/Tools.java
trunk/JLanguageTool/src/test/org/languagetool/rules/bitext/FalseFriendsAsBitextLoaderTest.java
Added Paths:
-----------
trunk/JLanguageTool/src/dev/tools/ltdiff/VersionDiffGenerator.java
Removed Paths:
-------------
trunk/JLanguageTool/src/dev/tools/ltdiff/VersionDiffGenerator.java
Deleted: trunk/JLanguageTool/src/dev/tools/ltdiff/VersionDiffGenerator.java
===================================================================
--- trunk/JLanguageTool/src/dev/tools/ltdiff/VersionDiffGenerator.java
2012-05-18 21:09:25 UTC (rev 6976)
+++ trunk/JLanguageTool/src/dev/tools/ltdiff/VersionDiffGenerator.java
2012-05-18 21:28:24 UTC (rev 6977)
@@ -1,210 +0,0 @@
-import java.io.*;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Scanner;
-
-/**
- * Generates an HTML report of added, deleted and modified rules between
versions of LanguageTool.
- * See ltdiff.bash.
- */
-class VersionDiffGenerator {
-
- public static void main(String[] args) throws IOException {
- final VersionDiffGenerator generator = new VersionDiffGenerator();
- generator.makeDiff(args[0]);
- }
-
- private void makeDiff(String lang) throws IOException {
-
- final List<Rule> oldRules = new ArrayList<Rule>(); // rules in old
grammar.xml
- final List<Rule> newRules = new ArrayList<Rule>(); // rules in new
grammar.xml
- final List<Rule> modifiedRules = new ArrayList<Rule>();
-
- for (int i = 0; i < 2; i++) {
-
- final List<Rule> rules;
- if (i == 0) {
- rules = oldRules;
- } else {
- rules = newRules;
- }
-
- final Scanner scanner = new Scanner(new FileReader(i == 0 ? "old" :
"new"));
-
- Rule r = new Rule();
-
- // loop through all lines
- while (scanner.hasNextLine()) {
- String line = scanner.nextLine();
-
- if (line.contains("id=\"") && line.contains("rule")) {
-
- if (!line.contains("name=\"")) { // merge with the following line if
the name is there (e.g. sk)
- line += scanner.nextLine();
- }
-
- if (r.numberOfExamples() > 0) {
- rules.add(r);
- r = new Rule();
- }
-
- r.id = line;
- r.name = line;
-
- r.id = r.id.replaceAll(".*id=\"","").replaceAll("\".*","");
- r.name = r.name.replaceAll(".*name=\"","").replaceAll("\".*","");
-
- for (Rule rule : rules) { // ensure that the name is unique
- if (r.name.equals(rule.name)) {
- r.name += " ";
- }
- }
-
- } else if (line.contains("type=\"correct\"")) {
-
- while (!line.contains("</example>")) { // merge with the following
line(s) if the example continues there
- line += scanner.nextLine();
- }
-
r.correct.add(line.replaceAll("marker","b").replaceAll(".*<example.*?>","").replaceAll("</example>.*",""));
-
- } else if (line.contains("type=\"incorrect\"")) {
-
- while (!line.contains("</example>")) {
- line += scanner.nextLine();
- }
-
r.incorrect.add(line.replaceAll("marker","b").replaceAll(".*<example.*?>","").replaceAll("</example>.*",""));
-
- }
-
- } // while(readLine)
-
- scanner.close();
-
- }
-
- // sort rules by name
- Collections.sort(oldRules);
- Collections.sort(newRules);
-
- // create html file containing the tr elements
-
- final FileWriter fileWriter = new FileWriter("changes_" + lang + ".html");
- final BufferedWriter out = new BufferedWriter(fileWriter);
-
- for (Rule newRule1 : newRules) {
-
- boolean found = false;
-
- for (int j = 0; j < oldRules.size() && !found; j++) {
-
- if (newRule1.id.equals(oldRules.get(j).id) ||
newRule1.name.equals(oldRules.get(j).name)) {
-
- found = true;
-
- if (newRule1.numberOfExamples() >
oldRules.get(j).numberOfExamples()) { // if the new rules has more examples, it
is considered to be improved
-
- final Rule r = newRule1;
-
- for (int k = 0; k < r.correct.size(); k++) { // remove examples
which already exist in old rule
-
- for (int l = 0; l < oldRules.get(j).correct.size(); l++) {
-
- if (r.correct.get(k).equals(oldRules.get(j).correct.get(l))) {
-
- r.correct.remove(k);
- if (k > 0) k--;
-
- } // if examples equal
-
- } // for each old correct example
-
- } // for each new correct example
-
- for (int k = 0; k < r.incorrect.size(); k++) { // remove examples
which already exist in old rule
-
- for (int l = 0; l < oldRules.get(j).incorrect.size(); l++) {
-
- if
(r.incorrect.get(k).equals(oldRules.get(j).incorrect.get(l))) {
-
- r.incorrect.remove(k);
- if (k > 0) k--;
-
- } // if examples equal
-
- } // for each old incorrect example
-
- } // for each new incorrect example
-
- modifiedRules.add(r);
-
- } // if new rules has more examples
-
- } // if new rule is not new
-
- } // for each old rule
-
- if (!found) {
- out.write("<tr class=\"new\"><td>4NEWRULE</td><td>" + newRule1.name +
newRule1.getExamples(false) + "</td></tr>\n");
- }
-
- } // for each new rule
-
- for (Rule modifiedRule : modifiedRules) {
- out.write("<tr class=\"modified\"><td>6IMPROVEDRULE</td><td>" +
modifiedRule.name + modifiedRule.getExamples(true) + "</td></tr>\n");
- }
-
- for (Rule oldRule : oldRules) {
- boolean found = false;
- for (Rule newRule : newRules) {
- if (newRule.id.equals(oldRule.id) ||
newRule.name.equals(oldRule.name)) {
- found = true;
- }
- }
- if (!found) {
- out.write("<tr class=\"removed\"><td>5REMOVEDRULE</td><td>" +
oldRule.name + "</td></tr>\n");
- }
- }
-
- out.close();
- }
-
- class Rule implements Comparable<Rule> {
-
- private final List<String> correct = new ArrayList<String>();
- private final List<String> incorrect = new ArrayList<String>();
-
- private String name = "";
- private String id;
-
- int numberOfExamples() {
- return correct.size() + incorrect.size();
- }
-
- String getExamples(boolean all) {
-
- String s = "<div>";
-
- for (String anIncorrect : incorrect) {
- s += "<span>7FINDERR</span>" + anIncorrect + "<br/>";
- }
-
- if (all) {
- for (String aCorrect : correct) {
- s += "<span>8FINDNOTERR</span>" + aCorrect + "<br/>";
- }
- }
-
- s = s.substring(0, s.length() - 5) + "</div>";
-
- return s;
-
- }
-
- @Override
- public int compareTo(Rule r) {
- return this.name.compareTo(r.name);
- }
- }
-
-}
\ No newline at end of file
Added: trunk/JLanguageTool/src/dev/tools/ltdiff/VersionDiffGenerator.java
===================================================================
--- trunk/JLanguageTool/src/dev/tools/ltdiff/VersionDiffGenerator.java
(rev 0)
+++ trunk/JLanguageTool/src/dev/tools/ltdiff/VersionDiffGenerator.java
2012-05-18 21:28:24 UTC (rev 6977)
@@ -0,0 +1,211 @@
+package tools.ltdiff;
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Scanner;
+
+/**
+ * Generates an HTML report of added, deleted and modified rules between
versions of LanguageTool.
+ * See ltdiff.bash.
+ */
+class VersionDiffGenerator {
+
+ public static void main(String[] args) throws IOException {
+ final VersionDiffGenerator generator = new VersionDiffGenerator();
+ generator.makeDiff(args[0]);
+ }
+
+ private void makeDiff(String lang) throws IOException {
+
+ final List<Rule> oldRules = new ArrayList<Rule>(); // rules in old
grammar.xml
+ final List<Rule> newRules = new ArrayList<Rule>(); // rules in new
grammar.xml
+ final List<Rule> modifiedRules = new ArrayList<Rule>();
+
+ for (int i = 0; i < 2; i++) {
+
+ final List<Rule> rules;
+ if (i == 0) {
+ rules = oldRules;
+ } else {
+ rules = newRules;
+ }
+
+ final Scanner scanner = new Scanner(new FileReader(i == 0 ? "old" :
"new"));
+
+ Rule r = new Rule();
+
+ // loop through all lines
+ while (scanner.hasNextLine()) {
+ String line = scanner.nextLine();
+
+ if (line.contains("id=\"") && line.contains("rule")) {
+
+ if (!line.contains("name=\"")) { // merge with the following line if
the name is there (e.g. sk)
+ line += scanner.nextLine();
+ }
+
+ if (r.numberOfExamples() > 0) {
+ rules.add(r);
+ r = new Rule();
+ }
+
+ r.id = line;
+ r.name = line;
+
+ r.id = r.id.replaceAll(".*id=\"","").replaceAll("\".*","");
+ r.name = r.name.replaceAll(".*name=\"","").replaceAll("\".*","");
+
+ for (Rule rule : rules) { // ensure that the name is unique
+ if (r.name.equals(rule.name)) {
+ r.name += " ";
+ }
+ }
+
+ } else if (line.contains("type=\"correct\"")) {
+
+ while (!line.contains("</example>")) { // merge with the following
line(s) if the example continues there
+ line += scanner.nextLine();
+ }
+
r.correct.add(line.replaceAll("marker","b").replaceAll(".*<example.*?>","").replaceAll("</example>.*",""));
+
+ } else if (line.contains("type=\"incorrect\"")) {
+
+ while (!line.contains("</example>")) {
+ line += scanner.nextLine();
+ }
+
r.incorrect.add(line.replaceAll("marker","b").replaceAll(".*<example.*?>","").replaceAll("</example>.*",""));
+
+ }
+
+ } // while(readLine)
+
+ scanner.close();
+
+ }
+
+ // sort rules by name
+ Collections.sort(oldRules);
+ Collections.sort(newRules);
+
+ // create html file containing the tr elements
+
+ final FileWriter fileWriter = new FileWriter("changes_" + lang + ".html");
+ final BufferedWriter out = new BufferedWriter(fileWriter);
+
+ for (Rule newRule1 : newRules) {
+
+ boolean found = false;
+
+ for (int j = 0; j < oldRules.size() && !found; j++) {
+
+ if (newRule1.id.equals(oldRules.get(j).id) ||
newRule1.name.equals(oldRules.get(j).name)) {
+
+ found = true;
+
+ if (newRule1.numberOfExamples() >
oldRules.get(j).numberOfExamples()) { // if the new rules has more examples, it
is considered to be improved
+
+ final Rule r = newRule1;
+
+ for (int k = 0; k < r.correct.size(); k++) { // remove examples
which already exist in old rule
+
+ for (int l = 0; l < oldRules.get(j).correct.size(); l++) {
+
+ if (r.correct.get(k).equals(oldRules.get(j).correct.get(l))) {
+
+ r.correct.remove(k);
+ if (k > 0) k--;
+
+ } // if examples equal
+
+ } // for each old correct example
+
+ } // for each new correct example
+
+ for (int k = 0; k < r.incorrect.size(); k++) { // remove examples
which already exist in old rule
+
+ for (int l = 0; l < oldRules.get(j).incorrect.size(); l++) {
+
+ if
(r.incorrect.get(k).equals(oldRules.get(j).incorrect.get(l))) {
+
+ r.incorrect.remove(k);
+ if (k > 0) k--;
+
+ } // if examples equal
+
+ } // for each old incorrect example
+
+ } // for each new incorrect example
+
+ modifiedRules.add(r);
+
+ } // if new rules has more examples
+
+ } // if new rule is not new
+
+ } // for each old rule
+
+ if (!found) {
+ out.write("<tr class=\"new\"><td>4NEWRULE</td><td>" + newRule1.name +
newRule1.getExamples(false) + "</td></tr>\n");
+ }
+
+ } // for each new rule
+
+ for (Rule modifiedRule : modifiedRules) {
+ out.write("<tr class=\"modified\"><td>6IMPROVEDRULE</td><td>" +
modifiedRule.name + modifiedRule.getExamples(true) + "</td></tr>\n");
+ }
+
+ for (Rule oldRule : oldRules) {
+ boolean found = false;
+ for (Rule newRule : newRules) {
+ if (newRule.id.equals(oldRule.id) ||
newRule.name.equals(oldRule.name)) {
+ found = true;
+ }
+ }
+ if (!found) {
+ out.write("<tr class=\"removed\"><td>5REMOVEDRULE</td><td>" +
oldRule.name + "</td></tr>\n");
+ }
+ }
+
+ out.close();
+ }
+
+ class Rule implements Comparable<Rule> {
+
+ private final List<String> correct = new ArrayList<String>();
+ private final List<String> incorrect = new ArrayList<String>();
+
+ private String name = "";
+ private String id;
+
+ int numberOfExamples() {
+ return correct.size() + incorrect.size();
+ }
+
+ String getExamples(boolean all) {
+
+ String s = "<div>";
+
+ for (String anIncorrect : incorrect) {
+ s += "<span>7FINDERR</span>" + anIncorrect + "<br/>";
+ }
+
+ if (all) {
+ for (String aCorrect : correct) {
+ s += "<span>8FINDNOTERR</span>" + aCorrect + "<br/>";
+ }
+ }
+
+ s = s.substring(0, s.length() - 5) + "</div>";
+
+ return s;
+
+ }
+
+ @Override
+ public int compareTo(Rule r) {
+ return this.name.compareTo(r.name);
+ }
+ }
+
+}
\ No newline at end of file
Modified:
trunk/JLanguageTool/src/java/org/languagetool/rules/patterns/bitext/FalseFriendsAsBitextLoader.java
===================================================================
---
trunk/JLanguageTool/src/java/org/languagetool/rules/patterns/bitext/FalseFriendsAsBitextLoader.java
2012-05-18 21:09:25 UTC (rev 6976)
+++
trunk/JLanguageTool/src/java/org/languagetool/rules/patterns/bitext/FalseFriendsAsBitextLoader.java
2012-05-18 21:28:24 UTC (rev 6977)
@@ -28,45 +28,47 @@
import org.xml.sax.SAXException;
+import org.languagetool.JLanguageTool;
import org.languagetool.Language;
import org.languagetool.rules.patterns.FalseFriendRuleLoader;
import org.languagetool.rules.patterns.PatternRule;
/**
- * Loads the false friend rules as bitext pattern rules. Note that the
resulting
+ * Loads the false friend rules as bitext pattern rules. Note that the
resulting
* rules have suggestions that are not really customizable, in
contradistinction
* to the 'real' bitext pattern rules.
*
* @author Marcin MiĆkowski
- *
+ *
*/
public class FalseFriendsAsBitextLoader {
-
- public List<BitextPatternRule> getFalseFriendsAsBitext(final String filename,
- final Language motherTongue, final Language language) throws
ParserConfigurationException, SAXException, IOException {
- final FalseFriendRuleLoader ruleLoader = new FalseFriendRuleLoader();
- List<BitextPatternRule> bRules = new ArrayList<BitextPatternRule>();
- List<PatternRule> rules1 =
- ruleLoader.getRules(this.getClass().getResourceAsStream(filename),
- motherTongue, language);
- List<PatternRule> rules2 =
- ruleLoader.getRules(this.getClass().getResourceAsStream(filename),
- language, motherTongue);
- HashMap<String, PatternRule> srcRules = new HashMap<String, PatternRule>();
- for (PatternRule rule : rules1) {
- srcRules.put(rule.getId(), rule);
- }
- for (PatternRule rule : rules2) {
- if (srcRules.containsKey(rule.getId())) {
- BitextPatternRule bRule = new BitextPatternRule(
- srcRules.get(rule.getId()), rule);
- bRule.setSourceLang(motherTongue);
- bRule.setCategory(rule.getCategory());
- bRules.add(bRule);
- }
- }
- return bRules;
- }
+ public List<BitextPatternRule> getFalseFriendsAsBitext(
+ final String filename, final Language motherTongue,
+ final Language language) throws
ParserConfigurationException,
+ SAXException, IOException {
+ final FalseFriendRuleLoader ruleLoader = new
FalseFriendRuleLoader();
+ List<BitextPatternRule> bRules = new
ArrayList<BitextPatternRule>();
+ List<PatternRule> rules1 = ruleLoader.getRules(JLanguageTool
+
.getDataBroker().getFromRulesDirAsStream(filename),
+ motherTongue, language);
+ List<PatternRule> rules2 = ruleLoader.getRules(JLanguageTool
+
.getDataBroker().getFromRulesDirAsStream(filename),
+ language, motherTongue);
+ HashMap<String, PatternRule> srcRules = new HashMap<String,
PatternRule>();
+ for (PatternRule rule : rules1) {
+ srcRules.put(rule.getId(), rule);
+ }
+ for (PatternRule rule : rules2) {
+ if (srcRules.containsKey(rule.getId())) {
+ BitextPatternRule bRule = new BitextPatternRule(
+ srcRules.get(rule.getId()),
rule);
+ bRule.setSourceLang(motherTongue);
+ bRule.setCategory(rule.getCategory());
+ bRules.add(bRule);
+ }
+ }
+ return bRules;
+ }
+
}
-
Modified: trunk/JLanguageTool/src/java/org/languagetool/tools/Tools.java
===================================================================
--- trunk/JLanguageTool/src/java/org/languagetool/tools/Tools.java
2012-05-18 21:09:25 UTC (rev 6976)
+++ trunk/JLanguageTool/src/java/org/languagetool/tools/Tools.java
2012-05-18 21:28:24 UTC (rev 6977)
@@ -353,8 +353,7 @@
final FalseFriendsAsBitextLoader fRuleLoader = new
FalseFriendsAsBitextLoader();
final String fName = "/false-friends.xml";
bRules.addAll(fRuleLoader.
- getFalseFriendsAsBitext(
- JLanguageTool.getDataBroker().getRulesDir() + fName,
+ getFalseFriendsAsBitext(fName,
source, target));
//load Java bitext rules
Modified:
trunk/JLanguageTool/src/test/org/languagetool/rules/bitext/FalseFriendsAsBitextLoaderTest.java
===================================================================
---
trunk/JLanguageTool/src/test/org/languagetool/rules/bitext/FalseFriendsAsBitextLoaderTest.java
2012-05-18 21:09:25 UTC (rev 6976)
+++
trunk/JLanguageTool/src/test/org/languagetool/rules/bitext/FalseFriendsAsBitextLoaderTest.java
2012-05-18 21:28:24 UTC (rev 6977)
@@ -49,7 +49,7 @@
final String name = "/false-friends.xml";
final List<BitextPatternRule> rules = ruleLoader.
getFalseFriendsAsBitext(
- JLanguageTool.getDataBroker().getRulesDir() + name,
+ name,
Language.ENGLISH, Language.POLISH);
assertErrors(1, rules, "This is an absurd.", "To absurd.", langTool,
trgTool);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Languagetool-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/languagetool-cvs