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;
}