You are viewing a plain text version of this content. The canonical link for it is here.
Posted to droids-commits@incubator.apache.org by to...@apache.org on 2013/03/01 09:04:21 UTC

svn commit: r1451536 - /incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/RegexURLFilter.java

Author: tobr
Date: Fri Mar  1 09:04:20 2013
New Revision: 1451536

URL: http://svn.apache.org/r1451536
Log:
added rules reader from inputstream
https://issues.apache.org/jira/browse/DROIDS-98

added documentation

Modified:
    incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/RegexURLFilter.java

Modified: incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/RegexURLFilter.java
URL: http://svn.apache.org/viewvc/incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/RegexURLFilter.java?rev=1451536&r1=1451535&r2=1451536&view=diff
==============================================================================
--- incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/RegexURLFilter.java (original)
+++ incubator/droids/branches/0.2.x-cleanup/droids-core/src/main/java/org/apache/droids/filter/RegexURLFilter.java Fri Mar  1 09:04:20 2013
@@ -16,10 +16,7 @@
  */
 package org.apache.droids.filter;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
+import java.io.*;
 import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
@@ -31,8 +28,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Regular expression implementation of an UrlFilter. Evaluates the url based on
- * regular expression.
+ * Regular expression implementation of an UrlFilter.
+ * Evaluates the url based on regular expression.
  *
  * @version 1.0
  */
@@ -82,10 +79,12 @@ public class RegexURLFilter<T extends Ta
     }
 
     /**
-     * @param file
+     * Add rules provided by file.
+     *
+     * @param file the path to the file
      * @throws IOException
      */
-    public void setFile(String file) throws IOException {
+    public void addRulesFile(String file) throws IOException {
         URL url = null;
         if (file.startsWith("classpath:/")) {
             url = this.getClass().getResource(file.substring("classpath:/".length() - 1));
@@ -101,6 +100,25 @@ public class RegexURLFilter<T extends Ta
         }
     }
 
+    /**
+     * Add rules from an inputstream of a rules file.
+     *
+     * @param is the inputstream of a file with rules
+     * @throws IOException
+     */
+    public void addRulesFile(InputStream is) throws IOException {
+        Reader reader = new InputStreamReader(is);
+        rules.addAll(readRulesFile(reader));
+    }
+
+    /**
+     * Extract the regex rules from a reader and
+     * add the to the filter.
+     *
+     * @param reader the rules reader
+     * @return a list of regex rules
+     * @throws IOException
+     */
     private List<RegexRule> readRulesFile(Reader reader) throws IOException {
         BufferedReader in = new BufferedReader(reader);
         List<RegexRule> localRules = new ArrayList<RegexRule>(16);
@@ -138,10 +156,20 @@ public class RegexURLFilter<T extends Ta
 
     }
 
+    /**
+     * Create a new regex rule.
+     *
+     * @param sign boolean value to define the filtering in or out.
+     * @param regex the rules regex
+     * @return
+     */
     private static RegexRule createRule(boolean sign, String regex) {
         return new Rule(sign, regex);
     }
 
+    /**
+     * Implementation of {@link RegexRule}
+     */
     private static class Rule extends RegexRule {
 
         private Pattern pattern;