View Javadoc

1   /****************************************************************
2    * Licensed to the Apache Software Foundation (ASF) under one   *
3    * or more contributor license agreements.  See the NOTICE file *
4    * distributed with this work for additional information        *
5    * regarding copyright ownership.  The ASF licenses this file   *
6    * to you under the Apache License, Version 2.0 (the            *
7    * "License"); you may not use this file except in compliance   *
8    * with the License.  You may obtain a copy of the License at   *
9    *                                                              *
10   *   http://www.apache.org/licenses/LICENSE-2.0                 *
11   *                                                              *
12   * Unless required by applicable law or agreed to in writing,   *
13   * software distributed under the License is distributed on an  *
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
15   * KIND, either express or implied.  See the License for the    *
16   * specific language governing permissions and limitations      *
17   * under the License.                                           *
18   ****************************************************************/
19  
20  package org.apache.jsieve;
21  
22  import org.apache.commons.logging.Log;
23  import org.apache.jsieve.comparators.Comparator;
24  import org.apache.jsieve.exception.LookupException;
25  import org.apache.jsieve.tests.ExecutableTest;
26  
27  /**
28   * Context for sieve operations.
29   * 
30   */
31  public abstract class SieveContext {
32  
33      /**
34       * Gets the script position of the current operation.
35       * 
36       * @return <code>ScriptCoordinate</code>, not null
37       */
38      public abstract ScriptCoordinate getCoordinate();
39  
40      /**
41       * Sets the script position of the current operation.
42       * 
43       * @param coordinate
44       *            <code>ScriptCoordinate</code>, not null
45       */
46      public abstract void setCoordinate(ScriptCoordinate coordinate);
47  
48      // TODO: simplify interface
49      public abstract CommandStateManager getCommandStateManager();
50  
51      // TODO: simplify interface
52      public abstract ConditionManager getConditionManager();
53  
54      // TODO: simplify interface
55      public abstract void setConditionManager(final ConditionManager manager);
56  
57      // TODO: consider whether API can be consolidated
58      public abstract ExecutableCommand getCommand(String name)
59              throws LookupException;
60  
61      // TODO: consider whether API can be consolidated
62      public abstract Comparator getComparator(String name)
63              throws LookupException;
64  
65      // TODO: consider whether API can be consolidated
66      public abstract ExecutableTest getTest(String name) throws LookupException;
67  
68      public abstract Log getLog();
69  }