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 jn...@apache.org on 2008/01/10 17:12:20 UTC
svn commit: r610845 -
/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expression/primary/PrimaryExpression.java
Author: jneeraj
Date: Thu Jan 10 09:12:18 2008
New Revision: 610845
URL: http://svn.apache.org/viewvc?rev=610845&view=rev
Log:
Updated evaluate and validate methods to allow imported instances to be used in primary expressions
Modified:
incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expression/primary/PrimaryExpression.java
Modified: incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expression/primary/PrimaryExpression.java
URL: http://svn.apache.org/viewvc/incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expression/primary/PrimaryExpression.java?rev=610845&r1=610844&r2=610845&view=diff
==============================================================================
--- incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expression/primary/PrimaryExpression.java (original)
+++ incubator/imperius/trunk/imperius-splcore/src/main/java/org/apache/imperius/spl/parser/expression/primary/PrimaryExpression.java Thu Jan 10 09:12:18 2008
@@ -30,8 +30,8 @@
import org.apache.imperius.spl.parser.compiler.IdentPrimaryTuple;
import org.apache.imperius.spl.parser.compiler.symboltable.SPLSymbolTable;
import org.apache.imperius.spl.parser.compiler.symboltable.Symbol;
-import org.apache.imperius.spl.parser.exceptions.*;
-import org.apache.imperius.spl.parser.util.*;
+import org.apache.imperius.spl.parser.exceptions.SPLException;
+import org.apache.imperius.spl.parser.util.TypeInfo;
import org.apache.imperius.util.SPLLogger;
@@ -196,18 +196,26 @@
}
else // local constant
{
- boolean symbolExists = _symTab.symbolExists(_classNameOrInstanceVariableName, true);
- Symbol sym = _symTab.getSymbol(_classNameOrInstanceVariableName);
- if(!symbolExists)
- {
- throw new SPLException("Symbol " + _classNameOrInstanceVariableName + " does not exist");
- }
- _dataType.copy(sym.getType());
-// _isArray = sym.isArray();
- _referenceTypeName = sym.getReferenceTypeName();
-
+ boolean symbolExists = _symTab.symbolExists(_classNameOrInstanceVariableName, true);
+ if( symbolExists )
+ {
+ Symbol sym = _symTab.getSymbol(_classNameOrInstanceVariableName);
+ _dataType.copy(sym.getType());
+// _isArray = sym.isArray();
+ _referenceTypeName = sym.getReferenceTypeName();
+ }
+ else if(_symTab.getInstance(_classNameOrInstanceVariableName)!=null)
+ {
+ // validate! happens when the identifier is an import variable
+ }
+ else
+ {
+ throw new SPLException("Symbol " + _classNameOrInstanceVariableName + " does not exist");
+ }
+
}
+
logger.exiting(sourceClass,Thread.currentThread().getName()+" "+ "validate");
@@ -238,8 +246,18 @@
}
else
{
- Symbol sym = _symTab.getSymbol(_classNameOrInstanceVariableName);
- intermediateObject = sym.getValue();
+
+ if( _symTab.symbolExists(_classNameOrInstanceVariableName,false) )
+ {
+ Symbol sym = _symTab.getSymbol(_classNameOrInstanceVariableName);
+ intermediateObject = sym.getValue();
+ }
+ else
+ {
+ intermediateObject = _symTab.getInstance(_classNameOrInstanceVariableName);
+ }
+
+
}