Author: julien_viet
Date: 2010-11-26 16:11:05 -0500 (Fri, 26 Nov 2010)
New Revision: 5303
Modified:
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/regexp/RENode.java
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/regexp/RegExpParser.java
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/regexp/TestParser.java
Log:
simplify a bit
Modified:
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/regexp/RENode.java
===================================================================
---
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/regexp/RENode.java 2010-11-26
20:50:07 UTC (rev 5302)
+++
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/regexp/RENode.java 2010-11-26
21:11:05 UTC (rev 5303)
@@ -19,8 +19,6 @@
package org.exoplatform.web.controller.regexp;
-import org.hibernate.criterion.Disjunction;
-
/**
* @author <a href="mailto:julien.viet@exoplatform.com">Julien
Viet</a>
* @version $Revision$
@@ -28,6 +26,8 @@
public abstract class RENode
{
+ public abstract String toString();
+
public static class Disjunction extends RENode
{
@@ -39,12 +39,17 @@
public Disjunction(Alternative alternative)
{
- this.alternative = alternative;
- this.next = null;
+ this(alternative, null);
}
public Disjunction(Alternative alternative, Disjunction next)
{
+ if (alternative == null)
+ {
+ throw new NullPointerException();
+ }
+
+ //
this.alternative = alternative;
this.next = next;
}
@@ -74,12 +79,15 @@
public Alternative(Exp exp)
{
- this.exp = exp;
- this.next = null;
+ this(exp, null);
}
public Alternative(Exp exp, Alternative next)
{
+ if (exp == null)
+ {
+ throw new NullPointerException();
+ }
this.exp = exp;
this.next = next;
}
@@ -98,24 +106,42 @@
}
}
- public String toString()
- {
- throw new UnsupportedOperationException();
- }
-
public static abstract class Exp extends RENode
{
+
+ /** . */
+ Quantifier quantifier;
+
+ @Override
+ public final String toString()
+ {
+ StringBuilder sb = new StringBuilder();
+ if (quantifier != null)
+ {
+ String q = quantifier.toString();
+ sb.append('<').append(q).append('>');
+ toString(sb);
+ sb.append("</").append(q).append('>');
+ }
+ else
+ {
+ toString(sb);
+ }
+ return sb.toString();
+ }
+
+ protected abstract void toString(StringBuilder sb);
}
- public static class Assertion extends Exp
+ public static abstract class Assertion extends Exp
{
/** . */
public static final Assertion BEGIN = new Assertion()
{
@Override
- public String toString()
+ protected void toString(StringBuilder sb)
{
- return "<^/>";
+ sb.append("<^/>");
}
};
@@ -123,9 +149,9 @@
public static final Assertion END = new Assertion()
{
@Override
- public String toString()
+ protected void toString(StringBuilder sb)
{
- return "<$/>";
+ sb.append("<$/>");
}
};
@@ -134,27 +160,6 @@
}
}
- public static final class QuantifiedExp extends Exp
- {
- /** . */
- private final Exp exp;
-
- /** . */
- private final Quantifier quantifier;
-
- public QuantifiedExp(Exp exp, Quantifier quantifier)
- {
- this.exp = exp;
- this.quantifier = quantifier;
- }
-
- @Override
- public String toString()
- {
- return "<" + quantifier + ">" + exp +
"</" + quantifier + ">";
- }
- }
-
public static abstract class Atom extends Exp
{
}
@@ -169,9 +174,10 @@
{
}
- public String toString()
+ @Override
+ protected void toString(StringBuilder sb)
{
- return "<./>";
+ sb.append("<./>");
}
}
@@ -183,13 +189,17 @@
public Group(Disjunction disjunction)
{
+ if (disjunction == null)
+ {
+ throw new NullPointerException();
+ }
this.disjunction = disjunction;
}
@Override
- public String toString()
+ protected void toString(StringBuilder sb)
{
- return "<(>" + disjunction + "</)>";
+
sb.append("<(>").append(disjunction).append("</)>");
}
}
@@ -205,9 +215,9 @@
}
@Override
- public String toString()
+ protected void toString(StringBuilder sb)
{
- return "<c>" + value + "</c>";
+ sb.append("<c>").append(value).append("</c>");
}
}
@@ -224,18 +234,14 @@
public Not(CharacterClass negated)
{
+ if (negated == null)
+ {
+ throw new NullPointerException();
+ }
this.negated = negated;
}
@Override
- public String toString()
- {
- StringBuilder sb = new StringBuilder();
- toString(sb);
- return sb.toString();
- }
-
- @Override
protected void toString(StringBuilder sb)
{
sb.append("[^");
@@ -255,25 +261,25 @@
public Or(CharacterClass left, CharacterClass right)
{
+ if (left == null)
+ {
+ throw new NullPointerException();
+ }
+ if (right == null)
+ {
+ throw new NullPointerException();
+ }
this.left = left;
this.right = right;
}
@Override
- public String toString()
- {
- StringBuilder sb = new StringBuilder();
- sb.append("[");
- toString(sb);
- sb.append("]");
- return sb.toString();
- }
-
- @Override
protected void toString(StringBuilder sb)
{
+ sb.append("[");
left.toString(sb);
right.toString(sb);
+ sb.append("]");
}
}
@@ -288,26 +294,26 @@
public And(CharacterClass left, CharacterClass right)
{
+ if (left == null)
+ {
+ throw new NullPointerException();
+ }
+ if (right == null)
+ {
+ throw new NullPointerException();
+ }
this.left = left;
this.right = right;
}
@Override
- public String toString()
- {
- StringBuilder sb = new StringBuilder();
- sb.append("[");
- toString(sb);
- sb.append("]");
- return sb.toString();
- }
-
- @Override
protected void toString(StringBuilder sb)
{
+ sb.append("[");
left.toString(sb);
sb.append("&&");
right.toString(sb);
+ sb.append("]");
}
}
@@ -323,20 +329,12 @@
}
@Override
- public String toString()
+ protected void toString(StringBuilder sb)
{
- StringBuilder sb = new StringBuilder();
sb.append("[");
- toString(sb);
+ sb.append(value);
sb.append("]");
- return sb.toString();
}
-
- @Override
- protected void toString(StringBuilder sb)
- {
- sb.append(value);
- }
}
public static class Range extends CharacterClass
@@ -355,21 +353,13 @@
}
@Override
- public String toString()
- {
- StringBuilder sb = new StringBuilder();
- sb.append("[");
- toString(sb);
- sb.append("]");
- return sb.toString();
- }
-
- @Override
protected void toString(StringBuilder sb)
{
+ sb.append("[");
sb.append(from);
sb.append('-');
sb.append(to);
+ sb.append("]");
}
}
}
Modified:
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/regexp/RegExpParser.java
===================================================================
---
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/regexp/RegExpParser.java 2010-11-26
20:50:07 UTC (rev 5302)
+++
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/regexp/RegExpParser.java 2010-11-26
21:11:05 UTC (rev 5303)
@@ -201,11 +201,7 @@
}
//
- Quantifier quantifier = parseQuantifierSymbol();
- if (quantifier != null)
- {
- exp = new RENode.QuantifiedExp(exp, quantifier);
- }
+ exp.quantifier = parseQuantifierSymbol();
//
return exp;
Modified:
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/regexp/TestParser.java
===================================================================
---
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/regexp/TestParser.java 2010-11-26
20:50:07 UTC (rev 5302)
+++
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/regexp/TestParser.java 2010-11-26
21:11:05 UTC (rev 5303)
@@ -181,17 +181,17 @@
public void testParseBracketExpression()
{
new ParserTester("[a]").assertParseBracketExpression("[a]");
- new ParserTester("[^a]").assertParseBracketExpression("[^a]");
- new
ParserTester("[^a-b]").assertParseBracketExpression("[^a-b]");
+ new
ParserTester("[^a]").assertParseBracketExpression("[^[a]]");
+ new
ParserTester("[^a-b]").assertParseBracketExpression("[^[a-b]]");
new
ParserTester("[a-b]").assertParseBracketExpression("[a-b]");
- new ParserTester("[ab]").assertParseBracketExpression("[ab]");
- new
ParserTester("[a&]").assertParseBracketExpression("[a&]");
- new
ParserTester("[a&&b]").assertParseBracketExpression("[a&&b]");
- new
ParserTester("[a&&[^b]]").assertParseBracketExpression("[a&&[^b]]");
- new
ParserTester("[a[^b]]").assertParseBracketExpression("[a[^b]]");
- new
ParserTester("[a[b]]").assertParseBracketExpression("[ab]");
+ new
ParserTester("[ab]").assertParseBracketExpression("[[a][b]]");
+ new
ParserTester("[a&]").assertParseBracketExpression("[[a][&]]");
+ new
ParserTester("[a&&b]").assertParseBracketExpression("[[a]&&[b]]");
+ new
ParserTester("[a&&[^b]]").assertParseBracketExpression("[[a]&&[^[b]]]");
+ new
ParserTester("[a[^b]]").assertParseBracketExpression("[[a][^[b]]]");
+ new
ParserTester("[a[b]]").assertParseBracketExpression("[[a][b]]");
new ParserTester("[-]").assertParseBracketExpression("[-]");
- new ParserTester("[a-]").assertParseBracketExpression("[a-]");
+ new
ParserTester("[a-]").assertParseBracketExpression("[[a][-]]");
new
ParserTester("[---]").assertParseBracketExpression("[---]");
new
ParserTester("[#--]").assertParseBracketExpression("[#--]");
}