01: /* $Id: ObjectCreationFactory.java 471661 2006-11-06 08:09:25Z skitching $
02: *
03: * Licensed to the Apache Software Foundation (ASF) under one or more
04: * contributor license agreements. See the NOTICE file distributed with
05: * this work for additional information regarding copyright ownership.
06: * The ASF licenses this file to You under the Apache License, Version 2.0
07: * (the "License"); you may not use this file except in compliance with
08: * the License. You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing, software
13: * distributed under the License is distributed on an "AS IS" BASIS,
14: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15: * See the License for the specific language governing permissions and
16: * limitations under the License.
17: */
18:
19: package org.apache.commons.digester;
20:
21: import org.xml.sax.Attributes;
22:
23: /**
24: * <p> Interface for use with {@link FactoryCreateRule}.
25: * The rule calls {@link #createObject} to create an object
26: * to be pushed onto the <code>Digester</code> stack
27: * whenever it is matched.</p>
28: *
29: * <p> {@link AbstractObjectCreationFactory} is an abstract
30: * implementation suitable for creating anonymous
31: * <code>ObjectCreationFactory</code> implementations.
32: */
33: public interface ObjectCreationFactory {
34:
35: /**
36: * <p>Factory method called by {@link FactoryCreateRule} to supply an
37: * object based on the element's attributes.
38: *
39: * @param attributes the element's attributes
40: *
41: * @throws Exception any exception thrown will be propagated upwards
42: */
43: public Object createObject(Attributes attributes) throws Exception;
44:
45: /**
46: * <p>Returns the {@link Digester} that was set by the
47: * {@link FactoryCreateRule} upon initialization.
48: */
49: public Digester getDigester();
50:
51: /**
52: * <p>Set the {@link Digester} to allow the implementation to do logging,
53: * classloading based on the digester's classloader, etc.
54: *
55: * @param digester parent Digester object
56: */
57: public void setDigester(Digester digester);
58:
59: }
|