View Javadoc

1   /*
2    * Copyright 2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */ 
16  
17  
18  package org.apache.commons.betwixt.strategy;
19  
20  import org.apache.commons.betwixt.io.read.MappingAction;
21  import org.apache.commons.betwixt.io.read.ReadContext;
22  import org.xml.sax.Attributes;
23  
24  /***
25   * <p>
26   * Pluggable strategy interface used for free mappings.
27   * </p>
28   * <p>
29   * Free mappings (ones where the current mapping ) 
30   * are executed by calling a <code>ActionMappingStrategy</code> 
31   * implementation.
32   * So, using a custom strategy is an easy way to 
33   * customize the mapping. 
34   * </p>
35   * @author <a href='http://jakarta.apache.org/'>Jakarta Commons Team</a>
36   * @version $Revision: 1.2 $
37   */
38  public abstract class ActionMappingStrategy {
39      
40      /***
41       * Default <code>ActionMappingStrategy</code>
42       * used by betwixt
43       */
44      public static final ActionMappingStrategy DEFAULT 
45                          = new DefaultActionMappingStrategy();
46      
47      /***
48       * Gets the mapping action to map the given element.
49       * @param namespace not null
50       * @param name not null
51       * @param attributes <code>Attributes</code>, not null
52       * @param context <code>ReadContext</code>, not null
53       * @return <code>MappingAction</code>, not null
54       * @throws Exception
55       */
56      public abstract MappingAction getMappingAction(    
57                              String namespace,
58                              String name,
59                              Attributes attributes,
60                              ReadContext context)
61          throws Exception;
62  }