Author: bago
Date: Mon Apr 16 15:06:24 2007
New Revision: 529418

URL: http://svn.apache.org/viewvc?view=rev&rev=529418
Log:
Refactored the Policy support from Nested 
(Policy/NestedPolicy/AbstractNestedPolicy) to Policy+PolicyPostFilter and 
linear iterative pattern (simpler to be approached via events).

Added:
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/PolicyPostFilter.java
Removed:
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/AbstractNestedPolicy.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NestedPolicy.java
Modified:
    james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/ChainPolicy.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/InitialChecksPolicy.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NeutralIfNotMatchPolicy.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NoSPFRecordFoundPolicy.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/ParseRecordPolicy.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/SPFRetriever.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/BestGuessPolicy.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/FallbackPolicy.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/OverridePolicy.java
    
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/TrustedForwarderPolicy.java

Modified: james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java (original)
+++ james/jspf/trunk/src/main/java/org/apache/james/jspf/SPF.java Mon Apr 16 
15:06:24 2007
@@ -198,6 +198,7 @@
     public Policy getPolicy() {
 
         ArrayList policies = new ArrayList();
+        ArrayList policyFilters = new ArrayList();
         
         if (override != null) {
             policies.add(override);
@@ -210,29 +211,29 @@
         }
         
         if (useBestGuess) {
-            policies.add(new BestGuessPolicy());
+            policyFilters.add(new BestGuessPolicy());
         }
         
-        policies.add(new ParseRecordPolicy(parser));
+        policyFilters.add(new ParseRecordPolicy(parser));
         
         if (fallBack != null) {
-            policies.add(fallBack);
+            policyFilters.add(fallBack);
         }
 
-        policies.add(new NoSPFRecordFoundPolicy());
+        policyFilters.add(new NoSPFRecordFoundPolicy());
         
         // trustedForwarder support is enabled
         if (useTrustedForwarder) {
-            policies.add(new TrustedForwarderPolicy(log));
+            policyFilters.add(new TrustedForwarderPolicy(log));
         }
 
-        policies.add(new NeutralIfNotMatchPolicy());
+        policyFilters.add(new NeutralIfNotMatchPolicy());
 
-        policies.add(new DefaultExplanationPolicy(log, defaultExplanation, 
macroExpand));
+        policyFilters.add(new DefaultExplanationPolicy(log, 
defaultExplanation, macroExpand));
         
         policies.add(new InitialChecksPolicy());
         
-        return new ChainPolicy(policies);
+        return new ChainPolicy(policies, policyFilters);
     }
     
     /**

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/ChainPolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/ChainPolicy.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/ChainPolicy.java 
(original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/ChainPolicy.java 
Mon Apr 16 15:06:24 2007
@@ -34,22 +34,16 @@
  */
 public class ChainPolicy implements Policy {
     
-    private Policy policy;
+    private List policies;
+    private List policyFilters;
 
     /**
      * Create a new ChainPolicy
      * @param policies an array of Polcy and NestedPolicy objects
      */
-    public ChainPolicy(List policies) {
-        policy = null;
-        Iterator i = policies.iterator();
-        while (i.hasNext()) {
-            Policy newP = (Policy) i.next();
-            if (newP instanceof NestedPolicy) {
-                ((NestedPolicy) newP).setChildPolicy(policy);
-            }
-            policy = newP;
-        }
+    public ChainPolicy(List policies, List policyFilters) {
+        this.policies = policies;
+        this.policyFilters = policyFilters;
     }
     
     /**
@@ -58,7 +52,18 @@
     public SPF1Record getSPFRecord(String currentDomain)
             throws PermErrorException, TempErrorException, NoneException,
             NeutralException {
-        return policy.getSPFRecord(currentDomain);
+        SPF1Record res = null;
+        Iterator i = policies.iterator();
+        while (i.hasNext() && res == null) {
+            Policy newP = (Policy) i.next();
+            res = newP.getSPFRecord(currentDomain);
+        }
+        Iterator i2 = policyFilters.iterator();
+        while (i2.hasNext()) {
+            PolicyPostFilter newP = (PolicyPostFilter) i2.next();
+            res = newP.getSPFRecord(currentDomain, res);
+        }
+        return res;
     }
 
 }

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/InitialChecksPolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/InitialChecksPolicy.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/InitialChecksPolicy.java
 (original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/InitialChecksPolicy.java
 Mon Apr 16 15:06:24 2007
@@ -30,12 +30,12 @@
  * This is an override filter to be executed as the first 
  * so it should be added as the last filter.
  */
-public final class InitialChecksPolicy extends AbstractNestedPolicy {
+public final class InitialChecksPolicy implements Policy {
     
     /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#getSPFRecordOverride(java.lang.String)
+     * @see 
org.apache.james.jspf.policies.Policy#getSPFRecord(java.lang.String)
      */
-    protected SPF1Record getSPFRecordOverride(String currentDomain) throws 
PermErrorException, TempErrorException, NoneException, NeutralException {
+    public SPF1Record getSPFRecord(String currentDomain) throws 
PermErrorException, TempErrorException, NoneException, NeutralException {
         // Initial checks (spec 4.3)
         if (currentDomain != null) {
             String[] labels = currentDomain.split("\\.");

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NeutralIfNotMatchPolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NeutralIfNotMatchPolicy.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NeutralIfNotMatchPolicy.java
 (original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NeutralIfNotMatchPolicy.java
 Mon Apr 16 15:06:24 2007
@@ -31,12 +31,12 @@
 /**
  * Sets the result to NEUTRAL if no directive is found 
  */
-public class NeutralIfNotMatchPolicy extends AbstractNestedPolicy {
+public class NeutralIfNotMatchPolicy implements PolicyPostFilter {
     
     /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#getSPFRecordPostFilter(java.lang.String,
 org.apache.james.jspf.core.SPF1Record)
+     * @see 
org.apache.james.jspf.policies.PolicyPostFilter#getSPFRecord(java.lang.String, 
org.apache.james.jspf.core.SPF1Record)
      */
-    protected SPF1Record getSPFRecordPostFilter(String currentDomain, 
SPF1Record spfRecord) throws PermErrorException, TempErrorException, 
NoneException, NeutralException {
+    public SPF1Record getSPFRecord(String currentDomain, SPF1Record spfRecord) 
throws PermErrorException, TempErrorException, NoneException, NeutralException {
         if (spfRecord == null) return null;
         // Set the result to NEUTRAL if at least a directive is present and it 
didn't match
         // Maybe we should simply append a "?all" at the end, as modifier

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NoSPFRecordFoundPolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NoSPFRecordFoundPolicy.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NoSPFRecordFoundPolicy.java
 (original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/NoSPFRecordFoundPolicy.java
 Mon Apr 16 15:06:24 2007
@@ -28,11 +28,11 @@
 /**
  * Throws a NoneException if no record has been found
  */
-public class NoSPFRecordFoundPolicy extends AbstractNestedPolicy {
+public class NoSPFRecordFoundPolicy implements PolicyPostFilter {
     /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#getSPFRecordPostFilter(java.lang.String,
 org.apache.james.jspf.core.SPF1Record)
+     * @see 
org.apache.james.jspf.policies.PolicyPostFilter#getSPFRecord(java.lang.String, 
org.apache.james.jspf.core.SPF1Record)
      */
-    protected SPF1Record getSPFRecordPostFilter(String currentDomain, 
SPF1Record res) throws PermErrorException, TempErrorException, NoneException, 
NeutralException {
+    public SPF1Record getSPFRecord(String currentDomain, SPF1Record res) 
throws PermErrorException, TempErrorException, NoneException, NeutralException {
         if (res == null) {
             throw new NoneException("No SPF record found for host: " + 
currentDomain);
         } else {

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/ParseRecordPolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/ParseRecordPolicy.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/ParseRecordPolicy.java
 (original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/ParseRecordPolicy.java
 Mon Apr 16 15:06:24 2007
@@ -28,7 +28,7 @@
 /**
  * Parse the record
  */
-public class ParseRecordPolicy extends AbstractNestedPolicy {
+public class ParseRecordPolicy implements PolicyPostFilter {
 
     private SPFRecordParser parser;
 
@@ -37,9 +37,9 @@
     }
 
     /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#getSPFRecordPostFilter(java.lang.String,
 org.apache.james.jspf.core.SPF1Record)
+     * @see 
org.apache.james.jspf.policies.PolicyPostFilter#getSPFRecord(java.lang.String, 
org.apache.james.jspf.core.SPF1Record)
      */
-    protected SPF1Record getSPFRecordPostFilter(String currentDomain, 
SPF1Record spfRecord) throws PermErrorException, NoneException, 
NeutralException {
+    public SPF1Record getSPFRecord(String currentDomain, SPF1Record spfRecord) 
throws PermErrorException, NoneException, NeutralException {
         if (spfRecord == null) return null;
         // parse the record
         return parser.parse(spfRecord.getRecord());

Added: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/PolicyPostFilter.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/PolicyPostFilter.java?view=auto&rev=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/PolicyPostFilter.java
 (added)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/PolicyPostFilter.java
 Mon Apr 16 15:06:24 2007
@@ -0,0 +1,49 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.jspf.policies;
+
+
+import org.apache.james.jspf.core.SPF1Record;
+import org.apache.james.jspf.exceptions.NeutralException;
+import org.apache.james.jspf.exceptions.NoneException;
+import org.apache.james.jspf.exceptions.PermErrorException;
+import org.apache.james.jspf.exceptions.TempErrorException;
+
+/**
+ * Return an spf record from a given domain. 
+ */
+public interface PolicyPostFilter {
+
+    /**
+     * Filter or replace a record for the given domain
+     * 
+     * @param currentDomain the domain to retrieve the SPFRecord for
+     * @params record the previous record
+     * @return the SPFRecord found
+     * @throws PermErrorException exception
+     * @throws TempErrorException exception
+     * @throws NoneException exception
+     * @throws NeutralException exception
+     */
+    public SPF1Record getSPFRecord(String currentDomain, SPF1Record record)
+            throws PermErrorException, TempErrorException, NoneException,
+            NeutralException;
+
+}
\ No newline at end of file

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/SPFRetriever.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/SPFRetriever.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/SPFRetriever.java 
(original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/SPFRetriever.java 
Mon Apr 16 15:06:24 2007
@@ -14,7 +14,7 @@
 /**
  * Get the raw dns txt or spf entry which contains a spf entry
  */
-public class SPFRetriever extends AbstractNestedPolicy {
+public class SPFRetriever implements Policy {
     /**
      * dns service
      */
@@ -32,19 +32,9 @@
 
 
     /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#setChildPolicy(org.apache.james.jspf.policies.Policy)
+     * @see 
org.apache.james.jspf.policies.Policy#getSPFRecord(java.lang.String)
      */
-    public void setChildPolicy(Policy children) {
-        if (children != null) {
-            throw new IllegalStateException("Cannot set a child policy for 
SPFRetriever");
-        }
-    }
-
-
-    /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#getSPFRecordOverride(java.lang.String)
-     */
-    protected SPF1Record getSPFRecordOverride(String currentDomain) throws 
PermErrorException, TempErrorException, NoneException, NeutralException {
+    public SPF1Record getSPFRecord(String currentDomain) throws 
PermErrorException, TempErrorException, NoneException, NeutralException {
         // retrieve the SPFRecord
         String spfDnsEntry = retrieveSpfRecord(currentDomain);
         if (spfDnsEntry != null) {

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/BestGuessPolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/BestGuessPolicy.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/BestGuessPolicy.java
 (original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/BestGuessPolicy.java
 Mon Apr 16 15:06:24 2007
@@ -25,19 +25,21 @@
 import org.apache.james.jspf.exceptions.NoneException;
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.exceptions.TempErrorException;
-import org.apache.james.jspf.policies.AbstractNestedPolicy;
+import org.apache.james.jspf.policies.PolicyPostFilter;
 
-public class BestGuessPolicy extends AbstractNestedPolicy {
+public class BestGuessPolicy implements PolicyPostFilter {
 
     /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#getSPFRecordPostFilter(java.lang.String,
 org.apache.james.jspf.core.SPF1Record)
+     * @see 
org.apache.james.jspf.policies.PolicyPostFilter#getSPFRecord(java.lang.String, 
org.apache.james.jspf.core.SPF1Record)
      */
-    protected SPF1Record getSPFRecordPostFilter(String currentDomain, 
SPF1Record res) throws PermErrorException, TempErrorException, NoneException, 
NeutralException {
-        if (res == null) {
+    public SPF1Record getSPFRecord(String currentDomain, SPF1Record record)
+            throws PermErrorException, TempErrorException, NoneException,
+            NeutralException {
+        if (record == null) {
             // We should use bestguess
             return new SPF1Record(SPF1Utils.BEST_GUESS_RECORD);
         } else {
-            return res;
+            return record;
         }
     }
 }

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
 (original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/DefaultExplanationPolicy.java
 Mon Apr 16 15:06:24 2007
@@ -30,12 +30,12 @@
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.exceptions.TempErrorException;
 import org.apache.james.jspf.macro.MacroExpand;
-import org.apache.james.jspf.policies.AbstractNestedPolicy;
+import org.apache.james.jspf.policies.PolicyPostFilter;
 
 /**
  * Policy to add a default explanation
  */
-public final class DefaultExplanationPolicy extends AbstractNestedPolicy {
+public final class DefaultExplanationPolicy implements PolicyPostFilter {
     /**
      * log
      */
@@ -58,9 +58,9 @@
     }
 
     /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#getSPFRecordPostFilter(java.lang.String,
 org.apache.james.jspf.core.SPF1Record)
+     * @see 
org.apache.james.jspf.policies.PolicyPostFilter#getSPFRecord(java.lang.String, 
org.apache.james.jspf.core.SPF1Record)
      */
-    protected SPF1Record getSPFRecordPostFilter(String currentDomain, 
SPF1Record spfRecord) throws PermErrorException, TempErrorException, 
NoneException, NeutralException {
+    public SPF1Record getSPFRecord(String currentDomain, SPF1Record spfRecord) 
throws PermErrorException, TempErrorException, NoneException, NeutralException {
         if (spfRecord == null) return null;
         // Default explanation policy.
         spfRecord.getModifiers().add(new SPFChecker() {

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/FallbackPolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/FallbackPolicy.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/FallbackPolicy.java
 (original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/FallbackPolicy.java
 Mon Apr 16 15:06:24 2007
@@ -19,11 +19,6 @@
 
 package org.apache.james.jspf.policies.local;
 
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
 import org.apache.james.jspf.core.Logger;
 import org.apache.james.jspf.core.SPF1Record;
 import org.apache.james.jspf.core.SPFRecordParser;
@@ -32,12 +27,17 @@
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.exceptions.SPFResultException;
 import org.apache.james.jspf.exceptions.TempErrorException;
-import org.apache.james.jspf.policies.AbstractNestedPolicy;
+import org.apache.james.jspf.policies.PolicyPostFilter;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
 
 /**
  * Class to support Fallback feature
  */
-public class FallbackPolicy extends AbstractNestedPolicy {
+public class FallbackPolicy implements PolicyPostFilter {
 
     private Map entryMap;
 
@@ -113,9 +113,9 @@
     }
 
     /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#getSPFRecordPostFilter(java.lang.String,
 org.apache.james.jspf.core.SPF1Record)
+     * @see 
org.apache.james.jspf.policies.PolicyPostFilter#getSPFRecord(java.lang.String, 
org.apache.james.jspf.core.SPF1Record)
      */
-    protected SPF1Record getSPFRecordPostFilter(String currentDomain, 
SPF1Record res) throws PermErrorException, TempErrorException, NoneException, 
NeutralException {
+    public SPF1Record getSPFRecord(String currentDomain, SPF1Record res) 
throws PermErrorException, TempErrorException, NoneException, NeutralException {
         if (res == null) {
             return getMySPFRecord(currentDomain);
         } else {

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/OverridePolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/OverridePolicy.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/OverridePolicy.java
 (original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/OverridePolicy.java
 Mon Apr 16 15:06:24 2007
@@ -26,8 +26,9 @@
 import org.apache.james.jspf.exceptions.NoneException;
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.exceptions.TempErrorException;
+import org.apache.james.jspf.policies.Policy;
 
-public class OverridePolicy extends FallbackPolicy {
+public class OverridePolicy extends FallbackPolicy implements Policy {
 
     public OverridePolicy(Logger log, SPFRecordParser parser) {
         super(log, parser);
@@ -35,17 +36,12 @@
     
 
     /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#getSPFRecordPostFilter(java.lang.String,
 org.apache.james.jspf.core.SPF1Record)
+     * @see 
org.apache.james.jspf.policies.Policy#getSPFRecord(java.lang.String)
      */
-    protected SPF1Record getSPFRecordPostFilter(String currentDomain, 
SPF1Record res) throws PermErrorException, TempErrorException, NoneException, 
NeutralException {
-        return res;
-    }
-
-    /**
-     * @see 
org.apache.james.jspf.policies.AbstractNestedPolicy#getSPFRecordOverride(java.lang.String)
-     */
-    public SPF1Record getSPFRecordOverride(String host) {
-        return getMySPFRecord(host);
+    public SPF1Record getSPFRecord(String currentDomain)
+            throws PermErrorException, TempErrorException, NoneException,
+            NeutralException {
+        return getMySPFRecord(currentDomain);
     }
 
 }

Modified: 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/TrustedForwarderPolicy.java
URL: 
http://svn.apache.org/viewvc/james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/TrustedForwarderPolicy.java?view=diff&rev=529418&r1=529417&r2=529418
==============================================================================
--- 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/TrustedForwarderPolicy.java
 (original)
+++ 
james/jspf/trunk/src/main/java/org/apache/james/jspf/policies/local/TrustedForwarderPolicy.java
 Mon Apr 16 15:06:24 2007
@@ -26,10 +26,10 @@
 import org.apache.james.jspf.exceptions.NoneException;
 import org.apache.james.jspf.exceptions.PermErrorException;
 import org.apache.james.jspf.exceptions.TempErrorException;
-import org.apache.james.jspf.policies.AbstractNestedPolicy;
+import org.apache.james.jspf.policies.PolicyPostFilter;
 import org.apache.james.jspf.terms.IncludeMechanism;
 
-public class TrustedForwarderPolicy extends AbstractNestedPolicy {
+public class TrustedForwarderPolicy implements PolicyPostFilter {
 
     /**
      * The hostname to include
@@ -46,7 +46,10 @@
         this.log = log;
     }
 
-    protected SPF1Record getSPFRecordPostFilter(String currentDomain, 
SPF1Record spfRecord) throws PermErrorException, TempErrorException, 
NoneException, NeutralException {
+    /**
+     * @see 
org.apache.james.jspf.policies.PolicyPostFilter#getSPFRecord(java.lang.String, 
org.apache.james.jspf.core.SPF1Record)
+     */
+    public SPF1Record getSPFRecord(String currentDomain, SPF1Record spfRecord) 
throws PermErrorException, TempErrorException, NoneException, NeutralException {
         if (spfRecord == null) return null;
         String mechanism = ((Directive) 
spfRecord.getDirectives().get(spfRecord.getDirectives().size())).toString();
         if (mechanism.equals("-all") || mechanism.equals("?all")) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to