// determine types
Class expressionType = possibleVariableAssignment.getSecond().getExprEvaluator().getType();
if (variableReader.getEventType() != null) {
if ((expressionType != null) && (!JavaClassHelper.isSubclassOrImplementsInterface(expressionType, variableReader.getEventType().getUnderlyingType()))) {
throw new VariableValueException("Variable '" + variableName
+ "' of declared event type '" + variableReader.getEventType().getName() + "' underlying type '" + variableReader.getEventType().getUnderlyingType().getName() +
"' cannot be assigned a value of type '" + expressionType.getName() + "'");
}
variableTypes.put(variableName, variableReader.getEventType().getUnderlyingType());
}