This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-jxpath.git
commit fdd6221f5268f868f3986f78fbf32ad0c6238aed Author: Gary D. Gregory <[email protected]> AuthorDate: Sun Mar 16 20:26:07 2025 -0400 Use generics internally --- .../jxpath/ri/JXPathContextReferenceImpl.java | 24 ++++++++++++---------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java b/src/main/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java index bfb9f90..6d16d60 100644 --- a/src/main/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java +++ b/src/main/java/org/apache/commons/jxpath/ri/JXPathContextReferenceImpl.java @@ -70,25 +70,27 @@ public class JXPathContextReferenceImpl extends JXPathContext { private static NodePointerFactory[] nodeFactoryArray = null; // The frequency of the cache cleanup private static final int CLEANUP_THRESHOLD = 500; - private static final Vector nodeFactories = new Vector(); + private static final Vector<NodePointerFactory> nodeFactories = new Vector<>(); static { nodeFactories.add(new CollectionPointerFactory()); nodeFactories.add(new BeanPointerFactory()); nodeFactories.add(new DynamicPointerFactory()); nodeFactories.add(new VariablePointerFactory()); // DOM factory is only registered if DOM support is on the classpath - final Object domFactory = allocateConditionally("org.apache.commons.jxpath.ri.model.dom.DOMPointerFactory", "org.w3c.dom.Node"); + final NodePointerFactory domFactory = (NodePointerFactory) allocateConditionally("org.apache.commons.jxpath.ri.model.dom.DOMPointerFactory", + "org.w3c.dom.Node"); if (domFactory != null) { nodeFactories.add(domFactory); } // JDOM factory is only registered if JDOM is on the classpath - final Object jdomFactory = allocateConditionally("org.apache.commons.jxpath.ri.model.jdom.JDOMPointerFactory", "org.jdom.Document"); + final NodePointerFactory jdomFactory = (NodePointerFactory) allocateConditionally("org.apache.commons.jxpath.ri.model.jdom.JDOMPointerFactory", + "org.jdom.Document"); if (jdomFactory != null) { nodeFactories.add(jdomFactory); } // DynaBean factory is only registered if BeanUtils are on the classpath - final Object dynaBeanFactory = allocateConditionally("org.apache.commons.jxpath.ri.model.dynabeans." + "DynaBeanPointerFactory", - "org.apache.commons.beanutils.DynaBean"); + final NodePointerFactory dynaBeanFactory = (NodePointerFactory) allocateConditionally( + "org.apache.commons.jxpath.ri.model.dynabeans." + "DynaBeanPointerFactory", "org.apache.commons.beanutils.DynaBean"); if (dynaBeanFactory != null) { nodeFactories.add(dynaBeanFactory); } @@ -123,7 +125,7 @@ public class JXPathContextReferenceImpl extends JXPathContext { } catch (final ClassNotFoundException ex) { return null; } - final Class cls = ClassLoaderUtil.getClass(className, true); + final Class<NodePointerFactory> cls = ClassLoaderUtil.getClass(className, true); return cls.getConstructor().newInstance(); } catch (final Exception ex) { throw new JXPathException("Cannot allocate " + className, ex); @@ -135,7 +137,7 @@ public class JXPathContextReferenceImpl extends JXPathContext { */ private static synchronized void createNodeFactoryArray() { if (nodeFactoryArray == null) { - nodeFactoryArray = (NodePointerFactory[]) nodeFactories.toArray(new NodePointerFactory[nodeFactories.size()]); + nodeFactoryArray = nodeFactories.toArray(new NodePointerFactory[nodeFactories.size()]); Arrays.sort(nodeFactoryArray, (a, b) -> { final int orderA = a.getOrder(); final int orderB = b.getOrder(); @@ -672,18 +674,18 @@ public class JXPathContextReferenceImpl extends JXPathContext { */ public void removeAll(final String xpath, final Expression expr) { try { - final ArrayList list = new ArrayList(); - Iterator it = expr.iteratePointers(getEvalContext()); + final ArrayList<NodePointer> list = new ArrayList<>(); + Iterator<NodePointer> it = expr.iteratePointers(getEvalContext()); while (it.hasNext()) { list.add(it.next()); } Collections.sort(list, ReverseComparator.INSTANCE); it = list.iterator(); if (it.hasNext()) { - final NodePointer pointer = (NodePointer) it.next(); + final NodePointer pointer = it.next(); pointer.remove(); while (it.hasNext()) { - removePath(((NodePointer) it.next()).asPath()); + removePath(it.next().asPath()); } } } catch (final Throwable ex) {
