protected String getRsReaderExpression(ValueType vt) { if (vt.isBuiltin() || vt.isEnum()) { return "value"; } StringBuilder builder = new StringBuilder(); builder.append(ValueTypeSerializationGenerator.SERIALIZER_CLASS_SIMPLE_NAME); builder.append("."); builder.append(ValueTypeSerializationGenerator.DESERIALIZATION_METHOD_PREFIX); builder.append(ValueTypeSerializationGenerator.makeSafeValueTypeName(vt)); builder.append("(value)"); return builder.toString(); }
protected String applyExternalizationIfRequired(String expr, ValueType vt) { if ((vt.isBuiltin() || vt.isEnum())) { return expr; } else { return SERIALIZATION_METHOD_PREFIX + makeSafeValueTypeName(vt) + "(" + expr + ")"; } }
protected String getExternalizationExpression(ValueType vt) { StringBuilder expression = new StringBuilder(); // Use the ValueTypeSerializer class to get the final type, // and then convert it to the correct SQL type expression.append(TO_SQL_CONVERTER_CLASS); expression.append(".getValueFor"); if (vt.isEnum()) { expression.append("Enum(value)"); return expression.toString(); } expression.append(ValueTypeSerializationGenerator.getSerializedFormTypeName(vt, true)); expression.append("("); if (vt.isBuiltin() || vt.isEnum()) { expression.append("value)"); } else { expression.append(ValueTypeSerializationGenerator.SERIALIZER_CLASS_SIMPLE_NAME); expression.append("."); expression.append(ValueTypeSerializationGenerator.SERIALIZATION_METHOD_PREFIX); expression.append(ValueTypeSerializationGenerator.makeSafeValueTypeName(vt)); expression.append("(value))"); } return expression.toString(); }
protected void generateInfinispanSetterBody(Slot slot, PrintWriter out) { generateSetterDAPStatement(dC, slot.getName(), slot.getTypeName(), out);//DAP write stats update statement generateSetterTxIntrospectorStatement(slot, out); // TxIntrospector onNewline(out); String slotName = slot.getName(); String setterExpression; if (findWrapperEntry(slot.getTypeName()) != null) { // then it is a primitive type setterExpression = slotName; } else { setterExpression = "(" + slotName + " == null ? Externalization.NULL_OBJECT : "; ValueType vt = slot.getSlotType(); if (vt.isBuiltin() || vt.isEnum()) { setterExpression += slotName; } else { // derived value type must be externalized setterExpression += VT_SERIALIZER + ValueTypeSerializationGenerator.makeSafeValueTypeName(vt) + "(" + slotName + ")"; } setterExpression += ")"; } print(out, "InfinispanBackEnd.getInstance().cachePut(getOid().getFullId() + \":" + slotName + "\", " + setterExpression + ");"); }
protected void generateValueTypeDeSerialization(ValueType vt) { onNewline(out); printMethod(out, "public static final", vt.getFullname(), DESERIALIZATION_METHOD_PREFIX + makeSafeValueTypeName(vt), makeArg(getSerializedFormTypeName(vt), "obj")); startMethodBody(out); print(out, "obj"); } else { print(out, DESERIALIZATION_METHOD_PREFIX + makeSafeValueTypeName(extElemVt) + "(obj)"); print(out, makeSafeValueTypeName(extElemVt)); print(out, "(JsonConverter.get"); print(out, getSerializedFormTypeName(extElemVt, true));
protected void generateValueTypeSerialization(ValueType vt) { onNewline(out); printMethod(out, "public static final", getSerializedFormTypeName(vt), SERIALIZATION_METHOD_PREFIX + makeSafeValueTypeName(vt), makeArg(vt.getFullname(), "obj")); startMethodBody(out); if (vt.getExternalizationElements().size() == 1) { print(out, "return (obj == null) ? null : "); ExternalizationElement extElem = vt.getExternalizationElements().get(0); ValueType extElemVt = extElem.getType(); print(out, applyExternalizationIfRequired(applyExternalizerTo(extElem, "obj"), extElemVt)); } else { println(out, "if (obj == null) return null;"); println(out, "JsonObject json = new JsonObject();"); for (ExternalizationElement extElem : vt.getExternalizationElements()) { print(out, "json.add(\""); print(out, makePrettySlotName(extElem)); print(out, "\", JsonConverter.getJsonFor("); print(out, applyExternalizationIfRequired(applyExternalizerTo(extElem, "obj"), extElem.getType())); print(out, "));"); newline(out); } print(out, "return json"); } print(out, ";"); endMethodBody(out); }
protected void generateInfinispanGetterBody(Slot slot, PrintWriter out, String cacheGetMethod) { generateGetterDAPStatement(dC, slot.getName(), slot.getTypeName(), out);//DAP read stats update statement println(out, "Object obj = InfinispanBackEnd.getInstance()." + cacheGetMethod + "(getOid().getFullId() + \":" + slot.getName() + "\");"); String defaultValue; PrimitiveToWrapperEntry wrapperEntry = findWrapperEntry(slot.getTypeName()); if (wrapperEntry != null) { // then it is a primitive type defaultValue = wrapperEntry.defaultPrimitiveValue; } else { defaultValue = "null"; } println(out, "if (obj == null || obj instanceof Externalization.NullClass) { return " + defaultValue + "; }"); String returnExpression = "return (" + getReferenceType(slot.getTypeName()) + ")"; ValueType vt = slot.getSlotType(); if (vt.isBuiltin() || vt.isEnum()) { returnExpression += "obj"; } else { returnExpression += VT_DESERIALIZER + ValueTypeSerializationGenerator.makeSafeValueTypeName(vt) + "((" + getReferenceType(ValueTypeSerializationGenerator.getSerializedFormTypeName(vt)) + ")obj)"; } returnExpression += ";"; print(out, returnExpression); }