01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.commons.configuration.tree.xpath;
18:
19: import java.util.Locale;
20:
21: import org.apache.commons.configuration.tree.ConfigurationNode;
22: import org.apache.commons.jxpath.ri.QName;
23: import org.apache.commons.jxpath.ri.model.NodePointer;
24: import org.apache.commons.jxpath.ri.model.NodePointerFactory;
25:
26: /**
27: * Implementation of the <code>NodePointerFactory</code> interface for
28: * configuration nodes.
29: *
30: * @since 1.3
31: * @author Oliver Heger
32: * @version $Id: ConfigurationNodePointerFactory.java 439648 2006-09-02 20:42:10Z oheger $
33: */
34: public class ConfigurationNodePointerFactory implements
35: NodePointerFactory {
36: /** Constant for the order of this factory. */
37: public static final int CONFIGURATION_NODE_POINTER_FACTORY_ORDER = 200;
38:
39: /**
40: * Returns the order of this factory between other factories.
41: *
42: * @return this order's factory
43: */
44: public int getOrder() {
45: return CONFIGURATION_NODE_POINTER_FACTORY_ORDER;
46: }
47:
48: /**
49: * Creates a node pointer for the specified bean. If the bean is a
50: * configuration node, a corresponding pointer is returned.
51: *
52: * @param name the name of the node
53: * @param bean the bean
54: * @param locale the locale
55: * @return a pointer for a configuration node if the bean is such a node
56: */
57: public NodePointer createNodePointer(QName name, Object bean,
58: Locale locale) {
59: if (bean instanceof ConfigurationNode) {
60: return new ConfigurationNodePointer(
61: (ConfigurationNode) bean, locale);
62: }
63: return null;
64: }
65:
66: /**
67: * Creates a node pointer for the specified bean. If the bean is a
68: * configuration node, a corresponding pointer is returned.
69: *
70: * @param parent the parent node
71: * @param name the name
72: * @param bean the bean
73: * @return a pointer for a configuration node if the bean is such a node
74: */
75: public NodePointer createNodePointer(NodePointer parent,
76: QName name, Object bean) {
77: if (bean instanceof ConfigurationNode) {
78: return new ConfigurationNodePointer(parent,
79: (ConfigurationNode) bean);
80: }
81: return null;
82: }
83: }
|