KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > beans > factory > xml > BeanDefinitionParser


1 /*
2  * Copyright 2002-2006 the original author or authors.
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 package org.springframework.beans.factory.xml;
18
19 import org.w3c.dom.Element JavaDoc;
20
21 import org.springframework.beans.factory.config.BeanDefinition;
22
23 /**
24  * Interface used by the
25  * {@link org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader} to
26  * handle custom, top-level (directly under <code>&lt;beans&gt;</code>) tags.
27  *
28  * <p>Implementations are free to turn the metadata in the custom tag into as many
29  * {@link BeanDefinition BeanDefinitions} as required.
30  *
31  * <p>The parser locates a {@link BeanDefinitionParser} from the associated
32  * {@link NamespaceHandler} for the namespace in which the custom tag resides.
33  *
34  * @author Rob Harrop
35  * @since 2.0
36  * @see NamespaceHandler
37  * @see org.springframework.beans.factory.xml.BeanDefinitionDecorator
38  * @see AbstractBeanDefinitionParser
39  */

40 public interface BeanDefinitionParser {
41
42     /**
43      * Parse the specified {@link Element} and register the resulting
44      * {@link BeanDefinition BeanDefinition(s)} with the
45      * {@link org.springframework.beans.factory.xml.ParserContext#getRegistry()} BeanDefinitionRegistry}
46      * embedded in the supplied {@link ParserContext}.
47      * <p>Implementations must return the primary {@link BeanDefinition} that results
48      * from the parse if they will ever be used in a nested fashion (for example as
49      * an inner tag in a <code>&lt;property/&gt;</code> tag). Implementations may return
50      * <code>null</code> if they will <strong>not</strong> be used in a nested fashion.
51      * @param element the element that is to be parsed into one or more {@link BeanDefinition BeanDefinitions}
52      * @param parserContext the object encapsulating the current state of the parsing process;
53      * provides access to a {@link org.springframework.beans.factory.support.BeanDefinitionRegistry}
54      * @return the primary {@link BeanDefinition}
55      */

56     BeanDefinition parse(Element JavaDoc element, ParserContext parserContext);
57
58 }
59
Popular Tags