You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2009/01/23 07:32:46 UTC
svn commit: r736963 [8/21] - in /ibatis/trunk/java/ibatis-3:
ibatis-3-compat/src/main/java/com/ibatis/common/jdbc/
ibatis-3-compat/src/main/java/com/ibatis/common/resources/
ibatis-3-compat/src/main/java/com/ibatis/common/util/
ibatis-3-compat/src/main...
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlContext.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlContext.java?rev=736963&r1=736962&r2=736963&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlContext.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlContext.java Thu Jan 22 22:32:36 2009
@@ -34,554 +34,507 @@
/**
* This class defines the execution context for an OGNL expression
+ *
* @author Luke Blanshard (blanshlu@netscape.net)
* @author Drew Davidson (drew@ognl.org)
*/
-public class OgnlContext extends Object implements Map
-{
- public static final String CONTEXT_CONTEXT_KEY = "context";
- public static final String ROOT_CONTEXT_KEY = "root";
- public static final String THIS_CONTEXT_KEY = "this";
- public static final String TRACE_EVALUATIONS_CONTEXT_KEY = "_traceEvaluations";
- public static final String LAST_EVALUATION_CONTEXT_KEY = "_lastEvaluation";
- public static final String KEEP_LAST_EVALUATION_CONTEXT_KEY = "_keepLastEvaluation";
- public static final String CLASS_RESOLVER_CONTEXT_KEY = "_classResolver";
- public static final String TYPE_CONVERTER_CONTEXT_KEY = "_typeConverter";
- public static final String MEMBER_ACCESS_CONTEXT_KEY = "_memberAccess";
-
- private static final String PROPERTY_KEY_PREFIX = "ognl";
- private static boolean DEFAULT_TRACE_EVALUATIONS = false;
- private static boolean DEFAULT_KEEP_LAST_EVALUATION = false;
-
- public static final ClassResolver DEFAULT_CLASS_RESOLVER = new DefaultClassResolver();
- public static final TypeConverter DEFAULT_TYPE_CONVERTER = new DefaultTypeConverter();
- public static final MemberAccess DEFAULT_MEMBER_ACCESS = new DefaultMemberAccess(false);
-
- private static Map RESERVED_KEYS = new HashMap(11);
-
- private Object root;
- private Object currentObject;
- private Node currentNode;
- private boolean traceEvaluations = DEFAULT_TRACE_EVALUATIONS;
- private Evaluation rootEvaluation;
- private Evaluation currentEvaluation;
- private Evaluation lastEvaluation;
- private boolean keepLastEvaluation = DEFAULT_KEEP_LAST_EVALUATION;
- private Map values = new HashMap(23);
- private ClassResolver classResolver = DEFAULT_CLASS_RESOLVER;
- private TypeConverter typeConverter = DEFAULT_TYPE_CONVERTER;
- private MemberAccess memberAccess = DEFAULT_MEMBER_ACCESS;
-
- static
- {
- String s;
-
- RESERVED_KEYS.put(CONTEXT_CONTEXT_KEY, null);
- RESERVED_KEYS.put(ROOT_CONTEXT_KEY, null);
- RESERVED_KEYS.put(THIS_CONTEXT_KEY, null);
- RESERVED_KEYS.put(TRACE_EVALUATIONS_CONTEXT_KEY, null);
- RESERVED_KEYS.put(LAST_EVALUATION_CONTEXT_KEY, null);
- RESERVED_KEYS.put(KEEP_LAST_EVALUATION_CONTEXT_KEY, null);
- RESERVED_KEYS.put(CLASS_RESOLVER_CONTEXT_KEY, null);
- RESERVED_KEYS.put(TYPE_CONVERTER_CONTEXT_KEY, null);
- RESERVED_KEYS.put(MEMBER_ACCESS_CONTEXT_KEY, null);
-
- try {
- if ((s = System.getProperty(PROPERTY_KEY_PREFIX + ".traceEvaluations")) != null) {
- DEFAULT_TRACE_EVALUATIONS = Boolean.valueOf(s.trim()).booleanValue();
- }
- if ((s = System.getProperty(PROPERTY_KEY_PREFIX + ".keepLastEvaluation")) != null) {
- DEFAULT_KEEP_LAST_EVALUATION = Boolean.valueOf(s.trim()).booleanValue();
- }
- } catch (SecurityException ex) {
- // restricted access environment, just keep defaults
- }
- }
-
- /**
- Constructs a new OgnlContext with the default class resolver, type converter and
- member access.
- */
- public OgnlContext()
- {
- super();
- }
-
- /**
- Constructs a new OgnlContext with the given class resolver, type converter and
- member access. If any of these parameters is null the default will be used.
- */
- public OgnlContext(ClassResolver classResolver, TypeConverter typeConverter, MemberAccess memberAccess)
- {
- this();
- if (classResolver != null) {
- this.classResolver = classResolver;
- }
- if (typeConverter != null) {
- this.typeConverter = typeConverter;
- }
- if (memberAccess != null) {
- this.memberAccess = memberAccess;
- }
- }
-
- public OgnlContext(Map values)
- {
- super();
- this.values = values;
- }
-
- public OgnlContext(ClassResolver classResolver, TypeConverter typeConverter, MemberAccess memberAccess, Map values)
- {
- this(classResolver, typeConverter, memberAccess);
- this.values = values;
- }
-
- public void setValues(Map value)
- {
- for (Iterator it = value.keySet().iterator(); it.hasNext();) {
- Object k = it.next();
-
- values.put(k, value.get(k));
- }
- }
-
- public Map getValues()
- {
- return values;
- }
-
- public void setClassResolver(ClassResolver value)
- {
- if (value == null) {
- throw new IllegalArgumentException("cannot set ClassResolver to null");
- }
- classResolver = value;
- }
-
- public ClassResolver getClassResolver()
- {
- return classResolver;
- }
-
- public void setTypeConverter(TypeConverter value)
- {
- if (value == null) {
- throw new IllegalArgumentException("cannot set TypeConverter to null");
- }
- typeConverter = value;
- }
-
- public TypeConverter getTypeConverter()
- {
- return typeConverter;
- }
-
- public void setMemberAccess(MemberAccess value)
- {
- if (value == null) {
- throw new IllegalArgumentException("cannot set MemberAccess to null");
- }
- memberAccess = value;
- }
-
- public MemberAccess getMemberAccess()
- {
- return memberAccess;
- }
-
- public void setRoot(Object value)
- {
- root = value;
- }
-
- public Object getRoot()
- {
- return root;
- }
-
- public boolean getTraceEvaluations()
- {
- return traceEvaluations;
- }
-
- public void setTraceEvaluations(boolean value)
- {
- traceEvaluations = value;
- }
-
- public Evaluation getLastEvaluation()
- {
- return lastEvaluation;
- }
-
- public void setLastEvaluation(Evaluation value)
- {
- lastEvaluation = value;
- }
-
- /**
- This method can be called when the last evaluation has been used
- and can be returned for reuse in the free pool maintained by the
- runtime. This is not a necessary step, but is useful for keeping
- memory usage down. This will recycle the last evaluation and then
- set the last evaluation to null.
- */
- public void recycleLastEvaluation()
- {
- OgnlRuntime.getEvaluationPool().recycleAll(lastEvaluation);
- lastEvaluation = null;
- }
-
- /**
- Returns true if the last evaluation that was done on this
- context is retained and available through <code>getLastEvaluation()</code>.
- The default is true.
- */
- public boolean getKeepLastEvaluation()
- {
- return keepLastEvaluation;
- }
-
- /**
- Sets whether the last evaluation that was done on this
- context is retained and available through <code>getLastEvaluation()</code>.
- The default is true.
- */
- public void setKeepLastEvaluation(boolean value)
- {
- keepLastEvaluation = value;
- }
-
- public void setCurrentObject(Object value)
- {
- currentObject = value;
- }
-
- public Object getCurrentObject()
- {
- return currentObject;
- }
-
- public void setCurrentNode(Node value)
- {
- currentNode = value;
- }
-
- public Node getCurrentNode()
- {
- return currentNode;
- }
-
- /**
- Gets the current Evaluation from the top of the stack.
- This is the Evaluation that is in process of evaluating.
- */
- public Evaluation getCurrentEvaluation()
- {
- return currentEvaluation;
- }
-
- public void setCurrentEvaluation(Evaluation value)
- {
- currentEvaluation = value;
- }
-
- /**
- Gets the root of the evaluation stack.
- This Evaluation contains the node representing
- the root expression and the source is the root
- source object.
- */
- public Evaluation getRootEvaluation()
- {
- return rootEvaluation;
- }
-
- public void setRootEvaluation(Evaluation value)
- {
- rootEvaluation = value;
- }
-
- /**
- Returns the Evaluation at the relative index given. This should be
- zero or a negative number as a relative reference back up the evaluation
- stack. Therefore getEvaluation(0) returns the current Evaluation.
- */
- public Evaluation getEvaluation(int relativeIndex)
- {
- Evaluation result = null;
-
- if (relativeIndex <= 0) {
- result = currentEvaluation;
- while ((++relativeIndex < 0) && (result != null)) {
- result = result.getParent();
- }
- }
- return result;
- }
-
- /**
- Pushes a new Evaluation onto the stack. This is done
- before a node evaluates. When evaluation is complete
- it should be popped from the stack via <code>popEvaluation()</code>.
- */
- public void pushEvaluation(Evaluation value)
- {
- if (currentEvaluation != null) {
- currentEvaluation.addChild(value);
+public class OgnlContext extends Object implements Map {
+ public static final String CONTEXT_CONTEXT_KEY = "context";
+ public static final String ROOT_CONTEXT_KEY = "root";
+ public static final String THIS_CONTEXT_KEY = "this";
+ public static final String TRACE_EVALUATIONS_CONTEXT_KEY = "_traceEvaluations";
+ public static final String LAST_EVALUATION_CONTEXT_KEY = "_lastEvaluation";
+ public static final String KEEP_LAST_EVALUATION_CONTEXT_KEY = "_keepLastEvaluation";
+ public static final String CLASS_RESOLVER_CONTEXT_KEY = "_classResolver";
+ public static final String TYPE_CONVERTER_CONTEXT_KEY = "_typeConverter";
+ public static final String MEMBER_ACCESS_CONTEXT_KEY = "_memberAccess";
+
+ private static final String PROPERTY_KEY_PREFIX = "ognl";
+ private static boolean DEFAULT_TRACE_EVALUATIONS = false;
+ private static boolean DEFAULT_KEEP_LAST_EVALUATION = false;
+
+ public static final ClassResolver DEFAULT_CLASS_RESOLVER = new DefaultClassResolver();
+ public static final TypeConverter DEFAULT_TYPE_CONVERTER = new DefaultTypeConverter();
+ public static final MemberAccess DEFAULT_MEMBER_ACCESS = new DefaultMemberAccess(false);
+
+ private static Map RESERVED_KEYS = new HashMap(11);
+
+ private Object root;
+ private Object currentObject;
+ private Node currentNode;
+ private boolean traceEvaluations = DEFAULT_TRACE_EVALUATIONS;
+ private Evaluation rootEvaluation;
+ private Evaluation currentEvaluation;
+ private Evaluation lastEvaluation;
+ private boolean keepLastEvaluation = DEFAULT_KEEP_LAST_EVALUATION;
+ private Map values = new HashMap(23);
+ private ClassResolver classResolver = DEFAULT_CLASS_RESOLVER;
+ private TypeConverter typeConverter = DEFAULT_TYPE_CONVERTER;
+ private MemberAccess memberAccess = DEFAULT_MEMBER_ACCESS;
+
+ static {
+ String s;
+
+ RESERVED_KEYS.put(CONTEXT_CONTEXT_KEY, null);
+ RESERVED_KEYS.put(ROOT_CONTEXT_KEY, null);
+ RESERVED_KEYS.put(THIS_CONTEXT_KEY, null);
+ RESERVED_KEYS.put(TRACE_EVALUATIONS_CONTEXT_KEY, null);
+ RESERVED_KEYS.put(LAST_EVALUATION_CONTEXT_KEY, null);
+ RESERVED_KEYS.put(KEEP_LAST_EVALUATION_CONTEXT_KEY, null);
+ RESERVED_KEYS.put(CLASS_RESOLVER_CONTEXT_KEY, null);
+ RESERVED_KEYS.put(TYPE_CONVERTER_CONTEXT_KEY, null);
+ RESERVED_KEYS.put(MEMBER_ACCESS_CONTEXT_KEY, null);
+
+ try {
+ if ((s = System.getProperty(PROPERTY_KEY_PREFIX + ".traceEvaluations")) != null) {
+ DEFAULT_TRACE_EVALUATIONS = Boolean.valueOf(s.trim()).booleanValue();
+ }
+ if ((s = System.getProperty(PROPERTY_KEY_PREFIX + ".keepLastEvaluation")) != null) {
+ DEFAULT_KEEP_LAST_EVALUATION = Boolean.valueOf(s.trim()).booleanValue();
+ }
+ } catch (SecurityException ex) {
+ // restricted access environment, just keep defaults
+ }
+ }
+
+ /**
+ * Constructs a new OgnlContext with the default class resolver, type converter and
+ * member access.
+ */
+ public OgnlContext() {
+ super();
+ }
+
+ /**
+ * Constructs a new OgnlContext with the given class resolver, type converter and
+ * member access. If any of these parameters is null the default will be used.
+ */
+ public OgnlContext(ClassResolver classResolver, TypeConverter typeConverter, MemberAccess memberAccess) {
+ this();
+ if (classResolver != null) {
+ this.classResolver = classResolver;
+ }
+ if (typeConverter != null) {
+ this.typeConverter = typeConverter;
+ }
+ if (memberAccess != null) {
+ this.memberAccess = memberAccess;
+ }
+ }
+
+ public OgnlContext(Map values) {
+ super();
+ this.values = values;
+ }
+
+ public OgnlContext(ClassResolver classResolver, TypeConverter typeConverter, MemberAccess memberAccess, Map values) {
+ this(classResolver, typeConverter, memberAccess);
+ this.values = values;
+ }
+
+ public void setValues(Map value) {
+ for (Iterator it = value.keySet().iterator(); it.hasNext();) {
+ Object k = it.next();
+
+ values.put(k, value.get(k));
+ }
+ }
+
+ public Map getValues() {
+ return values;
+ }
+
+ public void setClassResolver(ClassResolver value) {
+ if (value == null) {
+ throw new IllegalArgumentException("cannot set ClassResolver to null");
+ }
+ classResolver = value;
+ }
+
+ public ClassResolver getClassResolver() {
+ return classResolver;
+ }
+
+ public void setTypeConverter(TypeConverter value) {
+ if (value == null) {
+ throw new IllegalArgumentException("cannot set TypeConverter to null");
+ }
+ typeConverter = value;
+ }
+
+ public TypeConverter getTypeConverter() {
+ return typeConverter;
+ }
+
+ public void setMemberAccess(MemberAccess value) {
+ if (value == null) {
+ throw new IllegalArgumentException("cannot set MemberAccess to null");
+ }
+ memberAccess = value;
+ }
+
+ public MemberAccess getMemberAccess() {
+ return memberAccess;
+ }
+
+ public void setRoot(Object value) {
+ root = value;
+ }
+
+ public Object getRoot() {
+ return root;
+ }
+
+ public boolean getTraceEvaluations() {
+ return traceEvaluations;
+ }
+
+ public void setTraceEvaluations(boolean value) {
+ traceEvaluations = value;
+ }
+
+ public Evaluation getLastEvaluation() {
+ return lastEvaluation;
+ }
+
+ public void setLastEvaluation(Evaluation value) {
+ lastEvaluation = value;
+ }
+
+ /**
+ * This method can be called when the last evaluation has been used
+ * and can be returned for reuse in the free pool maintained by the
+ * runtime. This is not a necessary step, but is useful for keeping
+ * memory usage down. This will recycle the last evaluation and then
+ * set the last evaluation to null.
+ */
+ public void recycleLastEvaluation() {
+ OgnlRuntime.getEvaluationPool().recycleAll(lastEvaluation);
+ lastEvaluation = null;
+ }
+
+ /**
+ * Returns true if the last evaluation that was done on this
+ * context is retained and available through <code>getLastEvaluation()</code>.
+ * The default is true.
+ */
+ public boolean getKeepLastEvaluation() {
+ return keepLastEvaluation;
+ }
+
+ /**
+ * Sets whether the last evaluation that was done on this
+ * context is retained and available through <code>getLastEvaluation()</code>.
+ * The default is true.
+ */
+ public void setKeepLastEvaluation(boolean value) {
+ keepLastEvaluation = value;
+ }
+
+ public void setCurrentObject(Object value) {
+ currentObject = value;
+ }
+
+ public Object getCurrentObject() {
+ return currentObject;
+ }
+
+ public void setCurrentNode(Node value) {
+ currentNode = value;
+ }
+
+ public Node getCurrentNode() {
+ return currentNode;
+ }
+
+ /**
+ * Gets the current Evaluation from the top of the stack.
+ * This is the Evaluation that is in process of evaluating.
+ */
+ public Evaluation getCurrentEvaluation() {
+ return currentEvaluation;
+ }
+
+ public void setCurrentEvaluation(Evaluation value) {
+ currentEvaluation = value;
+ }
+
+ /**
+ * Gets the root of the evaluation stack.
+ * This Evaluation contains the node representing
+ * the root expression and the source is the root
+ * source object.
+ */
+ public Evaluation getRootEvaluation() {
+ return rootEvaluation;
+ }
+
+ public void setRootEvaluation(Evaluation value) {
+ rootEvaluation = value;
+ }
+
+ /**
+ * Returns the Evaluation at the relative index given. This should be
+ * zero or a negative number as a relative reference back up the evaluation
+ * stack. Therefore getEvaluation(0) returns the current Evaluation.
+ */
+ public Evaluation getEvaluation(int relativeIndex) {
+ Evaluation result = null;
+
+ if (relativeIndex <= 0) {
+ result = currentEvaluation;
+ while ((++relativeIndex < 0) && (result != null)) {
+ result = result.getParent();
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Pushes a new Evaluation onto the stack. This is done
+ * before a node evaluates. When evaluation is complete
+ * it should be popped from the stack via <code>popEvaluation()</code>.
+ */
+ public void pushEvaluation(Evaluation value) {
+ if (currentEvaluation != null) {
+ currentEvaluation.addChild(value);
+ } else {
+ setRootEvaluation(value);
+ }
+ setCurrentEvaluation(value);
+ }
+
+ /**
+ * Pops the current Evaluation off of the top of the stack.
+ * This is done after a node has completed its evaluation.
+ */
+ public Evaluation popEvaluation() {
+ Evaluation result;
+
+ result = currentEvaluation;
+ setCurrentEvaluation(result.getParent());
+ if (currentEvaluation == null) {
+ setLastEvaluation(getKeepLastEvaluation() ? result : null);
+ setRootEvaluation(null);
+ setCurrentNode(null);
+ }
+ return result;
+ }
+
+ /*================= Map interface =================*/
+ public int size() {
+ return values.size();
+ }
+
+ public boolean isEmpty() {
+ return values.isEmpty();
+ }
+
+ public boolean containsKey(Object key) {
+ return values.containsKey(key);
+ }
+
+ public boolean containsValue(Object value) {
+ return values.containsValue(value);
+ }
+
+ public Object get(Object key) {
+ Object result;
+
+ if (RESERVED_KEYS.containsKey(key)) {
+ if (key.equals(OgnlContext.THIS_CONTEXT_KEY)) {
+ result = getCurrentObject();
+ } else {
+ if (key.equals(OgnlContext.ROOT_CONTEXT_KEY)) {
+ result = getRoot();
} else {
- setRootEvaluation(value);
- }
- setCurrentEvaluation(value);
- }
-
- /**
- Pops the current Evaluation off of the top of the stack.
- This is done after a node has completed its evaluation.
- */
- public Evaluation popEvaluation()
- {
- Evaluation result;
-
- result = currentEvaluation;
- setCurrentEvaluation(result.getParent());
- if (currentEvaluation == null) {
- setLastEvaluation(getKeepLastEvaluation() ? result : null);
- setRootEvaluation(null);
- setCurrentNode(null);
- }
- return result;
- }
-
- /*================= Map interface =================*/
- public int size()
- {
- return values.size();
- }
-
- public boolean isEmpty()
- {
- return values.isEmpty();
- }
-
- public boolean containsKey(Object key)
- {
- return values.containsKey(key);
- }
-
- public boolean containsValue(Object value)
- {
- return values.containsValue(value);
- }
-
- public Object get(Object key)
- {
- Object result;
-
- if (RESERVED_KEYS.containsKey(key)) {
- if (key.equals(OgnlContext.THIS_CONTEXT_KEY)) {
- result = getCurrentObject();
+ if (key.equals(OgnlContext.CONTEXT_CONTEXT_KEY)) {
+ result = this;
+ } else {
+ if (key.equals(OgnlContext.TRACE_EVALUATIONS_CONTEXT_KEY)) {
+ result = getTraceEvaluations() ? Boolean.TRUE : Boolean.FALSE;
} else {
- if (key.equals(OgnlContext.ROOT_CONTEXT_KEY)) {
- result = getRoot();
+ if (key.equals(OgnlContext.LAST_EVALUATION_CONTEXT_KEY)) {
+ result = getLastEvaluation();
+ } else {
+ if (key.equals(OgnlContext.KEEP_LAST_EVALUATION_CONTEXT_KEY)) {
+ result = getKeepLastEvaluation() ? Boolean.TRUE : Boolean.FALSE;
} else {
- if (key.equals(OgnlContext.CONTEXT_CONTEXT_KEY)) {
- result = this;
+ if (key.equals(OgnlContext.CLASS_RESOLVER_CONTEXT_KEY)) {
+ result = getClassResolver();
+ } else {
+ if (key.equals(OgnlContext.TYPE_CONVERTER_CONTEXT_KEY)) {
+ result = getTypeConverter();
} else {
- if (key.equals(OgnlContext.TRACE_EVALUATIONS_CONTEXT_KEY)) {
- result = getTraceEvaluations() ? Boolean.TRUE : Boolean.FALSE;
- } else {
- if (key.equals(OgnlContext.LAST_EVALUATION_CONTEXT_KEY)) {
- result = getLastEvaluation();
- } else {
- if (key.equals(OgnlContext.KEEP_LAST_EVALUATION_CONTEXT_KEY)) {
- result = getKeepLastEvaluation() ? Boolean.TRUE : Boolean.FALSE;
- } else {
- if (key.equals(OgnlContext.CLASS_RESOLVER_CONTEXT_KEY)) {
- result = getClassResolver();
- } else {
- if (key.equals(OgnlContext.TYPE_CONVERTER_CONTEXT_KEY)) {
- result = getTypeConverter();
- } else {
- if (key.equals(OgnlContext.MEMBER_ACCESS_CONTEXT_KEY)) {
- result = getMemberAccess();
- } else {
- throw new IllegalArgumentException("unknown reserved key '" + key + "'");
- }
- }
- }
- }
- }
- }
+ if (key.equals(OgnlContext.MEMBER_ACCESS_CONTEXT_KEY)) {
+ result = getMemberAccess();
+ } else {
+ throw new IllegalArgumentException("unknown reserved key '" + key + "'");
+ }
}
+ }
}
+ }
}
- } else {
- result = values.get(key);
+ }
}
- return result;
- }
-
- public Object put(Object key, Object value)
- {
- Object result;
-
- if (RESERVED_KEYS.containsKey(key)) {
- if (key.equals(OgnlContext.THIS_CONTEXT_KEY)) {
- result = getCurrentObject();
- setCurrentObject(value);
+ }
+ } else {
+ result = values.get(key);
+ }
+ return result;
+ }
+
+ public Object put(Object key, Object value) {
+ Object result;
+
+ if (RESERVED_KEYS.containsKey(key)) {
+ if (key.equals(OgnlContext.THIS_CONTEXT_KEY)) {
+ result = getCurrentObject();
+ setCurrentObject(value);
+ } else {
+ if (key.equals(OgnlContext.ROOT_CONTEXT_KEY)) {
+ result = getRoot();
+ setRoot(value);
+ } else {
+ if (key.equals(OgnlContext.CONTEXT_CONTEXT_KEY)) {
+ throw new IllegalArgumentException("can't change " + OgnlContext.CONTEXT_CONTEXT_KEY + " in context");
+ } else {
+ if (key.equals(OgnlContext.TRACE_EVALUATIONS_CONTEXT_KEY)) {
+ result = getTraceEvaluations() ? Boolean.TRUE : Boolean.FALSE;
+ setTraceEvaluations(OgnlOps.booleanValue(value));
} else {
- if (key.equals(OgnlContext.ROOT_CONTEXT_KEY)) {
- result = getRoot();
- setRoot(value);
+ if (key.equals(OgnlContext.LAST_EVALUATION_CONTEXT_KEY)) {
+ result = getLastEvaluation();
+ lastEvaluation = (Evaluation) value;
+ } else {
+ if (key.equals(OgnlContext.KEEP_LAST_EVALUATION_CONTEXT_KEY)) {
+ result = getKeepLastEvaluation() ? Boolean.TRUE : Boolean.FALSE;
+ setKeepLastEvaluation(OgnlOps.booleanValue(value));
} else {
- if (key.equals(OgnlContext.CONTEXT_CONTEXT_KEY)) {
- throw new IllegalArgumentException("can't change " + OgnlContext.CONTEXT_CONTEXT_KEY + " in context");
+ if (key.equals(OgnlContext.CLASS_RESOLVER_CONTEXT_KEY)) {
+ result = getClassResolver();
+ setClassResolver((ClassResolver) value);
+ } else {
+ if (key.equals(OgnlContext.TYPE_CONVERTER_CONTEXT_KEY)) {
+ result = getTypeConverter();
+ setTypeConverter((TypeConverter) value);
} else {
- if (key.equals(OgnlContext.TRACE_EVALUATIONS_CONTEXT_KEY)) {
- result = getTraceEvaluations() ? Boolean.TRUE : Boolean.FALSE;
- setTraceEvaluations(OgnlOps.booleanValue(value));
- } else {
- if (key.equals(OgnlContext.LAST_EVALUATION_CONTEXT_KEY)) {
- result = getLastEvaluation();
- lastEvaluation = (Evaluation)value;
- } else {
- if (key.equals(OgnlContext.KEEP_LAST_EVALUATION_CONTEXT_KEY)) {
- result = getKeepLastEvaluation() ? Boolean.TRUE : Boolean.FALSE;
- setKeepLastEvaluation(OgnlOps.booleanValue(value));
- } else {
- if (key.equals(OgnlContext.CLASS_RESOLVER_CONTEXT_KEY)) {
- result = getClassResolver();
- setClassResolver((ClassResolver)value);
- } else {
- if (key.equals(OgnlContext.TYPE_CONVERTER_CONTEXT_KEY)) {
- result = getTypeConverter();
- setTypeConverter((TypeConverter)value);
- } else {
- if (key.equals(OgnlContext.MEMBER_ACCESS_CONTEXT_KEY)) {
- result = getMemberAccess();
- setMemberAccess((MemberAccess)value);
- } else {
- throw new IllegalArgumentException("unknown reserved key '" + key + "'");
- }
- }
- }
- }
- }
- }
+ if (key.equals(OgnlContext.MEMBER_ACCESS_CONTEXT_KEY)) {
+ result = getMemberAccess();
+ setMemberAccess((MemberAccess) value);
+ } else {
+ throw new IllegalArgumentException("unknown reserved key '" + key + "'");
+ }
}
+ }
}
+ }
}
- } else {
- result = values.put(key, value);
+ }
}
- return result;
+ }
+ } else {
+ result = values.put(key, value);
}
+ return result;
+ }
- public Object remove(Object key)
- {
- Object result;
+ public Object remove(Object key) {
+ Object result;
- if (RESERVED_KEYS.containsKey(key)) {
- if (key.equals(OgnlContext.THIS_CONTEXT_KEY)) {
- result = getCurrentObject();
- setCurrentObject(null);
+ if (RESERVED_KEYS.containsKey(key)) {
+ if (key.equals(OgnlContext.THIS_CONTEXT_KEY)) {
+ result = getCurrentObject();
+ setCurrentObject(null);
+ } else {
+ if (key.equals(OgnlContext.ROOT_CONTEXT_KEY)) {
+ result = getRoot();
+ setRoot(null);
+ } else {
+ if (key.equals(OgnlContext.CONTEXT_CONTEXT_KEY)) {
+ throw new IllegalArgumentException("can't remove " + OgnlContext.CONTEXT_CONTEXT_KEY + " from context");
+ } else {
+ if (key.equals(OgnlContext.TRACE_EVALUATIONS_CONTEXT_KEY)) {
+ throw new IllegalArgumentException("can't remove " + OgnlContext.TRACE_EVALUATIONS_CONTEXT_KEY + " from context");
} else {
- if (key.equals(OgnlContext.ROOT_CONTEXT_KEY)) {
- result = getRoot();
- setRoot(null);
+ if (key.equals(OgnlContext.LAST_EVALUATION_CONTEXT_KEY)) {
+ result = lastEvaluation;
+ setLastEvaluation(null);
+ } else {
+ if (key.equals(OgnlContext.KEEP_LAST_EVALUATION_CONTEXT_KEY)) {
+ throw new IllegalArgumentException("can't remove " + OgnlContext.KEEP_LAST_EVALUATION_CONTEXT_KEY + " from context");
} else {
- if (key.equals(OgnlContext.CONTEXT_CONTEXT_KEY)) {
- throw new IllegalArgumentException("can't remove " + OgnlContext.CONTEXT_CONTEXT_KEY + " from context");
+ if (key.equals(OgnlContext.CLASS_RESOLVER_CONTEXT_KEY)) {
+ result = getClassResolver();
+ setClassResolver(null);
+ } else {
+ if (key.equals(OgnlContext.TYPE_CONVERTER_CONTEXT_KEY)) {
+ result = getTypeConverter();
+ setTypeConverter(null);
} else {
- if (key.equals(OgnlContext.TRACE_EVALUATIONS_CONTEXT_KEY)) {
- throw new IllegalArgumentException("can't remove " + OgnlContext.TRACE_EVALUATIONS_CONTEXT_KEY + " from context");
- } else {
- if (key.equals(OgnlContext.LAST_EVALUATION_CONTEXT_KEY)) {
- result = lastEvaluation;
- setLastEvaluation(null);
- } else {
- if (key.equals(OgnlContext.KEEP_LAST_EVALUATION_CONTEXT_KEY)) {
- throw new IllegalArgumentException("can't remove " + OgnlContext.KEEP_LAST_EVALUATION_CONTEXT_KEY + " from context");
- } else {
- if (key.equals(OgnlContext.CLASS_RESOLVER_CONTEXT_KEY)) {
- result = getClassResolver();
- setClassResolver(null);
- } else {
- if (key.equals(OgnlContext.TYPE_CONVERTER_CONTEXT_KEY)) {
- result = getTypeConverter();
- setTypeConverter(null);
- } else {
- if (key.equals(OgnlContext.MEMBER_ACCESS_CONTEXT_KEY)) {
- result = getMemberAccess();
- setMemberAccess(null);
- } else {
- throw new IllegalArgumentException("unknown reserved key '" + key + "'");
- }
- }
- }
- }
- }
- }
+ if (key.equals(OgnlContext.MEMBER_ACCESS_CONTEXT_KEY)) {
+ result = getMemberAccess();
+ setMemberAccess(null);
+ } else {
+ throw new IllegalArgumentException("unknown reserved key '" + key + "'");
+ }
}
+ }
}
+ }
}
- } else {
- result = values.remove(key);
- }
- return result;
- }
-
- public void putAll(Map t)
- {
- for (Iterator it = t.keySet().iterator(); it.hasNext();) {
- Object k = it.next();
-
- put(k, t.get(k));
+ }
}
- }
-
- public void clear()
- {
- values.clear();
- setRoot(null);
- setCurrentObject(null);
- setRootEvaluation(null);
- setCurrentEvaluation(null);
- setLastEvaluation(null);
- setCurrentNode(null);
- setClassResolver(DEFAULT_CLASS_RESOLVER);
- setTypeConverter(DEFAULT_TYPE_CONVERTER);
- setMemberAccess(DEFAULT_MEMBER_ACCESS);
- }
-
- public Set keySet()
- {
- /* Should root, currentObject, classResolver, typeConverter & memberAccess be included here? */
- return values.keySet();
- }
-
- public Collection values()
- {
- /* Should root, currentObject, classResolver, typeConverter & memberAccess be included here? */
- return values.values();
- }
-
- public Set entrySet()
- {
- /* Should root, currentObject, classResolver, typeConverter & memberAccess be included here? */
- return values.entrySet();
- }
-
- public boolean equals(Object o)
- {
- return values.equals(o);
- }
-
- public int hashCode()
- {
- return values.hashCode();
- }
+ }
+ } else {
+ result = values.remove(key);
+ }
+ return result;
+ }
+
+ public void putAll(Map t) {
+ for (Iterator it = t.keySet().iterator(); it.hasNext();) {
+ Object k = it.next();
+
+ put(k, t.get(k));
+ }
+ }
+
+ public void clear() {
+ values.clear();
+ setRoot(null);
+ setCurrentObject(null);
+ setRootEvaluation(null);
+ setCurrentEvaluation(null);
+ setLastEvaluation(null);
+ setCurrentNode(null);
+ setClassResolver(DEFAULT_CLASS_RESOLVER);
+ setTypeConverter(DEFAULT_TYPE_CONVERTER);
+ setMemberAccess(DEFAULT_MEMBER_ACCESS);
+ }
+
+ public Set keySet() {
+ /* Should root, currentObject, classResolver, typeConverter & memberAccess be included here? */
+ return values.keySet();
+ }
+
+ public Collection values() {
+ /* Should root, currentObject, classResolver, typeConverter & memberAccess be included here? */
+ return values.values();
+ }
+
+ public Set entrySet() {
+ /* Should root, currentObject, classResolver, typeConverter & memberAccess be included here? */
+ return values.entrySet();
+ }
+
+ public boolean equals(Object o) {
+ return values.equals(o);
+ }
+
+ public int hashCode() {
+ return values.hashCode();
+ }
}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlException.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlException.java?rev=736963&r1=736962&r2=736963&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlException.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlException.java Thu Jan 22 22:32:36 2009
@@ -33,125 +33,120 @@
/**
* Superclass for OGNL exceptions, incorporating an optional encapsulated exception.
+ *
* @author Luke Blanshard (blanshlu@netscape.net)
* @author Drew Davidson (drew@ognl.org)
*/
-public class OgnlException extends Exception
-{
- /**
- * The root evaluation of the expression when the exception was thrown
- */
- private Evaluation evaluation;
-
- /**
- * Why this exception was thrown.
- * @serial
- */
- private Throwable reason;
-
- /** Constructs an OgnlException with no message or encapsulated exception. */
- public OgnlException()
- {
- this( null, null );
- }
-
- /**
- * Constructs an OgnlException with the given message but no encapsulated exception.
- * @param msg the exception's detail message
- */
- public OgnlException( String msg )
- {
- this( msg, null );
- }
-
- /**
- * Constructs an OgnlException with the given message and encapsulated exception.
- * @param msg the exception's detail message
- * @param reason the encapsulated exception
- */
- public OgnlException( String msg, Throwable reason )
- {
- super( msg );
- this.reason = reason;
- }
-
- /**
- * Returns the encapsulated exception, or null if there is none.
- * @return the encapsulated exception
- */
- public Throwable getReason()
- {
- return reason;
- }
-
- /**
- Returns the Evaluation that was the root evaluation when the exception was
- thrown.
- */
- public Evaluation getEvaluation()
- {
- return evaluation;
- }
-
- /**
- Sets the Evaluation that was current when this exception was thrown.
- */
- public void setEvaluation(Evaluation value)
- {
- evaluation = value;
- }
-
- /**
- * Returns a string representation of this exception.
- * @return a string representation of this exception
- */
- public String toString()
- {
- if ( reason == null )
- return super.toString();
- return super.toString() + " [" + reason + "]";
- }
-
-
- /**
- * Prints the stack trace for this (and possibly the encapsulated) exception on
- * System.err.
- */
- public void printStackTrace()
- {
- printStackTrace( System.err );
- }
-
- /**
- * Prints the stack trace for this (and possibly the encapsulated) exception on the
- * given print stream.
- */
- public void printStackTrace(java.io.PrintStream s)
- {
- synchronized (s)
- {
- super.printStackTrace(s);
- if ( reason != null ) {
- s.println( "/-- Encapsulated exception ------------\\" );
- reason.printStackTrace(s);
- s.println( "\\--------------------------------------/" );
- }
- }
- }
-
- /**
- * Prints the stack trace for this (and possibly the encapsulated) exception on the
- * given print writer.
- */
- public void printStackTrace(java.io.PrintWriter s)
- {
- synchronized (s)
- {
- super.printStackTrace(s);
- if ( reason != null ) {
- s.println( "/-- Encapsulated exception ------------\\" );
- reason.printStackTrace(s);
- s.println( "\\--------------------------------------/" );
+public class OgnlException extends Exception {
+ /**
+ * The root evaluation of the expression when the exception was thrown
+ */
+ private Evaluation evaluation;
+
+ /**
+ * Why this exception was thrown.
+ *
+ * @serial
+ */
+ private Throwable reason;
+
+ /**
+ * Constructs an OgnlException with no message or encapsulated exception.
+ */
+ public OgnlException() {
+ this(null, null);
+ }
+
+ /**
+ * Constructs an OgnlException with the given message but no encapsulated exception.
+ *
+ * @param msg the exception's detail message
+ */
+ public OgnlException(String msg) {
+ this(msg, null);
+ }
+
+ /**
+ * Constructs an OgnlException with the given message and encapsulated exception.
+ *
+ * @param msg the exception's detail message
+ * @param reason the encapsulated exception
+ */
+ public OgnlException(String msg, Throwable reason) {
+ super(msg);
+ this.reason = reason;
+ }
+
+ /**
+ * Returns the encapsulated exception, or null if there is none.
+ *
+ * @return the encapsulated exception
+ */
+ public Throwable getReason() {
+ return reason;
+ }
+
+ /**
+ * Returns the Evaluation that was the root evaluation when the exception was
+ * thrown.
+ */
+ public Evaluation getEvaluation() {
+ return evaluation;
+ }
+
+ /**
+ * Sets the Evaluation that was current when this exception was thrown.
+ */
+ public void setEvaluation(Evaluation value) {
+ evaluation = value;
+ }
+
+ /**
+ * Returns a string representation of this exception.
+ *
+ * @return a string representation of this exception
+ */
+ public String toString() {
+ if (reason == null)
+ return super.toString();
+ return super.toString() + " [" + reason + "]";
+ }
+
+
+ /**
+ * Prints the stack trace for this (and possibly the encapsulated) exception on
+ * System.err.
+ */
+ public void printStackTrace() {
+ printStackTrace(System.err);
+ }
+
+ /**
+ * Prints the stack trace for this (and possibly the encapsulated) exception on the
+ * given print stream.
+ */
+ public void printStackTrace(java.io.PrintStream s) {
+ synchronized (s) {
+ super.printStackTrace(s);
+ if (reason != null) {
+ s.println("/-- Encapsulated exception ------------\\");
+ reason.printStackTrace(s);
+ s.println("\\--------------------------------------/");
+ }
+ }
+ }
+
+ /**
+ * Prints the stack trace for this (and possibly the encapsulated) exception on the
+ * given print writer.
+ */
+ public void printStackTrace(java.io.PrintWriter s) {
+ synchronized (s) {
+ super.printStackTrace(s);
+ if (reason != null) {
+ s.println("/-- Encapsulated exception ------------\\");
+ reason.printStackTrace(s);
+ s.println("\\--------------------------------------/" );
}
}
}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlInvokePermission.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlInvokePermission.java?rev=736963&r1=736962&r2=736963&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlInvokePermission.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/ognl/OgnlInvokePermission.java Thu Jan 22 22:32:36 2009
@@ -30,7 +30,7 @@
//--------------------------------------------------------------------------
package org.apache.ibatis.ognl;
-import java.security.*;
+import java.security.BasicPermission;
/**
* BasicPermission subclass that defines a permission token for invoking
@@ -38,19 +38,17 @@
* constructors) and does not implement actions. It is similar in spirit
* to the {@link java.lang.reflect.ReflectPermission} class in that it
* guards access to methods.
+ *
* @author Luke Blanshard (blanshlu@netscape.net)
* @author Drew Davidson (drew@ognl.org)
*/
-public class OgnlInvokePermission extends BasicPermission
-{
- public OgnlInvokePermission(String name)
- {
- super(name);
- }
+public class OgnlInvokePermission extends BasicPermission {
+ public OgnlInvokePermission(String name) {
+ super(name);
+ }
- public OgnlInvokePermission(String name, String actions)
- {
- super(name, actions);
- }
+ public OgnlInvokePermission(String name, String actions) {
+ super(name, actions);
+ }
}