public Object getValue(ExpressionContext expressionContext) throws SAXException {
if (this.value instanceof JXTExpression)
return getExpressionValue((JXTExpression) this.value, expressionContext);
else if (this.value instanceof CopyAttribute) {
CopyAttribute copy = (CopyAttribute) this.value;
return copy.getValue();
} else if (this.value instanceof SubstituteAttribute) {
SubstituteAttribute substEvent = (SubstituteAttribute) this.value;
if (substEvent.getSubstitutions().size() == 1
&& substEvent.getSubstitutions().get(0) instanceof JXTExpression)
return getExpressionValue((JXTExpression) substEvent.getSubstitutions().get(0), expressionContext);