Author: rdonkin
Date: Sun Aug 31 09:35:17 2008
New Revision: 690725
URL: http://svn.apache.org/viewvc?rev=690725&view=rev
Log:
Consolidated CommandManager.getInstance() into SieveFactory. JSIEVE-29.
Modified:
james/jsieve/trunk/src/main/java/org/apache/jsieve/BaseSieveContext.java
james/jsieve/trunk/src/main/java/org/apache/jsieve/Command.java
james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveContext.java
james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java
james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveValidationVisitor.java
james/jsieve/trunk/src/main/java/org/apache/jsieve/commands/Require.java
james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java
Modified:
james/jsieve/trunk/src/main/java/org/apache/jsieve/BaseSieveContext.java
URL:
http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/BaseSieveContext.java?rev=690725&r1=690724&r2=690725&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/BaseSieveContext.java
(original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/BaseSieveContext.java
Sun Aug 31 09:35:17 2008
@@ -19,6 +19,8 @@
package org.apache.jsieve;
+import org.apache.jsieve.exception.LookupException;
+
/**
* Bean based implementation of context.
*
@@ -29,11 +31,13 @@
private ConditionManager conditionManager;
private final CommandStateManager commandStateManager;
-
- public BaseSieveContext()
+ private final CommandManager commandManager;
+
+ public BaseSieveContext(final CommandManager commandManager)
{
this.commandStateManager = new CommandStateManager();
this.conditionManager = new ConditionManager();
+ this.commandManager = commandManager;
}
/**
@@ -68,4 +72,7 @@
this.conditionManager = conditionManager;
}
+ public ExecutableCommand getExecutable(String name) throws LookupException
{
+ return commandManager.newInstance(name);
+ }
}
Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/Command.java
URL:
http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/Command.java?rev=690725&r1=690724&r2=690725&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/Command.java (original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/Command.java Sun Aug 31
09:35:17 2008
@@ -20,7 +20,6 @@
package org.apache.jsieve;
import org.apache.commons.logging.Log;
-import org.apache.jsieve.exception.LookupException;
import org.apache.jsieve.exception.SieveException;
import org.apache.jsieve.mail.MailAdapter;
@@ -154,14 +153,9 @@
// recursively from the top level block
// so need to use the coordinate recorded from the parse
context.setCoordinate(coordinate);
- final ExecutableCommand executable = getExecutable();
+ final ExecutableCommand executable = context.getExecutable(getName());
final Object result = executable.execute(
mail, getArguments(), getBlock(), context);
return result;
}
-
- private ExecutableCommand getExecutable() throws LookupException {
- final String name = getName();
- return CommandManager.getInstance().newInstance(name);
- }
}
Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveContext.java
URL:
http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveContext.java?rev=690725&r1=690724&r2=690725&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveContext.java
(original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveContext.java Sun
Aug 31 09:35:17 2008
@@ -19,6 +19,8 @@
package org.apache.jsieve;
+import org.apache.jsieve.exception.LookupException;
+
/**
* Context for sieve operations.
*
@@ -47,4 +49,6 @@
public abstract ConditionManager getConditionManager();
//TODO: simplify interface
public abstract void setConditionManager(final ConditionManager manager);
+ //TODO: consider whether API can be consolidated
+ public abstract ExecutableCommand getExecutable(String name) throws
LookupException;
}
Modified: james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java
URL:
http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java?rev=690725&r1=690724&r2=690725&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java
(original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveFactory.java Sun
Aug 31 09:35:17 2008
@@ -85,7 +85,8 @@
public Node parse(InputStream inputStream) throws ParseException {
try {
final SimpleNode node = new SieveParser(inputStream,
"UTF-8").start();
- SieveValidationVisitor visitor = new SieveValidationVisitor();
+ final CommandManager commandManager = CommandManager.getInstance();
+ SieveValidationVisitor visitor = new
SieveValidationVisitor(commandManager);
node.jjtAccept(visitor, null);
return node;
} catch (ParseException ex) {
@@ -127,7 +128,8 @@
*/
public void evaluate(MailAdapter mail, Node startNode)
throws SieveException {
- SieveContext context = new BaseSieveContext();
+ final CommandManager commandManager = CommandManager.getInstance();
+ SieveContext context = new BaseSieveContext(commandManager);
SieveParserVisitor visitor = new SieveParserVisitorImpl(context);
try {
// Evaluate the Nodes
Modified:
james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveValidationVisitor.java
URL:
http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveValidationVisitor.java?rev=690725&r1=690724&r2=690725&view=diff
==============================================================================
---
james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveValidationVisitor.java
(original)
+++
james/jsieve/trunk/src/main/java/org/apache/jsieve/SieveValidationVisitor.java
Sun Aug 31 09:35:17 2008
@@ -43,9 +43,16 @@
* tree has already been constructed.
*/
public class SieveValidationVisitor implements SieveParserVisitor {
+
+ private final CommandManager commandManager;
private boolean requireAllowed = true;
private boolean isInRequire = false;
+
+ protected SieveValidationVisitor(final CommandManager commandManager) {
+ super();
+ this.commandManager = commandManager;
+ }
public Object visit(SimpleNode node, Object data) throws SieveException {
return visitNode(node, data);
@@ -67,7 +74,7 @@
public Object visit(ASTcommand node, Object data) throws SieveException {
final String name = node.getName();
- CommandManager.getInstance().newInstance(name);
+ commandManager.newInstance(name);
if ("require".equalsIgnoreCase(name)) {
if (requireAllowed) {
isInRequire = true;
@@ -109,7 +116,7 @@
final String quotedName = (String) value;
final String name = quotedName.substring(1,
quotedName.length()-1);
try {
- CommandManager.getInstance().newInstance(name);
+ commandManager.newInstance(name);
} catch (LookupException e) {
//TODO: catching is inefficient, should just check
Test.lookup(name);
Modified:
james/jsieve/trunk/src/main/java/org/apache/jsieve/commands/Require.java
URL:
http://svn.apache.org/viewvc/james/jsieve/trunk/src/main/java/org/apache/jsieve/commands/Require.java?rev=690725&r1=690724&r2=690725&view=diff
==============================================================================
--- james/jsieve/trunk/src/main/java/org/apache/jsieve/commands/Require.java
(original)
+++ james/jsieve/trunk/src/main/java/org/apache/jsieve/commands/Require.java
Sun Aug 31 09:35:17 2008
@@ -24,7 +24,6 @@
import org.apache.jsieve.Arguments;
import org.apache.jsieve.Block;
-import org.apache.jsieve.CommandManager;
import org.apache.jsieve.SieveContext;
import org.apache.jsieve.StringListArgument;
import org.apache.jsieve.TestManager;
@@ -63,7 +62,7 @@
.getArgumentList().get(0)).getList().iterator();
while (stringsIter.hasNext()) {
- validateFeature((String) stringsIter.next(), mail);
+ validateFeature((String) stringsIter.next(), mail, context);
}
return null;
}
@@ -74,13 +73,14 @@
*
* @param name
* @param mail
+ * @param context TODO
* @throws FeatureException
*/
- protected void validateFeature(String name, MailAdapter mail)
+ protected void validateFeature(String name, MailAdapter mail, SieveContext
context)
throws FeatureException {
// Validate as a Command
try {
- validateCommand(name);
+ validateCommand(name, context);
return;
} catch (LookupException e) {
// Not a command
@@ -101,8 +101,8 @@
* @param name
* @throws LookupException
*/
- protected void validateCommand(String name) throws LookupException {
- CommandManager.getInstance().lookup(name);
+ protected void validateCommand(String name, SieveContext context) throws
LookupException {
+ context.getExecutable(name);
}
/**
Modified:
james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java
URL:
http://svn.apache.org/viewvc/james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java?rev=690725&r1=690724&r2=690725&view=diff
==============================================================================
---
james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java
(original)
+++
james/jsieve/trunk/src/test/java/org/apache/jsieve/SieveParserVisitorImplQuoteTest.java
Sun Aug 31 09:35:17 2008
@@ -34,7 +34,7 @@
protected void setUp() throws Exception {
super.setUp();
- visitor = new SieveParserVisitorImpl(new BaseSieveContext());
+ visitor = new SieveParserVisitorImpl(new
BaseSieveContext(CommandManager.getInstance()));
data = new ArrayList();
node = new ASTstring(100);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]