@Override public TypedValue getValueInternal(ExpressionState expressionState) throws EvaluationException { if (this.constant != null) { return this.constant; } else { Map<Object, Object> returnValue = new LinkedHashMap<>(); int childcount = getChildCount(); for (int c = 0; c < childcount; c++) { // TODO allow for key being PropertyOrFieldReference like Indexer on maps SpelNode keyChild = getChild(c++); Object key = null; if (keyChild instanceof PropertyOrFieldReference) { PropertyOrFieldReference reference = (PropertyOrFieldReference) keyChild; key = reference.getName(); } else { key = keyChild.getValue(expressionState); } Object value = getChild(c).getValue(expressionState); returnValue.put(key, value); } return new TypedValue(returnValue); } }
String mapKeyName = reference.getName(); mv.visitLdcInsn(mapKeyName);
@Override public TypedValue getValueInternal(ExpressionState expressionState) throws EvaluationException { if (this.constant != null) { return this.constant; } else { Map<Object, Object> returnValue = new LinkedHashMap<>(); int childcount = getChildCount(); for (int c = 0; c < childcount; c++) { // TODO allow for key being PropertyOrFieldReference like Indexer on maps SpelNode keyChild = getChild(c++); Object key = null; if (keyChild instanceof PropertyOrFieldReference) { PropertyOrFieldReference reference = (PropertyOrFieldReference) keyChild; key = reference.getName(); } else { key = keyChild.getValue(expressionState); } Object value = getChild(c).getValue(expressionState); returnValue.put(key, value); } return new TypedValue(returnValue); } }
key = ((PropertyOrFieldReference) keyChild).getName();
String mapKeyName = reference.getName(); mv.visitLdcInsn(mapKeyName);
index = reference.getName(); indexValue = new TypedValue(index);
key = ((PropertyOrFieldReference) keyChild).getName();
index = reference.getName(); indexValue = new TypedValue(index);
@Override public TypedValue getValueInternal(ExpressionState expressionState) throws EvaluationException { if (this.constant != null) { return this.constant; } else { Map<Object, Object> returnValue = new LinkedHashMap<>(); int childcount = getChildCount(); for (int c = 0; c < childcount; c++) { // TODO allow for key being PropertyOrFieldReference like Indexer on maps SpelNode keyChild = getChild(c++); Object key = null; if (keyChild instanceof PropertyOrFieldReference) { PropertyOrFieldReference reference = (PropertyOrFieldReference) keyChild; key = reference.getName(); } else { key = keyChild.getValue(expressionState); } Object value = getChild(c).getValue(expressionState); returnValue.put(key, value); } return new TypedValue(returnValue); } }
String mapKeyName = reference.getName(); mv.visitLdcInsn(mapKeyName);
key = ((PropertyOrFieldReference) keyChild).getName();
index = reference.getName(); indexValue = new TypedValue(index);