Author: otis
Date: Fri Dec 24 14:12:33 2010
New Revision: 1052508

URL: http://svn.apache.org/viewvc?rev=1052508&view=rev
Log:
DROIDS-111 : introduce another input type in the API - the regex expression, 
which makes much more sense than just being able to specify the regex 
expressions in an external file

Modified:
    
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/net/RegexURLFilter.java

Modified: 
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/net/RegexURLFilter.java
URL: 
http://svn.apache.org/viewvc/incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/net/RegexURLFilter.java?rev=1052508&r1=1052507&r2=1052508&view=diff
==============================================================================
--- 
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/net/RegexURLFilter.java
 (original)
+++ 
incubator/droids/trunk/droids-core/src/main/java/org/apache/droids/net/RegexURLFilter.java
 Fri Dec 24 14:12:33 2010
@@ -37,7 +37,23 @@ import org.apache.droids.helper.Loggable
  */
 public class RegexURLFilter extends Loggable implements URLFilter {
   /** An array of applicable rules */
-  private RegexRule[] rules = null;
+  private final List<RegexRule> rules;
+  
+  public RegexURLFilter(){
+         rules = new ArrayList< RegexRule >();
+  }
+  
+  /**
+   * Adds a new regex rule to this filter <br>
+   */
+  public void addRule(final boolean sign, final String regex) {
+         if( regex == null ){
+                 throw new IllegalArgumentException();
+         }
+         
+         final RegexRule rule = createRule(sign, regex);
+         rules.add(rule);
+  }
 
   /*
    * (non-Javadoc)
@@ -54,7 +70,7 @@ public class RegexURLFilter extends Logg
     }
     return null;
   }
-
+  
   /**
    * @param file
    */
@@ -68,10 +84,10 @@ public class RegexURLFilter extends Logg
     }
     log.debug("url " + url);
     Reader reader = new InputStreamReader(url.openStream());
-    rules = readRulesFile(reader);
+    rules.addAll( readRulesFile(reader) );
   }
 
-  private RegexRule[] readRulesFile(Reader reader) throws IOException {
+  private List<RegexRule> readRulesFile(Reader reader) throws IOException {
     BufferedReader in = new BufferedReader(reader);
     List<RegexRule> localRules = new ArrayList<RegexRule>();
     String line = null;
@@ -101,10 +117,10 @@ public class RegexURLFilter extends Logg
       if (log.isTraceEnabled()) {
         log.trace("Adding rule [" + regex + "]");
       }
-      RegexRule rule = createRule(sign, regex);
+      final RegexRule rule = createRule(sign, regex);
       localRules.add(rule);
     }
-    return localRules.toArray(new RegexRule[localRules.size()]);
+    return localRules;
 
   }
 


Reply via email to