public String getSourceAccessor(final OgnlContext context, final Object target, final Object index) { // This method is called during OGNL's bytecode enhancement optimizations in order to determine better- // performing methods to access the properties of an object. It's been written trying to mimic // what is done at MapPropertyAccessor#getSourceAccessor() method, removing all the parts related to indexed // access, which do not apply to IVariablesMap implementations. context.setCurrentAccessor(IContext.class); context.setCurrentType(Object.class); return ".getVariable(" + index + ")"; }
public void setRoot(Object value) { _root = value; _accessorStack.clear(); _typeStack.clear(); _currentObject = value; if (_currentObject != null) { setCurrentType(_currentObject.getClass()); } }
public void setRoot(Object value) { _root = value; _accessorStack.clear(); _typeStack.clear(); _currentObject = value; if (_currentObject != null) { setCurrentType(_currentObject.getClass()); } }
public String toGetSourceString(OgnlContext context, Object target) { if (target != null) _getterClass = target.getClass(); if (_getterClass != null) { context.setCurrentType(_getterClass); } if (_parent == null || (_getterClass != null && _getterClass.isArray())) return ""; else return ExpressionCompiler.getRootExpression(this, target, context); }
public String toGetSourceString(OgnlContext context, Object target) { if (target != null) _getterClass = target.getClass(); if (_getterClass != null) { context.setCurrentType(_getterClass); } if (_parent == null || (_getterClass != null && _getterClass.isArray())) return ""; else return ExpressionCompiler.getRootExpression(this, target, context); }
public String getSourceSetter(OgnlContext context, Object target, Object index) { context.setCurrentAccessor(Map.class); context.setCurrentType(Object.class); String indexStr = index.toString(); if (String.class.isInstance(index)) { String key = (indexStr.indexOf('"') >= 0? indexStr.replaceAll("\"", "") : indexStr); if (key.equals("size")) return ""; else if (key.equals("keys") || key.equals("keySet")) return ""; else if (key.equals("values")) return ""; else if (key.equals("isEmpty")) return ""; } return ".put(" + indexStr + ", $3)"; } }
public String toGetSourceString(OgnlContext context, Object target) { try { String srcString = super.toGetSourceString(context, target); if (srcString == null || srcString.trim().length() < 1) srcString = "null"; context.setCurrentType(Boolean.TYPE); return "(! ognl.OgnlOps.booleanValue(" + srcString + ") )"; } catch (Throwable t) { throw OgnlOps.castToRuntime(t); } } }
public String toGetSourceString(OgnlContext context, Object target) { try { String srcString = super.toGetSourceString(context, target); if (srcString == null || srcString.trim().length() < 1) srcString = "null"; context.setCurrentType(Boolean.TYPE); return "(! ognl.OgnlOps.booleanValue(" + srcString + ") )"; } catch (Throwable t) { throw OgnlOps.castToRuntime(t); } } }
public String toGetSourceString(OgnlContext context, Object target) { try { String ret = ""; if (ASTConst.class.isInstance(_children[0])) ret = ((Boolean)getValueBody(context, target)).toString(); else ret = _children[0].toGetSourceString(context, target) + " instanceof " + targetType; context.setCurrentType(Boolean.TYPE); return ret; } catch (Throwable t) { throw OgnlOps.castToRuntime(t); } }
public String toGetSourceString(OgnlContext context, Object target) { try { String ret = ""; if (ASTConst.class.isInstance(_children[0])) ret = ((Boolean)getValueBody(context, target)).toString(); else ret = _children[0].toGetSourceString(context, target) + " instanceof " + targetType; context.setCurrentType(Boolean.TYPE); return ret; } catch (Throwable t) { throw OgnlOps.castToRuntime(t); } }
public String getSourceAccessor(OgnlContext context, Object target, Object index) { String indexStr = index.toString(); // need to convert to primitive for list index access // System.out.println("index class " + index.getClass() + " current type " + context.getCurrentType() + " current object class " + context.getCurrentObject().getClass()); if (context.getCurrentType() != null && !context.getCurrentType().isPrimitive() && Number.class.isAssignableFrom(context.getCurrentType())) { indexStr += "." + OgnlRuntime.getNumericValueGetter(context.getCurrentType()); } else if (context.getCurrentObject() != null && Number.class.isAssignableFrom(context.getCurrentObject().getClass()) && !context.getCurrentType().isPrimitive()) { // means it needs to be cast first as well String toString = String.class.isInstance(index) && context.getCurrentType() != Object.class ? "" : ".toString()"; indexStr = "ognl.OgnlOps#getIntValue(" + indexStr + toString + ")"; } context.setCurrentAccessor(target.getClass()); context.setCurrentType(target.getClass().getComponentType()); return "[" + indexStr + "]"; }
public String toGetSourceString(OgnlContext context, Object target) { try { String result = "ognl.OgnlOps.in( ($w) "; result += OgnlRuntime.getChildSource(context, target, _children[0]) + ", ($w) " + OgnlRuntime.getChildSource(context, target, _children[1]); result += ")"; context.setCurrentType(Boolean.TYPE); return result; } catch (NullPointerException e) { // expected to happen in some instances e.printStackTrace(); throw new UnsupportedCompilationException("evaluation resulted in null expression."); } catch (Throwable t) { throw OgnlOps.castToRuntime(t); } }
public String getSourceAccessor(OgnlContext context, Object target, Object name) { IBeanProvider provider = (IBeanProvider)target; String beanName = ((String)name).replaceAll("\"", ""); if (provider.canProvideBean(beanName)) { Class type = OgnlRuntime.getCompiler().getInterfaceClass(provider.getBean(beanName).getClass()); ExpressionCompiler.addCastString(context, "((" + type.getName() + ")"); context.setCurrentAccessor(IBeanProvider.class); context.setCurrentType(type); return ".getBean(" + name + "))"; } return super.getSourceAccessor(context, target, name); }
public String getSourceAccessor(OgnlContext context, Object target, Object name) { ListenerMap map = (ListenerMap) target; String listenerName = ((String)name).replaceAll("\"", ""); if (map.canProvideListener(listenerName)) { Class type = OgnlRuntime.getCompiler().getInterfaceClass(map.getListener(listenerName).getClass()); ExpressionCompiler.addCastString(context, "((" + type.getName() + ")"); context.setCurrentAccessor(ListenerMap.class); context.setCurrentType(type); return ".getListener(" + name + "))"; } return super.getSourceAccessor(context, target, name); }
public String getSourceAccessor(OgnlContext context, Object target, Object name) { ListenerMap map = (ListenerMap) target; String listenerName = ((String)name).replaceAll("\"", ""); if (map.canProvideListener(listenerName)) { Class type = OgnlRuntime.getCompiler().getInterfaceClass(map.getListener(listenerName).getClass()); ExpressionCompiler.addCastString(context, "((" + type.getName() + ")"); context.setCurrentAccessor(ListenerMap.class); context.setCurrentType(type); return ".getListener(" + name + "))"; } return super.getSourceAccessor(context, target, name); }
public String getSourceAccessor(OgnlContext context, Object target, Object name) { IBeanProvider provider = (IBeanProvider)target; String beanName = ((String)name).replaceAll("\"", ""); if (provider.canProvideBean(beanName)) { Class type = OgnlRuntime.getCompiler().getInterfaceClass(provider.getBean(beanName).getClass()); ExpressionCompiler.addCastString(context, "((" + type.getName() + ")"); context.setCurrentAccessor(IBeanProvider.class); context.setCurrentType(type); return ".getBean(" + name + "))"; } return super.getSourceAccessor(context, target, name); }
public String toGetSourceString(OgnlContext context, Object target) { try { Object obj = OgnlRuntime.getStaticField(context, className, fieldName); context.setCurrentObject(obj); _getterClass = getFieldClass(context); context.setCurrentType(_getterClass); } catch (Throwable t) { throw OgnlOps.castToRuntime(t); } return className + "." + fieldName; }
public String toSetSourceString(OgnlContext context, Object target) { try { Object obj = OgnlRuntime.getStaticField(context, className, fieldName); context.setCurrentObject(obj); _getterClass = getFieldClass(context); context.setCurrentType(_getterClass); } catch (Throwable t) { throw OgnlOps.castToRuntime(t); } return className + "." + fieldName; } }
public String toGetSourceString(OgnlContext context, Object target) { try { Object obj = OgnlRuntime.getStaticField(context, className, fieldName); context.setCurrentObject(obj); _getterClass = getFieldClass(context); context.setCurrentType(_getterClass); } catch (Throwable t) { throw OgnlOps.castToRuntime(t); } return className + "." + fieldName; }
public String toSetSourceString(OgnlContext context, Object target) { try { Object obj = OgnlRuntime.getStaticField(context, className, fieldName); context.setCurrentObject(obj); _getterClass = getFieldClass(context); context.setCurrentType(_getterClass); } catch (Throwable t) { throw OgnlOps.castToRuntime(t); } return className + "." + fieldName; } }