You are viewing a plain text version of this content. The canonical link for it is here.
Posted to imperius-commits@incubator.apache.org by da...@apache.org on 2009/09/29 18:29:48 UTC
svn commit: r820060 [2/3] - in /incubator/imperius/trunk: ./
imperius-javaspl/src/main/java/org/apache/imperius/javaspl/ imperius-splcore/
imperius-splcore/src/main/java/org/apache/imperius/spl/datastore/
imperius-splcore/src/main/java/org/apache/imper...
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/TripleArgumentExpression.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/TripleArgumentExpression.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/TripleArgumentExpression.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/TripleArgumentExpression.java Tue Sep 29 18:29:44 2009
@@ -25,7 +25,9 @@
package org.apache.imperius.spl.parser.expressions;
+import java.util.Iterator;
import java.util.List;
+import java.util.Vector;
import java.util.logging.Logger;
import org.apache.imperius.spl.external.Expression;
@@ -173,4 +175,38 @@
{
return null;
}
+
+ public Iterator getSubexpressions() {
+ Vector subexpressions = new Vector();
+ subexpressions.add(_lhsExp);
+ subexpressions.add(_midExp);
+ subexpressions.add(_rhsExp);
+ return subexpressions.iterator();
+ }
+
+ //xiping 03/06/09 to support collection analysis
+ public Expression getLHSExpression() {
+ return _lhsExp;
+ }
+
+ public Expression getMIDExpression() {
+ return _midExp;
+ }
+
+ public Expression getRHSExpression() {
+ return _rhsExp;
+ }
+
+ public void replaceLHSExpression(Expression exp) {
+ _lhsExp = exp;
+ }
+
+ public void replaceMIDExpression(Expression exp) {
+ _midExp = exp;
+ }
+
+ public void replaceRHSExpression(Expression exp) {
+ _rhsExp = exp;
+ }
+
}
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Addition.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Addition.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Addition.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Addition.java Tue Sep 29 18:29:44 2009
@@ -29,6 +29,7 @@
package org.apache.imperius.spl.parser.expressions.impl;
import java.util.List;
+import java.util.Vector;
import java.util.logging.Logger;
import org.apache.imperius.spl.external.TypeConstants;
@@ -98,8 +99,68 @@
}
}
+ public static Number plus(Vector o) throws IllegalExpressionTypeException {
+ Number[] operandArray = (Number[]) o.toArray(new Number[0]);
+ return plus(operandArray);
+ }
- private static Number plus(Number o1, Number o2)
+ public static Number plus(Number[] o) throws IllegalExpressionTypeException
+ {
+ logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "plus(Number[])");
+
+ Number[] o1 = new Number[2];
+
+ Number result = null;
+ for (int i = 0; i < o.length; i++) {
+ if (i == 0) {
+ result = o[i];
+ } else {
+ o1[0] = result;
+ o1[1] = o[i];
+ int resolvedType = TypeResolver.resolveType(o1);
+
+ if (resolvedType == TypeConstants.doubleType)
+ {
+ logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "plus(Number[])");
+
+ return new Double(result.doubleValue() + o[i].doubleValue());
+ }
+ else if (resolvedType == TypeConstants.floatType)
+ {
+ logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "plusplus(Number[])");
+
+ return new Float(result.floatValue() + o[i].floatValue());
+ }
+ else if (resolvedType == TypeConstants.longType)
+ {
+ logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "plusplus(Number[])");
+
+ return new Long(result.longValue() + o[i].longValue());
+ }
+ else if (resolvedType == TypeConstants.shortType)
+ {
+ logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "plusplus(Number[])");
+
+ return new Long(result.shortValue() + o[i].shortValue());
+ }
+ else if (resolvedType == TypeConstants.byteType)
+ {
+ logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "plusplus(Number[])");
+
+ return new Long(result.byteValue() + o[i].byteValue());
+ }
+ else
+ {
+ logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "plusplus(Number[])");
+
+ return new Integer(result.intValue() + o[i].intValue());
+ }
+ }
+ }
+ return result;
+ }
+
+ public static Number plus(Number o1, Number o2)
throws IllegalExpressionTypeException
{
logger.entering(sourceClass, Thread.currentThread().getName() + " "
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/AllInCollection.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/AllInCollection.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/AllInCollection.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/AllInCollection.java Tue Sep 29 18:29:44 2009
@@ -350,6 +350,7 @@
Expression expression1 = (Expression) this._lhsExp;
Expression expression2 = (Expression) this._midExp;
Expression expression3 = (Expression) this._rhsExp;
+ // expression3.validate();
TypeInfo leftType = expression1.getType();
TypeInfo middleType = expression2.getType();
TypeInfo rightType = expression3.getType();
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/AnyInCollection.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/AnyInCollection.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/AnyInCollection.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/AnyInCollection.java Tue Sep 29 18:29:44 2009
@@ -34,6 +34,7 @@
import org.apache.imperius.spl.external.TypeConstants;
import org.apache.imperius.spl.parser.exceptions.IllegalParameterTypeException;
import org.apache.imperius.spl.parser.exceptions.SPLException;
+import org.apache.imperius.spl.parser.expressions.BooleanExpression;
import org.apache.imperius.spl.parser.expressions.TripleArgumentExpression;
import org.apache.imperius.spl.parser.util.ExpressionUtility;
import org.apache.imperius.spl.parser.util.TypeInfo;
@@ -42,8 +43,13 @@
import org.apache.imperius.util.SPLLogger;
+//public class AnyInCollection extends TripleArgumentExpression implements
+//Expression
+
+//Xiping 09/15/2009
+//must implements BooleanExpression
public class AnyInCollection extends TripleArgumentExpression implements
- Expression
+ BooleanExpression
{
public String className = InCollection.class.toString();
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Division.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Division.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Division.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Division.java Tue Sep 29 18:29:44 2009
@@ -112,7 +112,7 @@
}
}
- private static Number division(Number o1, Number o2) throws SPLException
+ public static Number division(Number o1, Number o2) throws SPLException
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "division");
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/EqCollections.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/EqCollections.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/EqCollections.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/EqCollections.java Tue Sep 29 18:29:44 2009
@@ -31,13 +31,19 @@
import org.apache.imperius.spl.external.Expression;
import org.apache.imperius.spl.external.TypeConstants;
import org.apache.imperius.spl.parser.exceptions.SPLException;
+import org.apache.imperius.spl.parser.expressions.BooleanExpression;
import org.apache.imperius.spl.parser.expressions.DoubleArgumentExpression;
import org.apache.imperius.util.Messages;
import org.apache.imperius.util.SPLLogger;
+//public class EqCollections extends DoubleArgumentExpression implements
+//Expression
+
+//Xiping 09/15/2009
+//must implements BooleanExpression
public class EqCollections extends DoubleArgumentExpression implements
- Expression
+ BooleanExpression
{
// private BasicCollectionExpression basicCollection=null;
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Equal.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Equal.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Equal.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Equal.java Tue Sep 29 18:29:44 2009
@@ -150,11 +150,12 @@
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "toString");
- String str = this._lhsExp.toString() + "==" + this._rhsExp.toString();
-
+ //Xiping 10/14/08
+ //String str = this._lhsExp.toString() + "==" + this._rhsExp.toString();
+ String str = this._lhsExp.toString() + " == " + this._rhsExp.toString();
+
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "toString");
return str;
}
-
}
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Greater.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Greater.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Greater.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Greater.java Tue Sep 29 18:29:44 2009
@@ -152,7 +152,9 @@
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "toString");
- String str = this._lhsExp.toString() + ">" + this._rhsExp.toString() +")";
+ //Xiping 10/14/08
+ //String str = this._lhsExp.toString() + ">" + this._rhsExp.toString() +")";
+ String str = this._lhsExp.toString() + " > " + this._rhsExp.toString();
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "toString");
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/GreaterOrEqual.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/GreaterOrEqual.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/GreaterOrEqual.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/GreaterOrEqual.java Tue Sep 29 18:29:44 2009
@@ -148,7 +148,9 @@
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "toString");
- String str = this._lhsExp.toString() + ">=" + this._rhsExp.toString() +")";
+ //Xiping 10/14/08
+ //String str = this._lhsExp.toString() + ">=" + this._rhsExp.toString() +")";
+ String str = this._lhsExp.toString() + " >= " + this._rhsExp.toString();
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "toString");
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/InCollection.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/InCollection.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/InCollection.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/InCollection.java Tue Sep 29 18:29:44 2009
@@ -24,23 +24,28 @@
*/
package org.apache.imperius.spl.parser.expressions.impl;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import java.util.ArrayList;
import java.util.logging.Logger;
import org.apache.imperius.spl.external.Expression;
import org.apache.imperius.spl.external.TypeConstants;
import org.apache.imperius.spl.parser.exceptions.IllegalParameterTypeException;
import org.apache.imperius.spl.parser.exceptions.SPLException;
+import org.apache.imperius.spl.parser.expressions.BooleanExpression;
import org.apache.imperius.spl.parser.expressions.DoubleArgumentExpression;
import org.apache.imperius.spl.parser.util.ExpressionUtility;
import org.apache.imperius.util.Messages;
import org.apache.imperius.util.SPLLogger;
+//public class InCollection extends DoubleArgumentExpression implements
+// Expression
+
+//Xiping 03/19/2009
public class InCollection extends DoubleArgumentExpression implements
- Expression
+ BooleanExpression
{
public String className = InCollection.class.toString();
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Less.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Less.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Less.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Less.java Tue Sep 29 18:29:44 2009
@@ -142,11 +142,14 @@
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "toString");
- String str = this._lhsExp.toString() + "<" + this._rhsExp.toString();
+ //xiping 10/14/08
+ //String str = this._lhsExp.toString() + "<" + this._rhsExp.toString();
+ String str = this._lhsExp.toString() + " < " + this._rhsExp.toString();
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "toString");
return str;
}
+
}
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LessOrEqual.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LessOrEqual.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LessOrEqual.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LessOrEqual.java Tue Sep 29 18:29:44 2009
@@ -138,7 +138,9 @@
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "toString");
- String str = this._lhsExp.toString() + "<=" + this._rhsExp.toString();
+ //Xiping 10/14/08
+ //String str = this._lhsExp.toString() + "<=" + this._rhsExp.toString();
+ String str = this._lhsExp.toString() + " <= " + this._rhsExp.toString();
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "toString");
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalAnd.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalAnd.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalAnd.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalAnd.java Tue Sep 29 18:29:44 2009
@@ -118,10 +118,14 @@
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "toString");
- String str = this._lhsExp.toString() + "&&" + this._rhsExp.toString();
+ //Xiping 10/14/08
+ //String str = this._lhsExp.toString() + "&&" + this._rhsExp.toString();
+
+ String str = "(" + this._lhsExp.toString() + " && " + this._rhsExp.toString() + ")";
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "toString");
return str;
}
+
}
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalNot.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalNot.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalNot.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalNot.java Tue Sep 29 18:29:44 2009
@@ -125,12 +125,13 @@
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "toString");
- String str = "LogicalNot("+this._exp.toString() + ")";
-
+ //Xiping 03/19/2009
+ //String str = "LogicalNot("+this._exp.toString() + ")";
+ String str = "!("+this._exp.toString() + ")";
+
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "toString");
return str;
}
-
}
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalOr.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalOr.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalOr.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalOr.java Tue Sep 29 18:29:44 2009
@@ -118,16 +118,16 @@
return false;
}
-
+
+ //Xiping 10/14/08
public String toString()
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "toString");
- String str = this._lhsExp.toString() + " || " + this._rhsExp.toString();
+ String str = "(" + this._lhsExp.toString() + " || " + this._rhsExp.toString() + ")";
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "toString");
return str;
}
-
}
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalXor.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalXor.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalXor.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/LogicalXor.java Tue Sep 29 18:29:44 2009
@@ -124,8 +124,11 @@
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "toString");
- String str = "LogicalXor("+this._lhsExp.toString() + "," + this._rhsExp.toString() + ")";
+ //String str = "LogicalXor("+this._lhsExp.toString() + "," + this._rhsExp.toString() + ")";
+ //Xiping 10/14/08
+ String str = "(" + this._lhsExp.toString() + " ^ " + this._rhsExp.toString() + ")";
+
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "toString");
return str;
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Product.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Product.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Product.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Product.java Tue Sep 29 18:29:44 2009
@@ -25,6 +25,7 @@
package org.apache.imperius.spl.parser.expressions.impl;
import java.util.List;
+import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -177,6 +178,100 @@
// throw new SPLException("operand is null LHS="+o1+" RHS="+o2);
// }
// }
+
+ public static Number product(Vector o) {
+ Number[] operandArray = (Number[]) o.toArray(new Number[0]);
+ return product(operandArray);
+ }
+
+ public static Number product(Number[] o)
+ {
+ logger.entering(sourceClass, "product(Number[])");
+
+ Number result = null;
+ for (int i = 0; i < o.length; i++) {
+ if (i == 0) {
+ result = o[i];
+ } else {
+ result = new Double(result.doubleValue() * o[i].doubleValue());
+ }
+ }
+
+ logger.exiting(sourceClass, "product(Number[])");
+
+ return result;
+ }
+
+ public static Number product(Number o1, Number o2) throws SPLException
+ {
+ logger.entering(sourceClass, "evaluate");
+
+ Number[] o = new Number[2];
+ o[0] = o1;
+ o[1] = o2;
+
+ if((o1!=null)&&(o2!=null))
+ {
+
+ //if (resolvedType == TypeConstants.doubleType)
+ //{
+
+
+ Double result=new Double(o1.doubleValue() * o2.doubleValue());
+ if(logger.isLoggable(Level.FINE))
+ logger.fine("result "+result);
+ logger.exiting(sourceClass, "evaluate");
+
+ return result;
+ /* }
+ else if (resolvedType == TypeConstants.floatType)
+ {
+ logger.exiting(sourceClass, "evaluate");
+
+ Float result=new Float(o1.floatValue() * o2.floatValue());
+ if(logger.isLoggable(Level.FINE))
+ logger.fine("result "+result);
+
+ return result;
+ }
+ else if (resolvedType == TypeConstants.longType)
+ {
+ logger.exiting(sourceClass, "evaluate");
+
+ Long result=new Long(o1.longValue() * o2.longValue());
+ if(logger.isLoggable(Level.FINE))
+ logger.fine("result "+result);
+
+ return result;
+ }
+ else if (resolvedType == TypeConstants.intType)
+ {
+ logger.exiting(sourceClass, "evaluate");
+
+ Long result=new Long(o1.intValue() * o2.intValue());
+ if(logger.isLoggable(Level.FINE))
+ logger.fine("result "+result);
+
+ return result;
+ }
+ else
+ {
+ logger.exiting(sourceClass, "evaluate");
+
+ Integer result=new Integer(o1.byteValue() * o2.byteValue());
+ if(logger.isLoggable(Level.FINE))
+ logger.fine("result "+result);
+
+ return result;
+ }*/
+ }
+ else
+ {
+ logger.severe(Thread.currentThread().getName()+" "+"operand is null LHS="+o1+" RHS="+o2);
+
+ throw new SPLException("operand is null LHS="+o1+" RHS="+o2);
+ }
+ }
public boolean validate() throws SPLException
{
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/StringConstant.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/StringConstant.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/StringConstant.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/StringConstant.java Tue Sep 29 18:29:44 2009
@@ -29,12 +29,14 @@
import org.apache.imperius.spl.external.TypeConstants;
import org.apache.imperius.spl.parser.exceptions.SPLException;
import org.apache.imperius.spl.parser.expressions.ConstantExpression;
+import org.apache.imperius.spl.parser.expressions.StringExpression;
import org.apache.imperius.spl.parser.util.TypeInfo;
import org.apache.imperius.util.Messages;
import org.apache.imperius.util.SPLLogger;
-
-public class StringConstant extends ConstantExpression
+//Xiping 06/13/08
+//public class StringConstant extends ConstantExpression
+public class StringConstant extends ConstantExpression implements StringExpression
{
private String stringValue;
@@ -104,7 +106,9 @@
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "toString");
- String str=this.stringValue;
+ //xiping 03/18/2009
+ //String str=this.stringValue;
+ String str = "\"" + this.stringValue + "\"";
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "toString");
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/SubCollection.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/SubCollection.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/SubCollection.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/SubCollection.java Tue Sep 29 18:29:44 2009
@@ -31,14 +31,20 @@
import org.apache.imperius.spl.external.Expression;
import org.apache.imperius.spl.external.TypeConstants;
import org.apache.imperius.spl.parser.exceptions.SPLException;
+import org.apache.imperius.spl.parser.expressions.BooleanExpression;
import org.apache.imperius.spl.parser.expressions.DoubleArgumentExpression;
import org.apache.imperius.spl.parser.util.TypeResolver;
import org.apache.imperius.util.Messages;
import org.apache.imperius.util.SPLLogger;
+//public class SubCollection extends DoubleArgumentExpression implements
+// Expression
+
+// Xiping 09/15/2009
+// must implements BooleanExpression
public class SubCollection extends DoubleArgumentExpression implements
- Expression
+ BooleanExpression
{
// private BasicCollectionExpression basicCollection=null;
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Subtraction.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Subtraction.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Subtraction.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expressions/impl/Subtraction.java Tue Sep 29 18:29:44 2009
@@ -93,8 +93,46 @@
}
}
+ public static Number minus(Number o1) throws SPLException
+ {
+ logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "minus(Number)");
+
+ Number[] o = new Number[1];
+ o[0] = o1;
+
+ int resolvedType = TypeResolver.resolveType(o);
+
+ if (resolvedType == TypeConstants.doubleType)
+ {
+ double result = o1.doubleValue() * (-1);
+ logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "minus");
+
+ return new Double(result);
+ }
+ else if (resolvedType == TypeConstants.floatType)
+ {
+ float result = o1.floatValue() * (-1);
+ logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "minus");
+
+ return new Float(result);
+ }
+ else if (resolvedType == TypeConstants.longType)
+ {
+ long result = o1.longValue() * (-1);
+ logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "minus");
+
+ return new Long(result);
+ }
+ else
+ {
+ int result = o1.intValue() * (-1);
+ logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "minus");
+
+ return new Integer(result);
+ }
+ }
- private static Number minus(Number o1, Number o2) throws SPLException
+ public static Number minus(Number o1, Number o2) throws SPLException
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "minus");
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/factory/BuitInOperationExpressionFactory.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/factory/BuitInOperationExpressionFactory.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/factory/BuitInOperationExpressionFactory.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/factory/BuitInOperationExpressionFactory.java Tue Sep 29 18:29:44 2009
@@ -238,7 +238,10 @@
if (symTab.symbolExists(id1, recurse))
{
- Symbol symbol = symTab.getSymbol(id1);
+// TODO xiping
+// Collection c = symTab.getSymbol(id1);
+ Symbol symbol = (Symbol)symTab.getSymbol(id1);
+// Symbol symbol = null;
if (symbol instanceof MacroSymbol)
{
returnExpr = new MacroExpression((MacroSymbol) symbol,
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/factory/ExpressionFactory.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/factory/ExpressionFactory.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/factory/ExpressionFactory.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/factory/ExpressionFactory.java Tue Sep 29 18:29:44 2009
@@ -33,7 +33,11 @@
import org.apache.imperius.spl.parser.compiler.SPLTreeParserTokenTypes;
import org.apache.imperius.spl.parser.compiler.symboltable.SPLSymbolTable;
import org.apache.imperius.spl.parser.exceptions.SPLException;
-import org.apache.imperius.spl.parser.expression.primary.*;
+import org.apache.imperius.spl.parser.expression.primary.BasicCollectionExpression;
+import org.apache.imperius.spl.parser.expression.primary.CollectOperation;
+import org.apache.imperius.spl.parser.expression.primary.PostCollectExpression;
+import org.apache.imperius.spl.parser.expression.primary.PrimaryExpression;
+import org.apache.imperius.spl.parser.expression.primary.SelfExpression;
import org.apache.imperius.spl.parser.expressions.impl.Addition;
import org.apache.imperius.spl.parser.expressions.impl.AssignmentExpression;
import org.apache.imperius.spl.parser.expressions.impl.BooleanConstant;
@@ -50,6 +54,7 @@
import org.apache.imperius.spl.parser.expressions.impl.Less;
import org.apache.imperius.spl.parser.expressions.impl.LessOrEqual;
import org.apache.imperius.spl.parser.expressions.impl.LogicalAnd;
+import org.apache.imperius.spl.parser.expressions.impl.LogicalNot;
import org.apache.imperius.spl.parser.expressions.impl.LogicalOr;
import org.apache.imperius.spl.parser.expressions.impl.LogicalXor;
import org.apache.imperius.spl.parser.expressions.impl.LongConstant;
@@ -59,7 +64,6 @@
import org.apache.imperius.spl.parser.expressions.impl.StringConstant;
import org.apache.imperius.spl.parser.expressions.impl.Subtraction;
import org.apache.imperius.spl.parser.expressions.impl.UnaryMinusExpression;
-import org.apache.imperius.spl.parser.expressions.impl.UnaryNotExpression;
import org.apache.imperius.spl.parser.expressions.impl.UnaryPlusExpression;
import org.apache.imperius.util.Messages;
import org.apache.imperius.util.SPLLogger;
@@ -88,7 +92,7 @@
// System.out.println("creating expression " + e1.getClass() + " "+
// e2.getClass() + " " + type);
Expression returnExpr = null;
- List exprList = new ArrayList();
+ List exprList = new ArrayList(2); // DAW
exprList.add(e1);
exprList.add(e2);
@@ -176,7 +180,7 @@
Expression returnExpr = null;
- List exprList = new ArrayList();
+ List exprList = new ArrayList(1); // DAW
exprList.add(e1);
boolean validateExpr = true;
if (sTab.getSymbolTableType() == SPLSymbolTable.COLLECT)
@@ -194,7 +198,9 @@
break;
case SPLTreeParserTokenTypes.UNARY_NOT:
- returnExpr = new UnaryNotExpression(exprList, validateExpr);
+ //Xiping 06/12/08
+ //returnExpr = new UnaryNotExpression(exprList, validateExpr);
+ returnExpr = new LogicalNot(exprList, validateExpr);
}
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/AnchorMethodInvokeAction.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/AnchorMethodInvokeAction.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/AnchorMethodInvokeAction.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/AnchorMethodInvokeAction.java Tue Sep 29 18:29:44 2009
@@ -25,6 +25,7 @@
package org.apache.imperius.spl.parser.statements.actions.impl;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.logging.Logger;
@@ -104,25 +105,170 @@
}
}
+// public static void validateActualParameters(SPLSymbolTable symTab,
+// String classNameOrVariableName, String methodName, List pList)
+// throws SPLException
+// {
+//
+// // xiping's addition to support Java overloading, 06/19/09
+// Collection c = symTab.getSymbol(classNameOrVariableName + "." + methodName);
+// MethodSymbol methodSym = null;
+// for (Iterator it = c.iterator(); it.hasNext();) {
+// methodSym = (MethodSymbol) it.next();
+// List argTypeList = methodSym.getArgumentList();
+//
+// if (argTypeList.size() != pList.size()) {
+// continue;
+// }
+//
+// boolean notEqual = false;
+// for (int i = 0; i < argTypeList.size(); i++) {
+// Expression exp = (Expression)pList.get(i);
+// Argument arg = (Argument)argTypeList.get(i);
+// TypeInfo expDataType = exp.getType();
+// TypeInfo argDataType = arg.getType();
+//// if (expDataType.getIsArray() != argDataType.getIsArray() ||
+//// expDataType.getType() != argDataType.getType()) {
+// if (expDataType.getType() != argDataType.getType()) {
+// notEqual = true;
+// break;
+// }
+// }
+//
+// if (notEqual) {
+// continue;
+// }
+//
+// break;
+// }
+//
+// if (methodSym == null) {
+// throw new SPLException("actual parameter validation failed: " + methodName + "does not exit");
+// }
+// // end
+//
+// //Xiping 05/30/09 commented the original code below
+// List argTypeList = methodSym.getArgumentList();
+//
+// Iterator formalParamTypeIt = argTypeList.iterator();
+// Iterator actualParamIt = pList.iterator();
+// if (argTypeList.size() == pList.size())
+// {
+// while (formalParamTypeIt.hasNext() && actualParamIt.hasNext())
+// {
+// Argument formalArg = (Argument) formalParamTypeIt.next();
+// Expression actualParam = (Expression) actualParamIt.next();
+// if (!TypeResolver.isTypeAssignableForEquality(formalArg
+// .getType(), actualParam.getType())
+// /* || formalArg.getIsArray() != actualParam.isArray() */)
+//
+// {
+// throw new SPLException(
+// Messages
+// .getString("SPL_METHOD_PASSED_ARGUMENTS_EXCEPTION_MSG")
+// + " " + methodName);
+// }
+//
+// }
+// }
+// else
+// {
+// System.err
+// .println("Number of Formal and passed parameters don't match for method "
+// + methodName);
+// // throw new SPLException("Number of Formal and passed parameters don't match for method "
+// // + methodName);
+// }
+//
+// }
+
public static void validateActualParameters(SPLSymbolTable symTab,
String classNameOrVariableName, String methodName, List pList)
throws SPLException
{
- MethodSymbol methodSym = (MethodSymbol) symTab
- .getSymbol(classNameOrVariableName + "." + methodName);
+
+ // xiping's addition to support Java overloading, 06/19/09
+ Collection c = (Collection)symTab.getSymbol(classNameOrVariableName + "." + methodName);
+ MethodSymbol methodSym = null;
+ for (Iterator it = c.iterator(); it.hasNext();) {
+ methodSym = (MethodSymbol) it.next();
+ List argTypeList = methodSym.getArgumentList();
+
+ if (argTypeList.size() != pList.size()) {
+ continue;
+ }
+
+ boolean typeNotEqual = false;
+ for (int i = 0; i < argTypeList.size(); i++) {
+ Expression exp = (Expression)pList.get(i);
+ Argument arg = (Argument)argTypeList.get(i);
+ TypeInfo expDataType = exp.getType();
+ TypeInfo argDataType = arg.getType();
+// if (expDataType.getIsArray() != argDataType.getIsArray() ||
+// expDataType.getType() != argDataType.getType()) {
+ if (expDataType.getType() != argDataType.getType()) {
+ typeNotEqual = true;
+ break;
+ }
+ }
+
+ if (typeNotEqual) {
+ continue;
+ }
+
+ break;
+ }
+
+ if (methodSym == null) {
+ throw new SPLException("actual parameter validation failed: " + methodName + "does not exit");
+ }
+ // end
+
List argTypeList = methodSym.getArgumentList();
Iterator formalParamTypeIt = argTypeList.iterator();
Iterator actualParamIt = pList.iterator();
+
+ //Xiping 05/30/09
+ //1) argTypeList.size() will be different from pList.size()
+ //if there are overloaded methods in an anchor class.
+ //
+ //2) formalArg.getIsArray() is different from actualParam.isArray()
+ //if an argument passed in is of array return type as SPL does not
+ //carry return type info correctly except for collection expressions.
+ if (true)
+ {
+ while (formalParamTypeIt.hasNext() && actualParamIt.hasNext())
+ {
+ Argument formalArg = (Argument) formalParamTypeIt.next();
+ Expression actualParam = (Expression) actualParamIt.next();
+
+ if (!TypeResolver.isTypeAssignableForEquality(formalArg
+ .getType(), actualParam.getType()))
+ {
+ throw new SPLException(
+ Messages
+ .getString("SPL_METHOD_PASSED_ARGUMENTS_EXCEPTION_MSG")
+ + " " + methodName);
+ }
+
+ }
+ }
+
+
+ //Xiping 05/30/09 commented the original code below
+/*
if (argTypeList.size() == pList.size())
{
while (formalParamTypeIt.hasNext() && actualParamIt.hasNext())
{
Argument formalArg = (Argument) formalParamTypeIt.next();
Expression actualParam = (Expression) actualParamIt.next();
+
if (!TypeResolver.isTypeAssignableForEquality(formalArg
.getType(), actualParam.getType())
|| formalArg.getIsArray() != actualParam.isArray())
+
{
throw new SPLException(
Messages
@@ -132,6 +278,7 @@
}
}
+*/
else
{
System.err
@@ -258,6 +405,7 @@
return false;
}
+ // xiping's addition to support Java overloading, 06/19/09
public static Object invokeClassMethod(SPLSymbolTable symTab,
String className, String qualifier, String methodName,
List paramList, Object targetObject) throws SPLException
@@ -265,8 +413,39 @@
List parameterObjects = new ArrayList();
try
{
- MethodSymbol methodSym = (MethodSymbol) symTab.getSymbol(className
- + "." + methodName);
+ MethodSymbol methodSym = null;
+ Collection c = (Collection)symTab.getSymbol(className + "." + methodName);
+ for (Iterator it = c.iterator(); it.hasNext();) {
+ methodSym = (MethodSymbol) it.next();
+ List argTypeList = methodSym.getArgumentList();
+
+ if (argTypeList.size() != paramList.size()) {
+ continue;
+ }
+ boolean typeNotEqual = false;
+ for (int i = 0; i < argTypeList.size(); i++) {
+ Expression exp = (Expression)paramList.get(i);
+ ArgumentImpl arg = (ArgumentImpl)argTypeList.get(i);
+ TypeInfo expDataType = exp.getType();
+ TypeInfo argDataType = arg.getType();
+// if (expDataType.getIsArray() != argDataType.getIsArray() ||
+// expDataType.getType() != argDataType.getType()) {
+ if (expDataType.getType() != argDataType.getType()) {
+ typeNotEqual = true;
+ break;
+ }
+ }
+ if (typeNotEqual) {
+ continue;
+ }
+
+ break;
+ }
+
+ if (methodSym == null) {
+ throw new SPLException("invokeClassMethod failed: " + methodName + "does not exit");
+ }
+
List argTypeList = methodSym.getArgumentList();
for (int i = 0; i < paramList.size(); i++)
@@ -370,8 +549,16 @@
}
if(!isArgCreated)
{
- Argument arg = new ArgumentImpl(exp.getType().getType(),
- null, exp.isArray(), null);
+ //Xiping 05/29/09
+ //get isArray flag from the formal argument list if available
+ boolean flag = exp.isArray();
+ if(argTypeList != null && i < argTypeList.size()) {
+ flag = ((Argument)argTypeList.get(i)).getType().getIsArray();
+ }
+//
+ Argument arg = new ArgumentImpl(exp.getType().getType(),
+// null, exp.isArray(), null);
+ null, flag, null);
arg.setValue(result);
parameterObjects.add(arg);
}
@@ -405,4 +592,189 @@
}
}
+// public static Object invokeClassMethod(SPLSymbolTable symTab,
+// String className, String qualifier, String methodName,
+// List paramList, Object targetObject) throws SPLException
+// {
+//
+// // xiping's addition to support Java overloading, 06/19/09
+// // start
+// MethodSymbol methodSym = null;
+// Collection c = (Collection)symTab.getSymbol(className + "." + methodName);
+// for (Iterator it = c.iterator(); it.hasNext();) {
+// methodSym = (MethodSymbol) it.next();
+// List argTypeList = methodSym.getArgumentList();
+//
+// if (argTypeList.size() != paramList.size()) {
+// continue;
+// }
+// boolean typeNotEqual = false;
+// for (int i = 0; i < argTypeList.size(); i++) {
+// Expression exp = (Expression)paramList.get(i);
+// ArgumentImpl arg = (ArgumentImpl)argTypeList.get(i);
+// TypeInfo expDataType = exp.getType();
+// TypeInfo argDataType = arg.getType();
+//// if (expDataType.getIsArray() != argDataType.getIsArray() ||
+//// expDataType.getType() != argDataType.getType()) {
+// if (expDataType.getType() != argDataType.getType()) {
+// typeNotEqual = true;
+// break;
+// }
+// }
+// if (typeNotEqual) {
+// continue;
+// }
+//
+// break;
+// }
+//
+// if (methodSym == null) {
+// throw new SPLException("invokeClassMethod failed: " + methodName + "does not exit");
+// }
+// // end
+//
+// List parameterObjects = new ArrayList();
+// try
+// {
+// List argTypeList = methodSym.getArgumentList();
+//
+// for (int i = 0; i < paramList.size(); i++)
+// {
+// Expression exp = (Expression) paramList.get(i);
+//
+// if (exp instanceof AssignmentExpression) {
+// //System.out.println("assignment Expression");
+// Expression lhsExpression = null;
+// Expression rhsExpression = null;
+//
+// AssignmentExpression assignmentExpression = (AssignmentExpression) exp;
+// if (assignmentExpression.getLHSExpression() instanceof org.apache.imperius.spl.external.Expression)
+// {
+// lhsExpression = (Expression) assignmentExpression
+// .getLHSExpression();
+// }
+// if (assignmentExpression.getRHSExpression() instanceof org.apache.imperius.spl.external.Expression) {
+// rhsExpression = (Expression) assignmentExpression
+// .getRHSExpression();
+// }
+// if ((lhsExpression == null) || (rhsExpression == null))
+// {
+// logger
+// .severe("LHS or RHS or argument in method call is null : "
+// + lhsExpression.toString()
+// + " "
+// + rhsExpression);
+//
+// throw new SPLException(Messages.getString(
+// "SPL_ASSIGNMENT_EXP_EXCEPTION_MSG",
+// new Object[] { lhsExpression, rhsExpression }));
+// }
+// //System.out.println("lhsExpression class "+ lhsExpression.getClass());
+// //System.out.println("lhsExpression getPropertyName() "+ ((PrimaryExpression) lhsExpression).getPropertyName());
+// // ((PrimaryExpression)lhsExpression).getPropertyName();
+//
+// String keyName = ((PrimaryExpression) lhsExpression)
+// .getclassNameOrInstanceVariableName();
+// //System.out.println("argument name= " + keyName);
+//
+// Object keyValue = rhsExpression.evaluate();
+// //System.out.println("argument value= " + keyValue);
+//
+// String referenceTypeName = "";
+//
+// if (TypeResolver.isReference(rhsExpression.getType()))
+// {
+//
+// referenceTypeName = rhsExpression.getType()
+// .getReferenceTypeName();
+//
+// }
+//
+// if (keyValue != null)
+// {
+// Argument arg = new ArgumentImpl(rhsExpression.getType()
+// .getType(), keyName, rhsExpression.isArray(),
+// referenceTypeName);
+// arg.setValue(keyValue);
+//
+// //System.out.println("created new arg :"+keyName+" "+keyValue.toString());
+// /*
+// * Expression expression=(Expression)pList.get(i); String
+// * nameAndValue=(String)expression.evaluate(); Key
+// */
+// parameterObjects.add(arg);
+// }
+//
+// }
+// else
+// {
+// Object result = exp.evaluate();
+// boolean isArgCreated = false;
+// if(argTypeList != null && argTypeList.size() > 0)
+// {
+// Argument tempArg = null;
+// if(i < argTypeList.size())
+// {
+// tempArg = (Argument)argTypeList.get(i);
+// if(TypeResolver.isReference(tempArg.getType()))
+// {
+// if (TypeResolver.OBJECT_STRING.equals(tempArg
+// .getType().getReferenceTypeName())
+// && TypeResolver.isString(exp.getType()))
+// {
+// Argument arg = new ArgumentImpl(tempArg
+// .getType().getType(), null, tempArg
+// .getType().getIsArray(),
+// TypeResolver.OBJECT_STRING);
+// arg.setValue(result);
+// parameterObjects.add(arg);
+// isArgCreated = true;
+// }
+// }
+// }
+// else
+// {
+// // throw exception
+// }
+// }
+// if(!isArgCreated)
+// {
+// //Xiping 05/29/09
+// Argument arg = new ArgumentImpl(exp.getType().getType(),
+// //null, exp.isArray(), null);
+// null, result.getClass().isArray(), null);
+// arg.setValue(result);
+//
+// parameterObjects.add(arg);
+// }
+// }
+// }
+//
+// Actuator ac = ActuatorFactory.getActuator();
+//
+// Object result = ac.invokeMethod(className, qualifier, targetObject,
+// methodName, parameterObjects);
+//
+// //System.out.println("method invokation complete : "+className+" "+qualifier+" "+methodName+" "+targetObject);
+// //System.out.println("method invokation result of invokation : "+result);
+//
+// // TO DO COMPARE RESULT WITH CONSTANT
+//
+// if (result == null)
+// result = "";
+//
+// return result;
+// }
+// catch (SPLException e)
+// {
+// logger.severe(e.getMessage());
+//
+// logger.exiting(sourceClass, Thread.currentThread().getName() + " "
+// + "execute");
+//
+// // return null;
+// throw e;
+// }
+// }
+
}
\ No newline at end of file
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ArrowActionBlock.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ArrowActionBlock.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ArrowActionBlock.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ArrowActionBlock.java Tue Sep 29 18:29:44 2009
@@ -57,6 +57,7 @@
* whole block returns failure. If the first block succeeds, the second
* block is evaluated and the whole block returns whatever the second block
* returns.
+ * @throws SPLException
*/
public boolean execute(Actuator ac) throws SPLException
{
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ConcurrentActionBlock.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ConcurrentActionBlock.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ConcurrentActionBlock.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ConcurrentActionBlock.java Tue Sep 29 18:29:44 2009
@@ -53,6 +53,7 @@
* If the block is of the form <action block> || <action block>, both blocks
* are evaluated concurrently and the whole block succeeds as soon as one of
* the two internal blocks succeeds.
+ * @throws SPLException
*/
public boolean execute(Actuator ac) throws SPLException
{
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ExtrinsicMethodInvokeAction.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ExtrinsicMethodInvokeAction.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ExtrinsicMethodInvokeAction.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/ExtrinsicMethodInvokeAction.java Tue Sep 29 18:29:44 2009
@@ -59,4 +59,8 @@
// return false;
}
+ //Xiping 06/13/08
+ public Expression getActionExpression() {
+ return _actionExpression;
+ }
}
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/LogicalAndActionBlock.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/LogicalAndActionBlock.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/LogicalAndActionBlock.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/LogicalAndActionBlock.java Tue Sep 29 18:29:44 2009
@@ -55,6 +55,7 @@
* If the block is of the form <action block> && <action block>, both blocks
* may be evaluated concurrently and the whole block succeeds if both
* internal blocks return success.
+ * @throws SPLException
*/
public boolean execute(Actuator ac) throws SPLException
{
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/LogicalOrActionBlock.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/LogicalOrActionBlock.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/LogicalOrActionBlock.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/actions/impl/LogicalOrActionBlock.java Tue Sep 29 18:29:44 2009
@@ -57,6 +57,7 @@
* second block is not evaluated. If the first block fails, the second block
* is evaluated and the whole block returns whatever the second block
* returns.
+ * @throws SPLException
*/
public boolean execute(Actuator ac) throws SPLException
{
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/DeclarationStatement.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/DeclarationStatement.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/DeclarationStatement.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/DeclarationStatement.java Tue Sep 29 18:29:44 2009
@@ -113,10 +113,15 @@
{
ConstantDefinition cd = (ConstantDefinition)constantList.get(i);
Expression e=cd.getInitExpr();
- logger.fine(Thread.currentThread().getName()+ "constant expression "+e.toString());
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+ "constant expression "+e.toString());
Object result = e.evaluate();
String constantSymbol = cd.getIdent();
+ // xiping's modification, 06/23/09
PropertySymbol constantSym = (PropertySymbol)symTab.getSymbol(constantSymbol);
+// Collection c = symTab.getSymbol(constantSymbol);
+// Iterator it = c.iterator();
+// PropertySymbol constantSym = (PropertySymbol)it.next();
if(logger.isLoggable(Level.FINE))
logger.fine(Thread.currentThread().getName()+"constantSym name"+ constantSym.getName()+" current value:"+constantSym.getValue()+" setting value to:"+result.toString());
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/ImportStatement.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/ImportStatement.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/ImportStatement.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/ImportStatement.java Tue Sep 29 18:29:44 2009
@@ -72,19 +72,20 @@
this._anchorClassName = anchorClassName;
this._expr = e;
this._symTab = symTab;
- _importInstanceInfoList=new ArrayList();
- Iterator it=importInstanceInfoList.iterator();
- while(it.hasNext())
- {
- InstanceInfo iinfo=(InstanceInfo)it.next();
- //NRJ
- //if(!iinfo.isCollectInstance())
- {
- this._importInstanceInfoList.add(iinfo);
- }
-
-
- }
+ _importInstanceInfoList=new ArrayList(importInstanceInfoList);
+// DAW 12/30/2008
+// Iterator it=importInstanceInfoList.iterator();
+// while(it.hasNext())
+// {
+// InstanceInfo iinfo=(InstanceInfo)it.next();
+// //NRJ
+// //if(!iinfo.isCollectInstance())
+// {
+// this._importInstanceInfoList.add(iinfo);
+// }
+//
+//
+// }
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "ImportStatement");
}
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/PolicyDefinition.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/PolicyDefinition.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/PolicyDefinition.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/PolicyDefinition.java Tue Sep 29 18:29:44 2009
@@ -195,9 +195,9 @@
"evaluating condition of Policy Definition");
}
conditionResult = (Boolean)_condition.evaluate();
- System.out.println(" "+"policy :"+_condition.toString());
+// System.out.println(" "+"policy :"+_condition.toString());
auditloggerString+=" "+"policy :"+_condition.toString()+"\n";
- System.out.println(" "+"result :"+conditionResult);
+// System.out.println(" "+"result :"+conditionResult);
auditloggerString+=" "+"result :"+conditionResult+"\n";
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/SPLPolicy.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/SPLPolicy.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/SPLPolicy.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/statements/impl/SPLPolicy.java Tue Sep 29 18:29:44 2009
@@ -39,7 +39,6 @@
import org.apache.imperius.spl.parser.exceptions.SPLException;
import org.apache.imperius.spl.parser.statements.EvaluationResults;
import org.apache.imperius.spl.parser.statements.PolicyStatement;
-import org.apache.imperius.spl.parser.statements.PolicyStatementResult;
import org.apache.imperius.util.SPLLogger;
@@ -77,26 +76,50 @@
}
- private ArrayList sortPoliciesByPriority(ArrayList list)
+// private ArrayList sortPoliciesByPriority(ArrayList list)
+// {
+// logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "sortPoliciesByPriority");
+//
+// for(int i=0; i<list.size(); i++)
+// {
+// for(int j=i+1; j<list.size()-1; j++)
+// {
+// PolicyStatement pStatement = (PolicyStatement)list.get(i);
+// PolicyStatement pStatementNext = (PolicyStatement)list.get(j);
+// if(pStatement.getPriority() < pStatementNext.getPriority())
+// {
+// PolicyStatement temp = pStatement;
+// pStatement = pStatementNext;
+// pStatementNext = temp;
+// }
+// }
+// }
+// logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "sortPoliciesByPriority");
+// return list;
+// }
+
+ //Changed by Xiping to comply with the CIM-SPL specification
+ private ArrayList sortPoliciesByPriority(ArrayList al)
{
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "sortPoliciesByPriority");
- for(int i=0; i<list.size(); i++)
- {
- for(int j=i+1; j<list.size()-1; j++)
- {
- PolicyStatement pStatement = (PolicyStatement)list.get(i);
+ ArrayList list = (ArrayList) al.clone();
+ ArrayList result = new ArrayList();
+ while (list.size() > 0) {
+ int index = 0;
+ for(int j = 1; j < list.size(); j++) {
+ PolicyStatement pStatement = (PolicyStatement)list.get(0);
PolicyStatement pStatementNext = (PolicyStatement)list.get(j);
- if(pStatement.getPriority() < pStatementNext.getPriority())
- {
- PolicyStatement temp = pStatement;
- pStatement = pStatementNext;
- pStatementNext = temp;
+ if(pStatement.getPriority() > pStatementNext.getPriority()) {
+ index = j;
}
}
+ result.add(list.remove(index));
}
+
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "sortPoliciesByPriority");
- return list;
+
+ return result;
}
@@ -111,7 +134,7 @@
// Iterate over the List of maps
EvaluationResults result = new EvaluationResults();
Iterator instanceMapKeyIt = instanceMap.keySet().iterator();
- System.out.println("Iterating over all instances of Anchor class");
+// System.out.println("Iterating over all instances of Anchor class");
while(instanceMapKeyIt.hasNext())
{
@@ -326,7 +349,7 @@
while(it.hasNext()){
Object inst=it.next();
//InstanceInfo iinfo=new InstanceInfo(targetclassnm,inst);
- List instanceInfoList=new ArrayList();
+// List instanceInfoList=new ArrayList();
//instanceInfoList.add(iinfo);
Map objMap=new HashMap();
@@ -444,7 +467,7 @@
}
else
{
- List instanceInfoList = new ArrayList();
+ List instanceInfoList = new ArrayList(1); // DAW
instanceInfoList.add(instanceInfo);
instMap.put(anchorClassName, instanceInfoList);
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/KeyStringToMapConvertor.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/KeyStringToMapConvertor.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/KeyStringToMapConvertor.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/KeyStringToMapConvertor.java Tue Sep 29 18:29:44 2009
@@ -44,9 +44,8 @@
logger.entering(sourceClass,Thread.currentThread().getName()+" "+ "getMapOfKeys");
String keyString = keyValues;
-
- logger.fine(Thread.currentThread().getName() + "keyString : "
- + keyString);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+"keyString "+keyString);
//System.out.println("keyValues " + keyValues);
keyString = keyString.substring(keyString.indexOf('.') + 1);
@@ -84,8 +83,8 @@
}
//System.out.println(" keyString keyName keyValue " + keyString + " "+ keyName + " " + keyValue);
//System.out.println("CIMObjectInstance keyName: "+ keyName.toLowerCase() + " keyValue : " + keyValue);
- logger.fine(Thread.currentThread().getName() + "keyName, keyValue "
- + keyName + " , " + keyValue);
+ if(logger.isLoggable(Level.FINE))
+ logger.fine(Thread.currentThread().getName()+"keyName, keyValue "+keyName+ " , "+ keyValue);
keysMap.put(keyName, keyValue);
}
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/TypeResolver.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/TypeResolver.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/TypeResolver.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/util/TypeResolver.java Tue Sep 29 18:29:44 2009
@@ -277,7 +277,13 @@
if (isString(rightType) && isAssignableFromString(leftType))
{
res = true;
- }
+ }
+
+ // xiping's test 09-24-09
+ else if (isNumeric(rightType) && isAssignableFromNumeric(leftType)) {
+ res = true;
+ }
+ //
else if(isReference(rightType))
{
res = true;
@@ -303,6 +309,29 @@
return false;
}
+
+ // xiping 09-24-09
+ private static boolean isAssignableFromNumeric(TypeInfo type) {
+ String typeName = type.getReferenceTypeName();
+ if (typeName != null) {
+ try {
+ Class clazz = type.getClass().forName(typeName);
+ return clazz.isAssignableFrom(Byte.class) ||
+ clazz.isAssignableFrom(Short.class) ||
+ clazz.isAssignableFrom(Integer.class) ||
+ clazz.isAssignableFrom(Long.class) ||
+ clazz.isAssignableFrom(Float.class) ||
+ clazz.isAssignableFrom(Double.class);
+ } catch (ClassNotFoundException e) {
+ ;
+ }
+ }
+ return false;
+
+ }
+
+ //
+
public static boolean isTypeAssignableForRelation(TypeInfo leftType,
TypeInfo rightType)
{
Modified: incubator/imperius/trunk/imperius-splcore/src/test/java/org/apache/imperius/spl/tests/StringExpressionTest.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/test/java/org/apache/imperius/spl/tests/StringExpressionTest.java?rev=820060&r1=820059&r2=820060&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/test/java/org/apache/imperius/spl/tests/StringExpressionTest.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/test/java/org/apache/imperius/spl/tests/StringExpressionTest.java Tue Sep 29 18:29:44 2009
@@ -794,17 +794,17 @@
s3 = s3.substring(1, s3.length()-1);
assertTrue(
- new Integer(s1.length()).compareTo(e1.evaluate()) == 0);
+ new Integer(s1.length()).compareTo((Integer)e1.evaluate()) == 0);
assertTrue(
- new Integer(s2.length()).compareTo(e2.evaluate()) == 0);
+ new Integer(s2.length()).compareTo((Integer)e2.evaluate()) == 0);
assertTrue(
- new Integer(s3.length()).compareTo(e3.evaluate()) == 0);
+ new Integer(s3.length()).compareTo((Integer)e3.evaluate()) == 0);
assertTrue(
- new Integer(s1.length()).compareTo(eps1.evaluate()) == 0);
+ new Integer(s1.length()).compareTo((Integer)eps1.evaluate()) == 0);
assertTrue(
- new Integer(s2.length()).compareTo(eps2.evaluate()) == 0);
+ new Integer(s2.length()).compareTo((Integer)eps2.evaluate()) == 0);
assertTrue(
- new Integer(s3.length()).compareTo(eps3.evaluate()) == 0);
+ new Integer(s3.length()).compareTo((Integer)eps3.evaluate()) == 0);
} catch (SPLException e) {
fail("Received evaluation exception " + e.getMessage());
} catch (Exception e) {
@@ -841,8 +841,8 @@
v.add(propertySensor3);
Expression eps1 = new ReplaceSubstring(v,true);
s4 = s4.substring(1, s4.length()-1);
- assertTrue(s4.compareTo(e1.evaluate()) == 0);
- assertTrue(s4.compareTo(eps1.evaluate()) == 0);
+ assertTrue(s4.compareTo((String)e1.evaluate()) == 0);
+ assertTrue(s4.compareTo((String)eps1.evaluate()) == 0);
} catch (SPLException e) {
fail("Received evaluation exception " + e.getMessage());
} catch (Exception e) {
Added: incubator/imperius/trunk/javaspl-samples/PolicyStorage.DAT
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/PolicyStorage.DAT?rev=820060&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/imperius/trunk/javaspl-samples/PolicyStorage.DAT
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/imperius/trunk/javaspl-samples/SPL.log.lck
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/SPL.log.lck?rev=820060&view=auto
==============================================================================
(empty)
Added: incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius20.spl
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius20.spl?rev=820060&view=auto
==============================================================================
--- incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius20.spl (added)
+++ incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius20.spl Tue Sep 29 18:29:44 2009
@@ -0,0 +1,13 @@
+Import Class java.lang.StringBuilder:stringBuilder;
+Strategy Execute_All_Applicable;
+Policy
+{
+ Condition
+ {
+ 4 == 4
+ }
+ Decision
+ {
+ stringBuilder.append("O1")
+ }
+}:2;
Added: incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius22.spl
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius22.spl?rev=820060&view=auto
==============================================================================
--- incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius22.spl (added)
+++ incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius22.spl Tue Sep 29 18:29:44 2009
@@ -0,0 +1,20 @@
+Import Class java.util.List:list1;
+Import Class java.util.Properties:props;
+Strategy Execute_All_Applicable;
+Policy
+{
+ Declaration {
+ list = ["1", "2"];
+ }
+ Condition
+ {
+ // this is not correct syntax of SPL
+ // use BasicCollection as defined above instead of list1.
+ // inCollection("1", list1)
+ inCollection("1", list)
+ }
+ Decision
+ {
+ props.get("foo")
+ }
+}:1;
\ No newline at end of file
Added: incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius23.spl
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius23.spl?rev=820060&view=auto
==============================================================================
--- incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius23.spl (added)
+++ incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius23.spl Tue Sep 29 18:29:44 2009
@@ -0,0 +1,13 @@
+Import Class java.util.Properties:props;
+Strategy Execute_All_Applicable;
+Policy
+{
+ Condition
+ {
+ props.getProperty("bar") == "abc" && props.getProperty("foo","bar") == "def"
+ }
+ Decision
+ {
+ props.getProperty("foo")
+ }
+}:1;
\ No newline at end of file
Added: incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius24.spl
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius24.spl?rev=820060&view=auto
==============================================================================
--- incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius24.spl (added)
+++ incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius24.spl Tue Sep 29 18:29:44 2009
@@ -0,0 +1,15 @@
+Import Class java.util.Properties : props;
+Import Class org.apache.imperius.javaspl.samples.bugfix.SimpleBean1 : b1;
+Import Class org.apache.imperius.javaspl.samples.bugfix.SimpleBean2 : b2;
+Strategy Execute_All_Applicable;
+Policy
+{
+ Condition
+ {
+ props.getProperty("bar") == "abc" && props.getProperty("foo","bar") == "def"
+ }
+ Decision
+ {
+ b2.print(b1.id)
+ }
+}:1;
\ No newline at end of file
Added: incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius25.spl
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius25.spl?rev=820060&view=auto
==============================================================================
--- incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius25.spl (added)
+++ incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius25.spl Tue Sep 29 18:29:44 2009
@@ -0,0 +1,13 @@
+Import Class org.apache.imperius.javaspl.samples.bugfix.MyList:list1;
+Strategy Execute_All_Applicable;
+Policy
+{
+ Condition
+ {
+ list1.toString() == "something"
+ }
+ Decision
+ {
+ list1.toString()
+ }
+}:1;
Added: incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius26.spl
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius26.spl?rev=820060&view=auto
==============================================================================
--- incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius26.spl (added)
+++ incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius26.spl Tue Sep 29 18:29:44 2009
@@ -0,0 +1,13 @@
+Import Class java.util.Properties:list1;
+Strategy Execute_All_Applicable;
+Policy
+{
+ Condition
+ {
+ list1.get("Foo").toString() == "something"
+ }
+ Decision
+ {
+ list1.toString()
+ }
+}:1;
Added: incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius28.spl
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius28.spl?rev=820060&view=auto
==============================================================================
--- incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius28.spl (added)
+++ incubator/imperius/trunk/javaspl-samples/resources/samples/bugfix/policies/Imperius28.spl Tue Sep 29 18:29:44 2009
@@ -0,0 +1,12 @@
+Import Class org.apache.imperius.javaspl.samples.bugfix.ByteArrayFactory:baf;
+Strategy Execute_All_Applicable;
+Policy
+{
+ Condition
+ {
+ baf.takeByteArray(baf.getByteArray())
+ }
+ Decision {
+ baf.getByteArray(1, 2)
+ }
+}:1;
Added: incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/Bar.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/Bar.java?rev=820060&view=auto
==============================================================================
--- incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/Bar.java (added)
+++ incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/Bar.java Tue Sep 29 18:29:44 2009
@@ -0,0 +1,7 @@
+package org.apache.imperius.javaspl.samples.bugfix;
+
+public class Bar {
+ public String toString() {
+ return "something";
+ }
+}
Added: incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/ByteArrayFactory.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/ByteArrayFactory.java?rev=820060&view=auto
==============================================================================
--- incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/ByteArrayFactory.java (added)
+++ incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/ByteArrayFactory.java Tue Sep 29 18:29:44 2009
@@ -0,0 +1,64 @@
+package org.apache.imperius.javaspl.samples.bugfix;
+
+public class ByteArrayFactory {
+ private byte x[];
+ private int y;
+
+ public ByteArrayFactory(byte[] array) {
+ x = array;
+ }
+
+ public int getByteArray(int b) {
+ return b;
+ }
+
+ public boolean takeByteArray(int barray) {
+ return (barray > 0 ? true : false);
+ }
+
+ public byte[] getByteArray() {
+ return x;
+ }
+
+ public byte[] getByteArray(int a1, int a2) {
+ x[0] = (byte)a1;
+ x[1] = (byte)a2;
+ return x;
+ }
+
+ public boolean takeByteArray(byte[] barray) {
+ return (barray[0] + barray[1] > 0 ? true : false);
+ }
+
+ public String getByteArray(String s) {
+ return s;
+ }
+
+ public boolean takeByteArray(String s) {
+ return (s.equals("test") ? true : false);
+ }
+
+ public boolean takeByteArray(int[] barray) {
+ return (barray[0] + barray[1] > 0 ? true : false);
+ }
+
+ public int[] getByteArray(double var) {
+ int[] xx = new int[2];
+ xx[0] = x[0];
+ xx[1] = x[1];
+
+ return xx;
+ }
+
+ public void setValueY(int value) {
+ y = value;
+ }
+}
+
+//public interface ByteArrayFactory {
+//
+// public byte[] getByteArray();
+//
+// public boolean takeByteArray(byte[] barray);
+//
+//}
Added: incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/MyList.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/MyList.java?rev=820060&view=auto
==============================================================================
--- incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/MyList.java (added)
+++ incubator/imperius/trunk/javaspl-samples/src/main/java/org/apache/imperius/javaspl/samples/bugfix/MyList.java Tue Sep 29 18:29:44 2009
@@ -0,0 +1,14 @@
+package org.apache.imperius.javaspl.samples.bugfix;
+
+import java.util.ArrayList;
+
+/**
+ *
+ * @author xwang
+ *
+ */
+public class MyList extends ArrayList {
+ public String toString(){
+ return "something";
+ }
+}