public static ConstantExpression convertToExpression(DataValue dv) { String dataValueStr = dv.serialise(); dataValueStr = dataValueStr.substring(dataValueStr.indexOf(",") + 1); if (dv instanceof DvCodedText) { DvCodedText dvCT = (DvCodedText) dv; return new CodedTextConstant(dvCT.getValue(), dvCT.getDefiningCode()); } else if (dv instanceof DvOrdinal) { DvOrdinal dvOrdinal = (DvOrdinal) dv; return new OrdinalConstant(dvOrdinal); } else if (dv instanceof DvText) { return new StringConstant(dataValueStr); } else if (dv instanceof DvDateTime) { return new DateTimeConstant(getDateTimeStrWithoutMillisAndTimezone(dataValueStr)); } else if (dv instanceof DvQuantity) { return new QuantityConstant((DvQuantity) dv); } else if (dv instanceof DvCount) { if (dataValueStr.trim().startsWith("-")) { dataValueStr = "(" + dataValueStr + ")"; } return new ConstantExpression(dataValueStr); } else { return new ConstantExpression(dataValueStr); } }
public static DataValue getDataValue(ConstantExpression constantExpression) { if (constantExpression instanceof CodedTextConstant) { return ((CodedTextConstant) constantExpression).getCodedText(); } else if (constantExpression instanceof QuantityConstant) { return ((QuantityConstant) constantExpression).getQuantity(); } else if (constantExpression instanceof StringConstant) { return new DvText(((StringConstant) constantExpression).getString()); } else if (constantExpression instanceof OrdinalConstant) { return ((OrdinalConstant) constantExpression).getOrdinal(); } else if (constantExpression instanceof DateTimeConstant) { return new DvDateTime(constantExpression.getValue()); } else if ("true".equals(constantExpression.getValue()) || "false".equals(constantExpression.getValue())) { return new DvBoolean(constantExpression.getValue()); } else if (constantExpression.getValue().startsWith("openehr::")) { return DataValue.parseValue("DV_CODED_TEXT," + constantExpression.getValue()); } else if (isParsableInteger(constantExpression.getValue())) { int count = Integer.parseInt(constantExpression.getValue()); return new DvCount(count); } else { LoggerFactory.getLogger(GuideUtil.class).warn("Unknown data value for constant expression '{}'", constantExpression); return null; } }
t = jj_consume_token(V_STRING); String str = t.image; {if (true) return new StringConstant(str.substring(1, str.length() - 1));} break; case V_ORDINAL: