|  | 
| 20 | 20 | import org.springframework.expression.EvaluationContext; | 
| 21 | 21 | import org.springframework.expression.EvaluationException; | 
| 22 | 22 | import org.springframework.expression.Expression; | 
| 23 |  | -import org.springframework.util.ObjectUtils; | 
| 24 | 23 | 
 | 
| 25 | 24 | /** | 
| 26 | 25 |  * Represents a template expression broken into pieces. Each piece will be an Expression but pure text parts to the | 
| @@ -58,27 +57,46 @@ public final String getExpressionString() { | 
| 58 | 57 | 	public String getValue() throws EvaluationException { | 
| 59 | 58 | 		StringBuilder sb = new StringBuilder(); | 
| 60 | 59 | 		for (Expression expression : this.expressions) { | 
| 61 |  | -			sb.append(ObjectUtils.getDisplayString(expression.getValue())); | 
|  | 60 | +			String value = expression.getValue(String.class); | 
|  | 61 | +			if (value != null) { | 
|  | 62 | +				sb.append(value); | 
|  | 63 | +			}	 | 
| 62 | 64 | 		} | 
| 63 | 65 | 		return sb.toString(); | 
| 64 | 66 | 	} | 
| 65 | 67 | 
 | 
| 66 |  | -	public String getValue(EvaluationContext context) throws EvaluationException { | 
|  | 68 | +	public String getValue(Object rootObject) throws EvaluationException { | 
| 67 | 69 | 		StringBuilder sb = new StringBuilder(); | 
| 68 | 70 | 		for (Expression expression : this.expressions) { | 
| 69 |  | -			sb.append(ObjectUtils.getDisplayString(expression.getValue(context))); | 
|  | 71 | +			String value = expression.getValue(rootObject, String.class); | 
|  | 72 | +			if (value != null) { | 
|  | 73 | +				sb.append(value); | 
|  | 74 | +			}	 | 
| 70 | 75 | 		} | 
| 71 | 76 | 		return sb.toString(); | 
| 72 | 77 | 	} | 
| 73 |  | -	 | 
| 74 |  | -	public String getValue(Object rootObject) throws EvaluationException { | 
|  | 78 | + | 
|  | 79 | +	public String getValue(EvaluationContext context) throws EvaluationException { | 
| 75 | 80 | 		StringBuilder sb = new StringBuilder(); | 
| 76 | 81 | 		for (Expression expression : this.expressions) { | 
| 77 |  | -			sb.append(ObjectUtils.getDisplayString(expression.getValue(rootObject))); | 
|  | 82 | +			String value = expression.getValue(context, String.class); | 
|  | 83 | +			if (value != null) { | 
|  | 84 | +				sb.append(value); | 
|  | 85 | +			} | 
| 78 | 86 | 		} | 
| 79 | 87 | 		return sb.toString(); | 
| 80 | 88 | 	} | 
| 81 | 89 | 
 | 
|  | 90 | +	public String getValue(EvaluationContext context, Object rootObject) throws EvaluationException { | 
|  | 91 | +		StringBuilder sb = new StringBuilder(); | 
|  | 92 | +		for (Expression expression : this.expressions) { | 
|  | 93 | +			String value = expression.getValue(context, rootObject, String.class); | 
|  | 94 | +			if (value != null) { | 
|  | 95 | +				sb.append(value); | 
|  | 96 | +			}				 | 
|  | 97 | +		} | 
|  | 98 | +		return sb.toString(); | 
|  | 99 | +	} | 
| 82 | 100 | 
 | 
| 83 | 101 | 	public Class getValueType(EvaluationContext context) { | 
| 84 | 102 | 		return String.class; | 
| @@ -124,14 +142,6 @@ public <T> T getValue(Object rootObject, Class<T> desiredResultType) throws Eval | 
| 124 | 142 | 		return ExpressionUtils.convert(null, value, desiredResultType); | 
| 125 | 143 | 	} | 
| 126 | 144 | 
 | 
| 127 |  | -	public String getValue(EvaluationContext context, Object rootObject) throws EvaluationException { | 
| 128 |  | -		StringBuilder sb = new StringBuilder(); | 
| 129 |  | -		for (Expression expression : this.expressions) { | 
| 130 |  | -			sb.append(ObjectUtils.getDisplayString(expression.getValue(context,rootObject))); | 
| 131 |  | -		} | 
| 132 |  | -		return sb.toString(); | 
| 133 |  | -	} | 
| 134 |  | - | 
| 135 | 145 | 	public <T> T getValue(EvaluationContext context, Object rootObject, Class<T> desiredResultType) | 
| 136 | 146 | 			throws EvaluationException { | 
| 137 | 147 | 		Object value = getValue(context,rootObject); | 
|  | 
0 commit comments