Author: mbenson
Date: Sun Feb 3 12:19:24 2008
New Revision: 618074
URL: http://svn.apache.org/viewvc?rev=618074&view=rev
Log:
checkstyle
Modified:
commons/proper/jxpath/trunk/checkstyle.xml
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/FunctionLibrary.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathBasicBeanInfo.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathBeanInfo.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathInvalidAccessException.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/DescendantContext.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/InitialContext.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/RootContext.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationAnd.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationCompare.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationGreaterThanOrEqual.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationNotEqual.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationRelationalExpression.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationSubtract.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/NodeTypeTest.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/TreeCompiler.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/VariablePointerFactory.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/CollectionPointerFactory.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/NullPropertyPointer.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dom/DOMAttributeIterator.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicAttributeIterator.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicPropertyPointer.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/servlet/ServletContextHandler.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/ReverseComparator.java
commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/ValueUtils.java
Modified: commons/proper/jxpath/trunk/checkstyle.xml
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/checkstyle.xml?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/checkstyle.xml (original)
+++ commons/proper/jxpath/trunk/checkstyle.xml Sun Feb 3 12:19:24 2008
@@ -153,8 +153,9 @@
-
-
+
+
+
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/FunctionLibrary.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/FunctionLibrary.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/FunctionLibrary.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/FunctionLibrary.java Sun Feb 3 12:19:24 2008
@@ -37,6 +37,7 @@
/**
* Add functions to the library
+ * @param functions to add
*/
public void addFunctions(Functions functions) {
allFunctions.add(functions);
@@ -45,6 +46,7 @@
/**
* Remove functions from the library.
+ * @param functions to remove
*/
public void removeFunctions(Functions functions) {
allFunctions.remove(functions);
@@ -54,6 +56,7 @@
/**
* Returns a set containing all namespaces used by the aggregated
* Functions.
+ * @return Set
*/
public Set getUsedNamespaces() {
if (byNamespace == null) {
@@ -65,12 +68,13 @@
/**
* Returns a Function, if any, for the specified namespace,
* name and parameter types.
+ * @param namespace function namespace
+ * @param name function name
+ * @param parameters parameters
+ * @return Function found
*/
- public Function getFunction(
- String namespace,
- String name,
- Object[] parameters)
- {
+ public Function getFunction(String namespace, String name,
+ Object[] parameters) {
if (byNamespace == null) {
prepareCache();
}
@@ -98,6 +102,9 @@
return null;
}
+ /**
+ * Prepare the cache.
+ */
private void prepareCache() {
byNamespace = new HashMap();
int count = allFunctions.size();
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathBasicBeanInfo.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathBasicBeanInfo.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathBasicBeanInfo.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathBasicBeanInfo.java Sun Feb 3 12:19:24 2008
@@ -139,8 +139,9 @@
}
/**
- * For a dynamic class, returns the corresponding DynamicPropertyHandler
+ * For a dynamic class, returns the corresponding DynamicPropertyHandler
* class.
+ * @return Class
*/
public Class getDynamicPropertyHandlerClass() {
return dynamicPropertyHandlerClass;
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathBeanInfo.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathBeanInfo.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathBeanInfo.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathBeanInfo.java Sun Feb 3 12:19:24 2008
@@ -39,6 +39,7 @@
* Returns true if objects of this class are treated as atomic
* objects which have no properties of their own.
* For example, java.lang.String and java.lang.Number are atomic.
+ * @return boolean
*/
boolean isAtomic();
@@ -48,18 +49,22 @@
* should return null and getDynamicPropertyHandlerClass should return
* a valid class name. An object cannot have both static and dynamic
* properties at the same time.
+ * @return boolean
*/
boolean isDynamic();
/**
* Returns a list of property descriptors for the beans described by this
* bean info object. Returns null for atomic beans.
+ * @return PropertyDescriptor[]
*/
PropertyDescriptor[] getPropertyDescriptors();
/**
* Returns a PropertyDescriptor for the specified name or null if there
* is no such property.
+ * @param propertyName property name
+ * @return PropertyDescriptor
*/
PropertyDescriptor getPropertyDescriptor(String propertyName);
@@ -67,6 +72,7 @@
* For dynamic objects, returns the class implementing
* the DynamicPropertyHandler interface. That class can
* be used to access dynamic properties.
+ * @return Class
*/
Class getDynamicPropertyHandlerClass();
}
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathInvalidAccessException.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathInvalidAccessException.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathInvalidAccessException.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/JXPathInvalidAccessException.java Sun Feb 3 12:19:24 2008
@@ -27,10 +27,19 @@
private static final long serialVersionUID = -8875537628056117241L;
+ /**
+ * Create a new JXPathInvalidAccessException.
+ * @param message exception message
+ */
public JXPathInvalidAccessException(String message) {
super(message);
}
+ /**
+ * Create a new JXPathInvalidAccessException.
+ * @param message exception message
+ * @param ex precipitating exception
+ */
public JXPathInvalidAccessException(String message, Throwable ex) {
super(message, ex);
}
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/DescendantContext.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/DescendantContext.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/DescendantContext.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/DescendantContext.java Sun Feb 3 12:19:24 2008
@@ -42,20 +42,29 @@
private static final NodeTest ELEMENT_NODE_TEST =
new NodeTypeTest(Compiler.NODE_TYPE_NODE);
- public DescendantContext(
- EvalContext parentContext,
- boolean includeSelf,
- NodeTest nodeTest)
- {
+ /**
+ * Create a new DescendantContext.
+ * @param parentContext parent context
+ * @param includeSelf whether to include this node
+ * @param nodeTest test
+ */
+ public DescendantContext(EvalContext parentContext, boolean includeSelf,
+ NodeTest nodeTest) {
super(parentContext);
this.includeSelf = includeSelf;
this.nodeTest = nodeTest;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isChildOrderingRequired() {
return true;
}
+ /**
+ * {@inheritDoc}
+ */
public NodePointer getCurrentNodePointer() {
if (position == 0) {
if (!setPosition(1)) {
@@ -65,11 +74,17 @@
return currentNodePointer;
}
+ /**
+ * {@inheritDoc}
+ */
public void reset() {
super.reset();
setStarted = false;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean setPosition(int position) {
if (position < this.position) {
reset();
@@ -83,6 +98,9 @@
return true;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean nextNode() {
if (!setStarted) {
setStarted = true;
@@ -135,6 +153,7 @@
/**
* Checks if we are reentering a bean we have already seen and if so
* returns true to prevent infinite recursion.
+ * @return boolean
*/
private boolean isRecursive() {
Object node = currentNodePointer.getNode();
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/InitialContext.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/InitialContext.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/InitialContext.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/InitialContext.java Sun Feb 3 12:19:24 2008
@@ -33,6 +33,10 @@
private boolean collection;
private NodePointer nodePointer;
+ /**
+ * Create a new InitialContext.
+ * @param parentContext parent context
+ */
public InitialContext(EvalContext parentContext) {
super(parentContext);
nodePointer =
@@ -43,22 +47,37 @@
}
}
+ /**
+ * {@inheritDoc}
+ */
public Pointer getSingleNodePointer() {
return nodePointer;
}
+ /**
+ * {@inheritDoc}
+ */
public NodePointer getCurrentNodePointer() {
return nodePointer;
}
+ /**
+ * {@inheritDoc}
+ */
public Object getValue() {
return nodePointer.getValue();
}
+ /**
+ * {@inheritDoc}
+ */
public boolean nextNode() {
return setPosition(position + 1);
}
+ /**
+ * {@inheritDoc}
+ */
public boolean setPosition(int position) {
this.position = position;
if (collection) {
@@ -71,6 +90,9 @@
return position == 1;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean nextSet() {
if (started) {
return false;
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/RootContext.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/RootContext.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/RootContext.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/axes/RootContext.java Sun Feb 3 12:19:24 2008
@@ -165,7 +165,7 @@
}
/**
- * Get a registered value.
+ * Get a registered value.
* @param id int
* @return Object
*/
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationAnd.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationAnd.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationAnd.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationAnd.java Sun Feb 3 12:19:24 2008
@@ -27,10 +27,17 @@
*/
public class CoreOperationAnd extends CoreOperation {
+ /**
+ * Create a new CoreOperationAnd.
+ * @param args to combine
+ */
public CoreOperationAnd(Expression[] args) {
super(args);
}
+ /**
+ * {@inheritDoc}
+ */
public Object computeValue(EvalContext context) {
for (int i = 0; i < args.length; i++) {
if (!InfoSetUtil.booleanValue(args[i].computeValue(context))) {
@@ -40,14 +47,23 @@
return Boolean.TRUE;
}
+ /**
+ * {@inheritDoc}
+ */
protected int getPrecedence() {
return AND_PRECEDENCE;
}
+ /**
+ * {@inheritDoc}
+ */
protected boolean isSymmetric() {
return true;
}
+ /**
+ * {@inheritDoc}
+ */
public String getSymbol() {
return "and";
}
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationCompare.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationCompare.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationCompare.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationCompare.java Sun Feb 3 12:19:24 2008
@@ -36,35 +36,56 @@
public abstract class CoreOperationCompare extends CoreOperation {
private boolean invert;
+ /**
+ * Create a new CoreOperationCompare.
+ * @param arg1 left operand
+ * @param arg2 right operand
+ */
public CoreOperationCompare(Expression arg1, Expression arg2) {
this(arg1, arg2, false);
}
+ /**
+ * Create a new CoreOperationCompare.
+ * @param arg1 left operand
+ * @param arg2 right operand
+ * @param invert whether to invert (not) the comparison
+ */
protected CoreOperationCompare(Expression arg1, Expression arg2, boolean invert) {
super(new Expression[] { arg1, arg2 });
this.invert = invert;
}
+ /**
+ * {@inheritDoc}
+ */
public Object computeValue(EvalContext context) {
return equal(context, args[0], args[1]) ? Boolean.TRUE : Boolean.FALSE;
}
+ /**
+ * {@inheritDoc}
+ */
protected int getPrecedence() {
return COMPARE_PRECEDENCE;
}
+ /**
+ * {@inheritDoc}
+ */
protected boolean isSymmetric() {
return true;
}
/**
- * Compares two values
+ * Compares two values.
+ * @param context evaluation context
+ * @param left operand
+ * @param right operand
+ * @return whether left = right in XPath terms
*/
- protected boolean equal(
- EvalContext context,
- Expression left,
- Expression right)
- {
+ protected boolean equal(EvalContext context, Expression left,
+ Expression right) {
Object l = left.compute(context);
Object r = right.compute(context);
@@ -104,6 +125,12 @@
return equal(l, r);
}
+ /**
+ * Learn whether it contains value.
+ * @param it Iterator to check
+ * @param value for which to look
+ * @return whether value was found
+ */
protected boolean contains(Iterator it, Object value) {
while (it.hasNext()) {
Object element = it.next();
@@ -114,6 +141,12 @@
return false;
}
+ /**
+ * Learn whether lit intersects rit.
+ * @param lit left Iterator
+ * @param rit right Iterator
+ * @return boolean
+ */
protected boolean findMatch(Iterator lit, Iterator rit) {
HashSet left = new HashSet();
while (lit.hasNext()) {
@@ -127,6 +160,12 @@
return false;
}
+ /**
+ * Learn whether l equals r in XPath terms.
+ * @param l left operand
+ * @param r right operand
+ * @return whether l = r
+ */
protected boolean equal(Object l, Object r) {
if (l instanceof Pointer) {
l = ((Pointer) l).getValue();
@@ -139,7 +178,8 @@
boolean result;
if (l instanceof Boolean || r instanceof Boolean) {
result = l == r || InfoSetUtil.booleanValue(l) == InfoSetUtil.booleanValue(r);
- } else if (l instanceof Number || r instanceof Number) {
+ }
+ else if (l instanceof Number || r instanceof Number) {
//if either side is NaN, no comparison returns true:
double ld = InfoSetUtil.doubleValue(l);
if (Double.isNaN(ld)) {
@@ -150,7 +190,8 @@
return false;
}
result = ld == rd;
- } else {
+ }
+ else {
if (l instanceof String || r instanceof String) {
l = InfoSetUtil.stringValue(l);
r = InfoSetUtil.stringValue(r);
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationGreaterThanOrEqual.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationGreaterThanOrEqual.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationGreaterThanOrEqual.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationGreaterThanOrEqual.java Sun Feb 3 12:19:24 2008
@@ -25,14 +25,25 @@
public class CoreOperationGreaterThanOrEqual extends
CoreOperationRelationalExpression {
+ /**
+ * Create a new CoreOperationGreaterThanOrEqual.
+ * @param arg1 operand 1
+ * @param arg2 operand 2
+ */
public CoreOperationGreaterThanOrEqual(Expression arg1, Expression arg2) {
super(new Expression[] { arg1, arg2 });
}
+ /**
+ * {@inheritDoc}
+ */
protected boolean evaluateCompare(int compare) {
return compare >= 0;
}
+ /**
+ * {@inheritDoc}
+ */
public String getSymbol() {
return ">=";
}
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationNotEqual.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationNotEqual.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationNotEqual.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationNotEqual.java Sun Feb 3 12:19:24 2008
@@ -24,10 +24,18 @@
*/
public class CoreOperationNotEqual extends CoreOperationCompare {
+ /**
+ * Create a new CoreOperationNotEqual.
+ * @param arg1 left operand
+ * @param arg2 right operand
+ */
public CoreOperationNotEqual(Expression arg1, Expression arg2) {
super(arg1, arg2, true);
}
+ /**
+ * {@inheritDoc}
+ */
public String getSymbol() {
return "!=";
}
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationRelationalExpression.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationRelationalExpression.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationRelationalExpression.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationRelationalExpression.java Sun Feb 3 12:19:24 2008
@@ -34,25 +34,49 @@
*/
public abstract class CoreOperationRelationalExpression extends CoreOperation {
+ /**
+ * Create a new CoreOperationRelationalExpression.
+ * @param args arguments
+ */
protected CoreOperationRelationalExpression(Expression[] args) {
super(args);
}
+ /**
+ * {@inheritDoc}
+ */
public final Object computeValue(EvalContext context) {
return compute(args[0].compute(context), args[1].compute(context))
? Boolean.TRUE : Boolean.FALSE;
}
+ /**
+ * {@inheritDoc}
+ */
protected final int getPrecedence() {
return RELATIONAL_EXPR_PRECEDENCE;
}
+ /**
+ * {@inheritDoc}
+ */
protected final boolean isSymmetric() {
return false;
}
+ /**
+ * Template method for subclasses to evaluate the result of a comparison.
+ * @param compare result of comparison to evaluate
+ * @return ultimate operation success/failure
+ */
protected abstract boolean evaluateCompare(int compare);
+ /**
+ * Compare left to right.
+ * @param left left operand
+ * @param right right operand
+ * @return operation success/failure
+ */
private boolean compute(Object left, Object right) {
left = reduce(left);
right = reduce(right);
@@ -83,6 +107,11 @@
return evaluateCompare(ld == rd ? 0 : ld < rd ? -1 : 1);
}
+ /**
+ * Reduce an operand for comparison.
+ * @param o Object to reduce
+ * @return reduced operand
+ */
private Object reduce(Object o) {
if (o instanceof SelfContext) {
o = ((EvalContext) o).getSingleNodePointer();
@@ -93,6 +122,12 @@
return o;
}
+ /**
+ * Learn whether any element returned from an Iterator matches a given value.
+ * @param it Iterator
+ * @param value to look for
+ * @return whether a match was found
+ */
private boolean containsMatch(Iterator it, Object value) {
while (it.hasNext()) {
Object element = it.next();
@@ -103,6 +138,12 @@
return false;
}
+ /**
+ * Learn whether there is an intersection between two Iterators.
+ * @param lit left Iterator
+ * @param rit right Iterator
+ * @return whether a match was found
+ */
private boolean findMatch(Iterator lit, Iterator rit) {
HashSet left = new HashSet();
while (lit.hasNext()) {
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationSubtract.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationSubtract.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationSubtract.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/CoreOperationSubtract.java Sun Feb 3 12:19:24 2008
@@ -27,24 +27,41 @@
*/
public class CoreOperationSubtract extends CoreOperation {
+ /**
+ * Create a new CoreOperationSubtract.
+ * @param arg1 minuend
+ * @param arg2 subtrahend
+ */
public CoreOperationSubtract(Expression arg1, Expression arg2) {
super(new Expression[] { arg1, arg2 });
}
+ /**
+ * {@inheritDoc}
+ */
public Object computeValue(EvalContext context) {
double l = InfoSetUtil.doubleValue(args[0].computeValue(context));
double r = InfoSetUtil.doubleValue(args[1].computeValue(context));
return new Double(l - r);
}
+ /**
+ * {@inheritDoc}
+ */
protected int getPrecedence() {
return ADD_PRECEDENCE;
}
+ /**
+ * {@inheritDoc}
+ */
protected boolean isSymmetric() {
return false;
}
+ /**
+ * {@inheritDoc}
+ */
public String getSymbol() {
return "-";
}
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/NodeTypeTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/NodeTypeTest.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/NodeTypeTest.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/NodeTypeTest.java Sun Feb 3 12:19:24 2008
@@ -25,18 +25,34 @@
public class NodeTypeTest extends NodeTest {
private int nodeType;
+ /**
+ * Create a new NodeTypeTest.
+ * @param nodeType to match
+ */
public NodeTypeTest(int nodeType) {
this.nodeType = nodeType;
}
+ /**
+ * Get the nodeType.
+ * @return int
+ */
public int getNodeType() {
return nodeType;
}
+ /**
+ * {@inheritDoc}
+ */
public String toString() {
return nodeTypeToString(nodeType) + "()";
}
+ /**
+ * Render the given node type as a String.
+ * @param code int
+ * @return String
+ */
public static String nodeTypeToString(int code) {
switch (code) {
case Compiler.NODE_TYPE_NODE :
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/TreeCompiler.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/TreeCompiler.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/TreeCompiler.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/compiler/TreeCompiler.java Sun Feb 3 12:19:24 2008
@@ -27,127 +27,205 @@
private static final QName QNAME_NAME = new QName(null, "name");
+ /**
+ * {@inheritDoc}
+ */
public Object number(String value) {
return new Constant(new Double(value));
}
+ /**
+ * {@inheritDoc}
+ */
public Object literal(String value) {
return new Constant(value);
}
+ /**
+ * {@inheritDoc}
+ */
public Object qname(String prefix, String name) {
return new QName(prefix, name);
}
+ /**
+ * {@inheritDoc}
+ */
public Object sum(Object[] arguments) {
return new CoreOperationAdd(toExpressionArray(arguments));
}
+ /**
+ * {@inheritDoc}
+ */
public Object minus(Object left, Object right) {
return new CoreOperationSubtract(
(Expression) left,
(Expression) right);
}
+ /**
+ * {@inheritDoc}
+ */
public Object multiply(Object left, Object right) {
return new CoreOperationMultiply((Expression) left, (Expression) right);
}
+ /**
+ * {@inheritDoc}
+ */
public Object divide(Object left, Object right) {
return new CoreOperationDivide((Expression) left, (Expression) right);
}
+ /**
+ * {@inheritDoc}
+ */
public Object mod(Object left, Object right) {
return new CoreOperationMod((Expression) left, (Expression) right);
}
+ /**
+ * {@inheritDoc}
+ */
public Object lessThan(Object left, Object right) {
return new CoreOperationLessThan((Expression) left, (Expression) right);
}
+ /**
+ * {@inheritDoc}
+ */
public Object lessThanOrEqual(Object left, Object right) {
return new CoreOperationLessThanOrEqual(
(Expression) left,
(Expression) right);
}
+ /**
+ * {@inheritDoc}
+ */
public Object greaterThan(Object left, Object right) {
return new CoreOperationGreaterThan(
(Expression) left,
(Expression) right);
}
+ /**
+ * {@inheritDoc}
+ */
public Object greaterThanOrEqual(Object left, Object right) {
return new CoreOperationGreaterThanOrEqual(
(Expression) left,
(Expression) right);
}
+ /**
+ * {@inheritDoc}
+ */
public Object equal(Object left, Object right) {
return isNameAttributeTest((Expression) left)
? new NameAttributeTest((Expression) left, (Expression) right)
: new CoreOperationEqual((Expression) left, (Expression) right);
}
+ /**
+ * {@inheritDoc}
+ */
public Object notEqual(Object left, Object right) {
return new CoreOperationNotEqual((Expression) left, (Expression) right);
}
+ /**
+ * {@inheritDoc}
+ */
public Object minus(Object argument) {
return new CoreOperationNegate((Expression) argument);
}
+ /**
+ * {@inheritDoc}
+ */
public Object variableReference(Object qName) {
return new VariableReference((QName) qName);
}
+ /**
+ * {@inheritDoc}
+ */
public Object function(int code, Object[] args) {
return new CoreFunction(code, toExpressionArray(args));
}
+ /**
+ * {@inheritDoc}
+ */
public Object function(Object name, Object[] args) {
return new ExtensionFunction((QName) name, toExpressionArray(args));
}
- public Object and(Object arguments[]) {
+ /**
+ * {@inheritDoc}
+ */
+ public Object and(Object[] arguments) {
return new CoreOperationAnd(toExpressionArray(arguments));
}
- public Object or(Object arguments[]) {
+ /**
+ * {@inheritDoc}
+ */
+ public Object or(Object[] arguments) {
return new CoreOperationOr(toExpressionArray(arguments));
}
+ /**
+ * {@inheritDoc}
+ */
public Object union(Object[] arguments) {
return new CoreOperationUnion(toExpressionArray(arguments));
}
+ /**
+ * {@inheritDoc}
+ */
public Object locationPath(boolean absolute, Object[] steps) {
return new LocationPath(absolute, toStepArray(steps));
}
- public Object expressionPath(
- Object expression,
- Object[] predicates,
- Object[] steps)
- {
+ /**
+ * {@inheritDoc}
+ */
+ public Object expressionPath(Object expression, Object[] predicates,
+ Object[] steps) {
return new ExpressionPath(
(Expression) expression,
toExpressionArray(predicates),
toStepArray(steps));
}
+ /**
+ * {@inheritDoc}
+ */
public Object nodeNameTest(Object qname) {
return new NodeNameTest((QName) qname);
}
+ /**
+ * {@inheritDoc}
+ */
public Object nodeTypeTest(int nodeType) {
return new NodeTypeTest(nodeType);
}
+ /**
+ * {@inheritDoc}
+ */
public Object processingInstructionTest(String instruction) {
return new ProcessingInstructionTest(instruction);
}
+ /**
+ * {@inheritDoc}
+ */
public Object step(int axis, Object nodeTest, Object[] predicates) {
return new Step(
axis,
@@ -155,8 +233,13 @@
toExpressionArray(predicates));
}
+ /**
+ * Get an Object[] as an Expression[].
+ * @param array Object[]
+ * @return Expression[]
+ */
private Expression[] toExpressionArray(Object[] array) {
- Expression expArray[] = null;
+ Expression[] expArray = null;
if (array != null) {
expArray = new Expression[array.length];
for (int i = 0; i < expArray.length; i++) {
@@ -166,8 +249,13 @@
return expArray;
}
+ /**
+ * Get an Object[] as a Step[].
+ * @param array Object[]
+ * @return Step[]
+ */
private Step[] toStepArray(Object[] array) {
- Step stepArray[] = null;
+ Step[] stepArray = null;
if (array != null) {
stepArray = new Step[array.length];
for (int i = 0; i < stepArray.length; i++) {
@@ -177,6 +265,11 @@
return stepArray;
}
+ /**
+ * Learn whether arg is a name attribute test.
+ * @param arg Expression to test
+ * @return boolean
+ */
private boolean isNameAttributeTest(Expression arg) {
if (!(arg instanceof LocationPath)) {
return false;
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/VariablePointerFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/VariablePointerFactory.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/VariablePointerFactory.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/VariablePointerFactory.java Sun Feb 3 12:19:24 2008
@@ -29,14 +29,19 @@
* @version $Revision$ $Date$
*/
public class VariablePointerFactory implements NodePointerFactory {
+ /** factory order constant */
public static final int VARIABLE_POINTER_FACTORY_ORDER = 890;
/**
* Node value wrapper to trigger a VariablePointerFactory.
*/
- public static class VariableContextWrapper {
+ public static final class VariableContextWrapper {
private final JXPathContext context;
+ /**
+ * Create a new VariableContextWrapper.
+ * @param context to wrap
+ */
private VariableContextWrapper(JXPathContext context) {
this.context = context;
}
@@ -60,11 +65,8 @@
return new VariableContextWrapper(context);
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.commons.jxpath.ri.model.NodePointerFactory#createNodePointer(org.apache.commons.jxpath.ri.QName,
- * java.lang.Object, java.util.Locale)
+ /**
+ * {@inheritDoc}
*/
public NodePointer createNodePointer(QName name, Object object,
Locale locale) {
@@ -85,21 +87,16 @@
return null;
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.commons.jxpath.ri.model.NodePointerFactory#createNodePointer(org.apache.commons.jxpath.ri.model.NodePointer,
- * org.apache.commons.jxpath.ri.QName, java.lang.Object)
+ /**
+ * {@inheritDoc}
*/
public NodePointer createNodePointer(NodePointer parent, QName name,
Object object) {
return createNodePointer(name, object, null);
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.commons.jxpath.ri.model.NodePointerFactory#getOrder()
+ /**
+ * {@inheritDoc}
*/
public int getOrder() {
return VARIABLE_POINTER_FACTORY_ORDER;
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/CollectionPointerFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/CollectionPointerFactory.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/CollectionPointerFactory.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/CollectionPointerFactory.java Sun Feb 3 12:19:24 2008
@@ -31,25 +31,28 @@
*/
public class CollectionPointerFactory implements NodePointerFactory {
+ /** factory order constant */
public static final int COLLECTION_POINTER_FACTORY_ORDER = 10;
+ /**
+ * {@inheritDoc}
+ */
public int getOrder() {
return COLLECTION_POINTER_FACTORY_ORDER;
}
- public NodePointer createNodePointer(
- QName name,
- Object bean,
- Locale locale)
- {
+ /**
+ * {@inheritDoc}
+ */
+ public NodePointer createNodePointer(QName name, Object bean, Locale locale) {
return ValueUtils.isCollection(bean) ? new CollectionPointer(bean, locale) : null;
}
- public NodePointer createNodePointer(
- NodePointer parent,
- QName name,
- Object bean)
- {
+ /**
+ * {@inheritDoc}
+ */
+ public NodePointer createNodePointer(NodePointer parent, QName name,
+ Object bean) {
return ValueUtils.isCollection(bean) ? new CollectionPointer(parent, bean) : null;
}
}
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/NullPropertyPointer.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/NullPropertyPointer.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/NullPropertyPointer.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/beans/NullPropertyPointer.java Sun Feb 3 12:19:24 2008
@@ -33,50 +33,85 @@
private boolean byNameAttribute = false;
/**
+ * Create a new NullPropertyPointer.
+ * @param parent pointer
*/
public NullPropertyPointer(NodePointer parent) {
super(parent);
}
+ /**
+ * {@inheritDoc}
+ */
public QName getName() {
return new QName(propertyName);
}
+ /**
+ * {@inheritDoc}
+ */
public void setPropertyIndex(int index) {
}
+ /**
+ * {@inheritDoc}
+ */
public int getLength() {
return 0;
}
+ /**
+ * {@inheritDoc}
+ */
public Object getBaseValue() {
return null;
}
+ /**
+ * {@inheritDoc}
+ */
public Object getImmediateNode() {
return null;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isLeaf() {
return true;
}
+ /**
+ * {@inheritDoc}
+ */
public NodePointer getValuePointer() {
return new NullPointer(this, new QName(getPropertyName()));
}
+ /**
+ * {@inheritDoc}
+ */
protected boolean isActualProperty() {
return false;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isActual() {
return false;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isContainer() {
return true;
}
+ /**
+ * {@inheritDoc}
+ */
public void setValue(Object value) {
if (parent == null || parent.isContainer()) {
throw new JXPathInvalidAccessException(
@@ -84,9 +119,9 @@
+ asPath()
+ ", the target object is null");
}
- if (parent instanceof PropertyOwnerPointer &&
- ((PropertyOwnerPointer) parent).
- isDynamicPropertyDeclarationSupported()){
+ if (parent instanceof PropertyOwnerPointer
+ && ((PropertyOwnerPointer) parent)
+ .isDynamicPropertyDeclarationSupported()) {
// If the parent property owner can create
// a property automatically - let it do so
PropertyPointer propertyPointer =
@@ -102,6 +137,9 @@
}
}
+ /**
+ * {@inheritDoc}
+ */
public NodePointer createPath(JXPathContext context) {
NodePointer newParent = parent.createPath(context);
if (isAttribute()) {
@@ -130,6 +168,9 @@
return newParent.createChild(context, getName(), getIndex());
}
+ /**
+ * {@inheritDoc}
+ */
public NodePointer createPath(JXPathContext context, Object value) {
NodePointer newParent = parent.createPath(context);
if (isAttribute()) {
@@ -147,48 +188,68 @@
return newParent.createChild(context, getName(), index, value);
}
- public NodePointer createChild(
- JXPathContext context,
- QName name,
- int index)
- {
+ /**
+ * {@inheritDoc}
+ */
+ public NodePointer createChild(JXPathContext context, QName name, int index) {
return createPath(context).createChild(context, name, index);
}
- public NodePointer createChild(
- JXPathContext context,
- QName name,
- int index,
- Object value)
- {
+ /**
+ * {@inheritDoc}
+ */
+ public NodePointer createChild(JXPathContext context, QName name,
+ int index, Object value) {
return createPath(context).createChild(context, name, index, value);
}
+ /**
+ * {@inheritDoc}
+ */
public String getPropertyName() {
return propertyName;
}
+ /**
+ * {@inheritDoc}
+ */
public void setPropertyName(String propertyName) {
this.propertyName = propertyName;
}
+ /**
+ * Set the name attribute.
+ * @param attributeValue value to set
+ */
public void setNameAttributeValue(String attributeValue) {
this.propertyName = attributeValue;
byNameAttribute = true;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean isCollection() {
return getIndex() != WHOLE_COLLECTION;
}
+ /**
+ * {@inheritDoc}
+ */
public int getPropertyCount() {
return 0;
}
+ /**
+ * {@inheritDoc}
+ */
public String[] getPropertyNames() {
return new String[0];
}
+ /**
+ * {@inheritDoc}
+ */
public String asPath() {
if (!byNameAttribute) {
return super.asPath();
@@ -204,26 +265,46 @@
return buffer.toString();
}
+ /**
+ * Return a string escaping single and double quotes.
+ * @param string string to treat
+ * @return string with any necessary changes made.
+ */
private String escape(String string) {
- int index = string.indexOf('\'');
- while (index != -1) {
- string =
- string.substring(0, index)
- + "'"
- + string.substring(index + 1);
- index = string.indexOf('\'');
- }
- index = string.indexOf('\"');
- while (index != -1) {
- string =
- string.substring(0, index)
- + """
- + string.substring(index + 1);
- index = string.indexOf('\"');
- }
- return string;
- }
-
+ final char[] c = new char[] { '\'', '"' };
+ final String[] esc = new String[] { "'", """ };
+ StringBuffer sb = null;
+ for (int i = 0; sb == null && i < c.length; i++) {
+ if (string.indexOf(c[i]) >= 0) {
+ sb = new StringBuffer(string);
+ }
+ }
+ if (sb == null) {
+ return string;
+ }
+ for (int i = 0; i < c.length; i++) {
+ if (string.indexOf(c[i]) < 0) {
+ continue;
+ }
+ int pos = 0;
+ while (pos < sb.length()) {
+ if (sb.charAt(pos) == c[i]) {
+ sb.replace(pos, pos + 1, esc[i]);
+ pos += esc[i].length();
+ }
+ else {
+ pos++;
+ }
+ }
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Create a "bad factory" JXPathAbstractFactoryException for the specified AbstractFactory.
+ * @param factory AbstractFactory
+ * @return JXPathAbstractFactoryException
+ */
private JXPathAbstractFactoryException createBadFactoryException(AbstractFactory factory) {
return new JXPathAbstractFactoryException("Factory " + factory
+ " reported success creating object for path: " + asPath()
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dom/DOMAttributeIterator.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dom/DOMAttributeIterator.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dom/DOMAttributeIterator.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dom/DOMAttributeIterator.java Sun Feb 3 12:19:24 2008
@@ -39,6 +39,11 @@
private List attributes;
private int position = 0;
+ /**
+ * Create a new DOMAttributeIterator.
+ * @param parent pointer
+ * @param name to test
+ */
public DOMAttributeIterator(NodePointer parent, QName name) {
this.parent = parent;
this.name = name;
@@ -65,6 +70,11 @@
}
}
+ /**
+ * Test an attribute.
+ * @param attr to test
+ * @return whether test succeeded
+ */
private boolean testAttr(Attr attr) {
String nodePrefix = DOMNodePointer.getPrefix(attr);
String nodeLocalName = DOMNodePointer.getLocalName(attr);
@@ -93,10 +103,22 @@
return false;
}
+ /**
+ * Test whether two strings are == or .equals()
+ * @param s1 first string
+ * @param s2 second string
+ * @return boolean
+ */
private static boolean equalStrings(String s1, String s2) {
return s1 == s2 || s1 != null && s1.equals(s2);
}
+ /**
+ * Get the named attribute.
+ * @param element to search
+ * @param name to match
+ * @return Attr found
+ */
private Attr getAttribute(Element element, QName name) {
String testPrefix = name.getPrefix();
String testNS = null;
@@ -126,6 +148,9 @@
return element.getAttributeNode(name.getName());
}
+ /**
+ * {@inheritDoc}
+ */
public NodePointer getNodePointer() {
if (position == 0) {
if (!setPosition(1)) {
@@ -140,10 +165,16 @@
return new DOMAttributePointer(parent, (Attr) attributes.get(index));
}
+ /**
+ * {@inheritDoc}
+ */
public int getPosition() {
return position;
}
+ /**
+ * {@inheritDoc}
+ */
public boolean setPosition(int position) {
this.position = position;
return position >= 1 && position <= attributes.size();
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicAttributeIterator.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicAttributeIterator.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicAttributeIterator.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicAttributeIterator.java Sun Feb 3 12:19:24 2008
@@ -30,11 +30,19 @@
*/
public class DynamicAttributeIterator extends BeanAttributeIterator {
+ /**
+ * Create a new DynamicAttributeIterator.
+ * @param parent pointer
+ * @param name to match properties
+ */
public DynamicAttributeIterator(PropertyOwnerPointer parent, QName name) {
super(parent, name);
}
- protected void prepareForIndividualProperty(String name) {
+ /**
+ * {@inheritDoc}
+ */
+ protected void prepareForIndividualProperty(String name) {
((DynamicPropertyPointer) getPropertyPointer()).setPropertyName(name);
super.prepareForIndividualProperty(name);
}
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicPropertyPointer.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicPropertyPointer.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicPropertyPointer.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/ri/model/dynamic/DynamicPropertyPointer.java Sun Feb 3 12:19:24 2008
@@ -44,15 +44,20 @@
private String[] names;
private String requiredPropertyName;
- public DynamicPropertyPointer(
- NodePointer parent,
- DynamicPropertyHandler handler)
- {
+ /**
+ * Create a new DynamicPropertyPointer.
+ * @param parent pointer
+ * @param handler DynamicPropertyHandler
+ */
+ public DynamicPropertyPointer(NodePointer parent,
+ DynamicPropertyHandler handler) {
super(parent);
this.handler = handler;
}
+
/**
* This type of node is auxiliary.
+ * @return true
*/
public boolean isContainer() {
return true;
@@ -60,17 +65,19 @@
/**
* Number of the DP object's properties.
+ * @return int
*/
public int getPropertyCount() {
return getPropertyNames().length;
}
/**
- * Names of all properties, sorted alphabetically
+ * Names of all properties, sorted alphabetically.
+ * @return String[]
*/
public String[] getPropertyNames() {
if (names == null) {
- String allNames[] = handler.getPropertyNames(getBean());
+ String[] allNames = handler.getPropertyNames(getBean());
names = new String[allNames.length];
for (int i = 0; i < names.length; i++) {
names[i] = allNames[i];
@@ -93,10 +100,11 @@
/**
* Returns the name of the currently selected property or "*"
* if none has been selected.
+ * @return String
*/
public String getPropertyName() {
if (name == null) {
- String names[] = getPropertyNames();
+ String[] names = getPropertyNames();
name = propertyIndex >= 0 && propertyIndex < names.length ? names[propertyIndex] : "*";
}
return name;
@@ -108,6 +116,7 @@
* adds this name to the object's property name list. It does not
* set the property value though. In order to set the property
* value, call setValue().
+ * @param propertyName to set
*/
public void setPropertyName(String propertyName) {
setPropertyIndex(UNSPECIFIED_PROPERTY);
@@ -121,10 +130,11 @@
/**
* Index of the currently selected property in the list of all
* properties sorted alphabetically.
+ * @return int
*/
public int getPropertyIndex() {
if (propertyIndex == UNSPECIFIED_PROPERTY) {
- String names[] = getPropertyNames();
+ String[] names = getPropertyNames();
for (int i = 0; i < names.length; i++) {
if (names[i].equals(name)) {
setPropertyIndex(i);
@@ -138,6 +148,7 @@
/**
* Index a property by its index in the list of all
* properties sorted alphabetically.
+ * @param index to set
*/
public void setPropertyIndex(int index) {
if (propertyIndex != index) {
@@ -149,6 +160,7 @@
/**
* Returns the value of the property, not an element of the collection
* represented by the property, if any.
+ * @return Object
*/
public Object getBaseValue() {
return handler.getProperty(getBean(), getPropertyName());
@@ -159,6 +171,7 @@
* the value of the index'th element of the collection represented by the
* property. If the property is not a collection, index should be zero
* and the value will be the property itself.
+ * @return Object
*/
public Object getImmediateNode() {
Object value;
@@ -178,6 +191,7 @@
/**
* A dynamic property is always considered actual - all keys are apparently
* existing with possibly the value of null.
+ * @return boolean
*/
protected boolean isActualProperty() {
return true;
@@ -187,6 +201,7 @@
* If index == WHOLE_COLLECTION, change the value of the property, otherwise
* change the value of the index'th element of the collection
* represented by the property.
+ * @param value to set
*/
public void setValue(Object value) {
if (index == WHOLE_COLLECTION) {
@@ -200,6 +215,9 @@
}
}
+ /**
+ * {@inheritDoc}
+ */
public NodePointer createPath(JXPathContext context) {
// Ignore the name passed to us, use our own data
Object collection = getBaseValue();
@@ -234,6 +252,9 @@
return this;
}
+ /**
+ * {@inheritDoc}
+ */
public NodePointer createPath(JXPathContext context, Object value) {
if (index == WHOLE_COLLECTION) {
handler.setProperty(getBean(), getPropertyName(), value);
@@ -245,6 +266,9 @@
return this;
}
+ /**
+ * {@inheritDoc}
+ */
public void remove() {
if (index == WHOLE_COLLECTION) {
removeKey();
@@ -258,6 +282,9 @@
}
}
+ /**
+ * Remove the current property.
+ */
private void removeKey() {
Object bean = getBean();
if (bean instanceof Map) {
@@ -268,6 +295,9 @@
}
}
+ /**
+ * {@inheritDoc}
+ */
public String asPath() {
StringBuffer buffer = new StringBuffer();
buffer.append(getImmediateParentPointer().asPath());
@@ -286,6 +316,11 @@
return buffer.toString();
}
+ /**
+ * Escape string.
+ * @param string s
+ * @return String
+ */
private String escape(String string) {
int index = string.indexOf('\'');
while (index != -1) {
@@ -306,6 +341,11 @@
return string;
}
+ /**
+ * Get abstractFactory from context.
+ * @param context to search
+ * @return AbstractFactory
+ */
private AbstractFactory getAbstractFactory(JXPathContext context) {
AbstractFactory factory = context.getFactory();
if (factory == null) {
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/servlet/ServletContextHandler.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/servlet/ServletContextHandler.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/servlet/ServletContextHandler.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/servlet/ServletContextHandler.java Sun Feb 3 12:19:24 2008
@@ -32,14 +32,22 @@
*/
public class ServletContextHandler implements DynamicPropertyHandler {
- private static final String[] STRING_ARRAY = new String[0];
+ private static final int DEFAULT_PROPERTY_COUNT = 16;
+ /**
+ * {@inheritDoc}
+ */
public String[] getPropertyNames(Object context) {
- HashSet list = new HashSet(16);
+ HashSet list = new HashSet(DEFAULT_PROPERTY_COUNT);
collectPropertyNames(list, context);
- return (String[]) list.toArray(STRING_ARRAY);
+ return (String[]) list.toArray(new String[list.size()]);
}
+ /**
+ * Collect the property names from bean, storing in set.
+ * @param set destination
+ * @param bean to read
+ */
protected void collectPropertyNames(HashSet set, Object bean) {
Enumeration e = ((ServletContext) bean).getAttributeNames();
while (e.hasMoreElements()) {
@@ -47,10 +55,16 @@
}
}
+ /**
+ * {@inheritDoc}
+ */
public Object getProperty(Object context, String property) {
return ((ServletContext) context).getAttribute(property);
}
+ /**
+ * {@inheritDoc}
+ */
public void setProperty(Object context, String property, Object value) {
((ServletContext) context).setAttribute(property, value);
}
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/ReverseComparator.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/ReverseComparator.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/ReverseComparator.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/ReverseComparator.java Sun Feb 3 12:19:24 2008
@@ -24,12 +24,15 @@
* @author Dmitri Plotnikov
* @version $Revision$ $Date$
*/
-public class ReverseComparator implements Comparator {
+public final class ReverseComparator implements Comparator {
/**
* Singleton reverse comparator instance.
*/
public static final Comparator INSTANCE = new ReverseComparator();
+ /**
+ * Create a new ReverseComparator.
+ */
private ReverseComparator() {
}
Modified: commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/ValueUtils.java
URL: http://svn.apache.org/viewvc/commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/ValueUtils.java?rev=618074&r1=618073&r2=618074&view=diff
==============================================================================
--- commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/ValueUtils.java (original)
+++ commons/proper/jxpath/trunk/src/java/org/apache/commons/jxpath/util/ValueUtils.java Sun Feb 3 12:19:24 2008
@@ -45,7 +45,9 @@
private static final int UNKNOWN_LENGTH_MAX_COUNT = 16000;
/**
- * Returns true if the object is an array or a Collection
+ * Returns true if the object is an array or a Collection.
+ * @param value to test
+ * @return boolean
*/
public static boolean isCollection(Object value) {
if (value == null) {
@@ -65,6 +67,8 @@
* Returns 1 if the type is a collection,
* -1 if it is definitely not
* and 0 if it may be a collection in some cases.
+ * @param clazz to test
+ * @return int
*/
public static int getCollectionHint(Class clazz) {
if (clazz.isArray()) {
@@ -97,11 +101,12 @@
* Otherwise, attempts to guess the length of the collection by
* calling the indexed get method repeatedly. The method is supposed
* to throw an exception if the index is out of bounds.
+ * @param object collection
+ * @param pd IndexedPropertyDescriptor
+ * @return int
*/
- public static int getIndexedPropertyLength(
- Object object,
- IndexedPropertyDescriptor pd)
- {
+ public static int getIndexedPropertyLength(Object object,
+ IndexedPropertyDescriptor pd) {
if (pd.getReadMethod() != null) {
return getLength(getValue(object, pd));
}
@@ -129,6 +134,8 @@
/**
* Returns the length of the supplied collection. If the supplied object
* is not a collection, returns 1. If collection is null, returns 0.
+ * @param collection to check
+ * @return int
*/
public static int getLength(Object collection) {
if (collection == null) {
@@ -148,6 +155,8 @@
* Returns an iterator for the supplied collection. If the argument
* is null, returns an empty iterator. If the argument is not
* a collection, returns an iterator that produces just that one object.
+ * @param collection to iterate
+ * @return Iterator
*/
public static Iterator iterate(Object collection) {
if (collection == null) {
@@ -173,11 +182,18 @@
/**
* Grows the collection if necessary to the specified size. Returns
* the new, expanded collection.
+ * @param collection to expand
+ * @param size desired size
+ * @return collection or array
*/
public static Object expandCollection(Object collection, int size) {
if (collection == null) {
return null;
}
+ if (size < getLength(collection)) {
+ throw new JXPathException("adjustment of " + collection
+ + " to size " + size + " is not an expansion");
+ }
if (collection.getClass().isArray()) {
Object bigger =
Array.newInstance(
@@ -205,13 +221,19 @@
}
/**
- * Returns the index'th element from the supplied collection.
+ * Remove the index'th element from the supplied collection.
+ * @param collection to edit
+ * @param index int
+ * @return the resulting collection
*/
public static Object remove(Object collection, int index) {
collection = getValue(collection);
if (collection == null) {
return null;
}
+ if (index >= getLength(collection)) {
+ throw new JXPathException("No such element at index " + index);
+ }
if (collection.getClass().isArray()) {
int length = Array.getLength(collection);
Object smaller =
@@ -262,6 +284,9 @@
/**
* Returns the index'th element of the supplied collection.
+ * @param collection to read
+ * @param index int
+ * @return collection[index]
*/
public static Object getValue(Object collection, int index) {
collection = getValue(collection);
@@ -299,6 +324,9 @@
/**
* Modifies the index'th element of the supplied collection.
* Converts the value to the required type if necessary.
+ * @param collection to edit
+ * @param index to replace
+ * @param value new value
*/
public static void setValue(Object collection, int index, Object value) {
collection = getValue(collection);
@@ -314,8 +342,8 @@
}
else if (collection instanceof Collection) {
throw new UnsupportedOperationException(
- "Cannot set value of an element of a "
- + collection.getClass().getName());
+ "Cannot set value of an element of a "
+ + collection.getClass().getName());
}
}
}
@@ -323,11 +351,12 @@
/**
* Returns the value of the bean's property represented by
* the supplied property descriptor.
+ * @param bean to read
+ * @param propertyDescriptor indicating what to read
+ * @return Object value
*/
- public static Object getValue(
- Object bean,
- PropertyDescriptor propertyDescriptor)
- {
+ public static Object getValue(Object bean,
+ PropertyDescriptor propertyDescriptor) {
Object value;
try {
Method method =
@@ -351,12 +380,12 @@
/**
* Modifies the value of the bean's property represented by
* the supplied property descriptor.
+ * @param bean to read
+ * @param propertyDescriptor indicating what to read
+ * @param value to set
*/
- public static void setValue(
- Object bean,
- PropertyDescriptor propertyDescriptor,
- Object value)
- {
+ public static void setValue(Object bean,
+ PropertyDescriptor propertyDescriptor, Object value) {
try {
Method method =
getAccessibleMethod(propertyDescriptor.getWriteMethod());
@@ -376,6 +405,12 @@
}
}
+ /**
+ * Convert value to type.
+ * @param value Object
+ * @param type destination
+ * @return conversion result
+ */
private static Object convert(Object value, Class type) {
try {
return TypeUtils.convert(value, type);
@@ -393,12 +428,13 @@
/**
* Returns the index'th element of the bean's property represented by
* the supplied property descriptor.
+ * @param bean to read
+ * @param propertyDescriptor indicating what to read
+ * @param index int
+ * @return Object
*/
- public static Object getValue(
- Object bean,
- PropertyDescriptor propertyDescriptor,
- int index)
- {
+ public static Object getValue(Object bean,
+ PropertyDescriptor propertyDescriptor, int index) {
if (propertyDescriptor instanceof IndexedPropertyDescriptor) {
try {
IndexedPropertyDescriptor ipd =
@@ -435,13 +471,13 @@
* Modifies the index'th element of the bean's property represented by
* the supplied property descriptor. Converts the value to the required
* type if necessary.
+ * @param bean to edit
+ * @param propertyDescriptor indicating what to set
+ * @param index int
+ * @param value to set
*/
- public static void setValue(
- Object bean,
- PropertyDescriptor propertyDescriptor,
- int index,
- Object value)
- {
+ public static void setValue(Object bean,
+ PropertyDescriptor propertyDescriptor, int index, Object value) {
if (propertyDescriptor instanceof IndexedPropertyDescriptor) {
try {
IndexedPropertyDescriptor ipd =
@@ -481,6 +517,8 @@
/**
* If the parameter is a container, opens the container and
* return the contents. The method is recursive.
+ * @param object to read
+ * @return Object
*/
public static Object getValue(Object object) {
while (object instanceof Container) {
@@ -492,9 +530,10 @@
/**
* Returns a shared instance of the dynamic property handler class
* returned by getDynamicPropertyHandlerClass().
+ * @param clazz to handle
+ * @return DynamicPropertyHandler
*/
- public static DynamicPropertyHandler getDynamicPropertyHandler(Class clazz)
- {
+ public static DynamicPropertyHandler getDynamicPropertyHandler(Class clazz) {
DynamicPropertyHandler handler =
(DynamicPropertyHandler) dynamicPropertyHandlerMap.get(clazz);
if (handler == null) {
@@ -525,6 +564,7 @@
* can be found, return null.
*
* @param method The method that we wish to call
+ * @return Method
*/
public static Method getAccessibleMethod(Method method) {
@@ -560,14 +600,12 @@
return clazz.getDeclaredMethod(name, parameterTypes);
}
catch (NoSuchMethodException e) {
- ;
}
}
}
return null;
}
-
/**
* Return an accessible method (that is, one that can be invoked via
* reflection) that implements the specified method, by scanning through
@@ -577,17 +615,15 @@
* @param clazz Parent class for the interfaces to be checked
* @param methodName Method name of the method we wish to call
* @param parameterTypes The parameter type signatures
+ * @return Method
*/
- private static Method getAccessibleMethodFromInterfaceNest(
- Class clazz,
- String methodName,
- Class parameterTypes[])
- {
+ private static Method getAccessibleMethodFromInterfaceNest(Class clazz,
+ String methodName, Class[] parameterTypes) {
Method method = null;
// Check the implemented interfaces of the parent class
- Class interfaces[] = clazz.getInterfaces();
+ Class[] interfaces = clazz.getInterfaces();
for (int i = 0; i < interfaces.length; i++) {
// Is this interface public?
@@ -601,7 +637,6 @@
interfaces[i].getDeclaredMethod(methodName, parameterTypes);
}
catch (NoSuchMethodException e) {
- ;
}
if (method != null) {
break;