@Override protected void generateSlotAccessors(Slot slot, PrintWriter out) { super.generateSlotAccessors(slot, out); generateExternalizationGetter(slot.getName(), slot.getSlotType(), out); generateInternalizationSetter(slot.getName(), slot.getSlotType(), out); }
protected static void updateFields(final DomainModel domainModel, final ClassDescriptor classDescriptor, final DomainClass domClass, final Map<String, ClassDescriptor> ojbMetadata, final Class<?> persistentFieldClass) throws Exception { DomainEntity domEntity = domClass; int fieldID = 1; addPrimaryFieldDescriptor(domainModel, "oid", "long", fieldID++, classDescriptor, persistentFieldClass); // write the domainMetaObject for all domain objects addFieldDescriptor(domainModel, "oidDomainMetaObject", "Long", fieldID++, classDescriptor, persistentFieldClass); while (domEntity instanceof DomainClass) { DomainClass dClass = (DomainClass) domEntity; Iterator<Slot> slots = dClass.getSlots(); while (slots.hasNext()) { Slot slot = slots.next(); String slotName = slot.getName(); String slotType = slot.getSlotType().getDomainName(); addFieldDescriptor(domainModel, slotName, slotType, fieldID++, classDescriptor, persistentFieldClass); } for (Role role : dClass.getRoleSlotsList()) { String roleName = role.getName(); if ((role.getMultiplicityUpper() == 1) && (roleName != null)) { String foreignOidField = "oid" + StringUtils.capitalize(roleName); addFieldDescriptor(domainModel, foreignOidField, "Long", fieldID++, classDescriptor, persistentFieldClass); } } domEntity = dClass.getSuperclass(); } }
@Override protected void generateStaticKeyFunctionForRole(Role role, PrintWriter out) { if (role.isIndexed()) { onNewline(out); Slot indexedSlot = getIndexedSlot(role); String keyField = role.getIndexProperty(); println(out, generateMapKeyFunction(role.getName(), role.getType().getFullName(), indexedSlot.getSlotType().getFullname(), keyField, role.getIndexCardinality() == Role.MULTIPLICITY_MANY)); onNewline(out); } else { super.generateStaticKeyFunctionForRole(role, out); } }
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 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); }
protected void generateDatabaseReader(DomainClass domClass, PrintWriter out) { newline(out); printMethod(out, "protected", "void", "readSlotsFromResultSet", makeArg("java.sql.ResultSet", "rs"), makeArg("int", "txNumber")); print(out, " throws java.sql.SQLException"); startMethodBody(out); if (domClass.hasSuperclass()) { println(out, "super.readSlotsFromResultSet(rs, txNumber);"); } for (Slot slot : domClass.getSlotsList()) { generateOneSlotRsReader(out, slot.getName(), slot.getSlotType()); } for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null && role.getMultiplicityUpper() == 1) { generateOneRoleSlotRsReader(out, role.getName()); } } endMethodBody(out); }
protected void generateRoleSlotMethodsMultStarIndexed(Role role, PrintWriter out, String methodModifiers, String capitalizedSlotName, String slotAccessExpression, String typeName, String slotName) { Slot indexedSlot = getIndexedSlot(role); String keyField = role.getIndexProperty(); String retType = role.getType().getFullName(); String methodNameSufix = ""; boolean haveMany = role.getIndexCardinality() == Role.MULTIPLICITY_MANY; if (haveMany) { retType = makeGenericType("java.util.Set", retType); } onNewline(out); printMethod(out, "public", retType, "get" + capitalize(role.getName()) + "By" + capitalize(keyField) + methodNameSufix, indexedSlot.getSlotType().getFullname() + " key"); startMethodBody(out); printWords(out, "return", getSearchForKey(role, haveMany ? getCollectionToUse() : retType)); print(out, ";"); endMethodBody(out); }
@Override protected void generateDatabaseReader(DomainClass domClass, PrintWriter out) { newline(out); printMethod(out, "protected", "void", "readStateFromResultSet", makeArg("java.sql.ResultSet", "rs"), makeArg(DO_STATE_SUPER, "state")); print(out, " throws java.sql.SQLException"); startMethodBody(out); if (domClass.hasSuperclass()) { println(out, "super.readStateFromResultSet(rs, state);"); } println(out, "DO_State castedState = (DO_State)state;"); for (Slot slot : domClass.getSlotsList()) { generateOneSlotRsReader(out, slot.getName(), slot.getSlotType()); } for (Role role : domClass.getRoleSlotsList()) { if (role.getName() != null && role.getMultiplicityUpper() == 1) { generateOneRoleSlotRsReader(out, role.getName()); } } endMethodBody(out); }