1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.jxpath.ri.model.beans;
19
20 import java.util.Locale;
21
22 import org.apache.commons.jxpath.JXPathBeanInfo;
23 import org.apache.commons.jxpath.JXPathIntrospector;
24 import org.apache.commons.jxpath.ri.QName;
25 import org.apache.commons.jxpath.ri.model.NodePointer;
26 import org.apache.commons.jxpath.ri.model.NodePointerFactory;
27
28
29
30
31 public class BeanPointerFactory implements NodePointerFactory {
32
33
34 public static final int BEAN_POINTER_FACTORY_ORDER = 900;
35
36
37
38
39 public BeanPointerFactory() {
40
41 }
42
43 @Override
44 public NodePointer createNodePointer(final NodePointer parent, final QName qName, final Object bean) {
45 if (bean == null) {
46 return new NullPointer(parent, qName);
47 }
48 final JXPathBeanInfo bi = JXPathIntrospector.getBeanInfo(bean.getClass());
49 return new BeanPointer(parent, qName, bean, bi);
50 }
51
52 @Override
53 public NodePointer createNodePointer(final QName qName, final Object bean, final Locale locale) {
54 final JXPathBeanInfo bi = JXPathIntrospector.getBeanInfo(bean.getClass());
55 return new BeanPointer(qName, bean, bi, locale);
56 }
57
58 @Override
59 public int getOrder() {
60 return BEAN_POINTER_FACTORY_ORDER;
61 }
62 }