in ruta-core/src/main/java/org/apache/uima/ruta/RutaEnvironment.java [928:977]
public Object getLiteralValue(String var, Object value) {
if (ownsVariable(var)) {
MatchContext context = new MatchContext(owner);
Class<?> clazz = variableTypes.get(var);
if (value instanceof INumberExpression) {
INumberExpression ne = (INumberExpression) value;
if (clazz.equals(Integer.class)) {
return ne.getIntegerValue(context, null);
} else if (clazz.equals(Double.class)) {
return ne.getDoubleValue(context, null);
} else if (clazz.equals(Float.class)) {
return ne.getFloatValue(context, null);
} else if (clazz.equals(String.class)) {
return ne.getStringValue(context, null);
}
} else if (clazz.equals(String.class) && value instanceof IStringExpression) {
IStringExpression se = (IStringExpression) value;
return se.getStringValue(context, null);
} else if (clazz.equals(Boolean.class) && value instanceof IBooleanExpression) {
IBooleanExpression be = (IBooleanExpression) value;
return be.getBooleanValue(context, null);
}
if (clazz.equals(RutaWordList.class) && value instanceof LiteralWordListExpression) {
return value;
} else if (clazz.equals(RutaWordList.class) && value instanceof StringWordListExpression) {
return value;
} else if (clazz.equals(RutaWordList.class) && value instanceof String) {
return value;
} else if (clazz.equals(RutaTable.class) && value instanceof LiteralWordTableExpression) {
return value;
} else if (clazz.equals(RutaTable.class) && value instanceof StringWordTableExpression) {
return value;
} else if (clazz.equals(RutaTable.class) && value instanceof String) {
return value;
} else if (clazz.equals(List.class) && value instanceof ListExpression) {
List list = getList((ListExpression) value);
return list;
} else if (clazz.equals(Type.class) && value instanceof CommonToken) {
String typeName = ((CommonToken) value).getText();
return typeName;
} else if (clazz.equals(Type.class) && value instanceof SimpleTypeExpression) {
String typeName = ((SimpleTypeExpression) value).getTypeString();
return typeName;
}
return null;
} else {
return owner.getParent().getEnvironment().getLiteralValue(var, value);
}
}