View Javadoc

1   /*
2    * Copyright 2001-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  package org.apache.commons.betwixt.io.read;
17  
18  /***  
19    * Creator of beans that may delegate responsibility to members down the chain.
20    *
21    * @author Robert Burrell Donkin
22    * @since 0.5
23    */
24  public interface ChainedBeanCreator {
25      
26      /***
27        * Creates a bean either directly or by delegating the responsibility to the other
28        * members of the chain.
29        *
30        * @param elementMapping  specifies the mapping between the type and element.
31        * <strong>Note</strong> it is recommended that classes do not store a permenant
32        * reference to this object since these objects may later be reused.
33        * Not null
34        * @param context the context in which this converision happens, not null
35        * @param chain not null
36        * @return the Object created, possibly null
37        */
38      public Object create(
39                              ElementMapping elementMapping, 
40                              ReadContext context, 
41                              BeanCreationChain chain);
42      
43  }