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);
else
return substEvent.getSubstitutions().toString(getLocation(), expressionContext);
} else {
throw new Error("this shouldn't have happened");
}
}