All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.tentackle.persist.wurblet.MethodsImpl Maven / Gradle / Ivy

// wurblet generated by Wurbelizer 21.6.0.0, see https://wurbelizer.org

package org.tentackle.persist.wurblet;

import org.tentackle.wurblet.*;
import org.tentackle.buildsupport.*;
import java.util.*;
import java.io.*;
import org.tentackle.common.*;
import org.wurbelizer.wurbel.*;
import org.tentackle.sql.*;
import org.tentackle.model.*;
import org.wurbelizer.wurblet.*;

/**
 * ({@code @wurblet}) Generate getters, setters and other methods for an entity.
 * 

* usage:
* @wurblet <tag> MethodsImpl [--noif] [--noudk] [--noisroot] [--mock] *

* arguments: *

    *
  • --noif: there is no interface (don't generate @Override).
  • *
  • --noudk: don't generate selectByUniqueDomainKey wurblet anchor.
  • *
  • --noisroot: don't generate isRootEntity() method.
  • *
  • --mock: generate code for mock object.
  • *
* For more options, see {@link DbModelWurblet}. */ public class MethodsImpl extends DbModelWurblet { @Override public void run() throws WurbelException { super.run(); try { wurbel(); } catch (Throwable t) { if (t instanceof WurbelException) { throw (WurbelException) t; } throw new WurbelException("wurblet " + this + " failed", t); } } // ----------------- begin wurblet code ----------------- private void wurbel() throws WurbelException, ModelException { // main class String mainClass = getClassName(); String pdoClass = null; boolean isPdo; try { pdoClass = getPdoClassName(); isPdo = true; } catch (WurbelException we) { isPdo = false; } boolean noif = false; boolean generateSnapshot = false; boolean generateSelectByUDK = true; boolean generateIsRoot = true; boolean generateMock = false; int argcount = 0; for (String arg: getOptionArgs()) { if ("noif".equals(arg)) { noif = true; } else if ("noudk".equals(arg)) { generateSelectByUDK = false; } else if ("noisroot".equals(arg)) { generateIsRoot = false; } else if ("mock".equals(arg)) { generateMock = true; } } boolean generateCreateNormText = false; boolean generatePresetVirgin = false; for (Attribute attr: getEntity().getAttributes()) { if (attr.getOptions().isPartOfNormText()) { generateCreateNormText = true; } if (attr.getOptions().getNewValue() != null) { generatePresetVirgin = true; } } if (!generateCreateNormText) { for (Attribute attr: getEntity().getEmbeddedAttributes()) { if (attr.getOptions().isPartOfNormText()) { generateCreateNormText = true; break; } } } if (!generateMock) { if (isRemote()) { new RemoteIncludes(this); // create RMI-files if they don't exist yet String delegateType = (isPdo() ? pdoClass : mainClass) + "RemoteDelegate"; if (getEntity().isAbstract()) { delegateType += ""; } out.print(source[0]); // 80:2 = " @Override public " out.print(delegateType); out.print(source[1]); // 83:25 = " getRemoteDelegate() { return (" out.print(delegateType); out.print(source[2]); // 84:28 = ") super.getRemoteDelegate(); }" } if (getEntity().isAbstract()) { if (getEntity().getInheritanceType() == InheritanceType.MULTI) { out.print(source[3]); // 91:2 = " @Override public boolean isExplicit..." } } if (getEntity().getSuperEntity() != null && (getEntity().getHierarchyInheritanceType() == InheritanceType.SINGLE || getEntity().getHierarchyInheritanceType() == InheritanceType.MULTI)) { List leafs = getEntity().getLeafEntities(); if (!leafs.isEmpty()) { int[] classIds = new int[leafs.size()]; int ndx = 0; for (Entity leaf : leafs) { classIds[ndx++] = leaf.getClassId(); } Arrays.sort(classIds); // predictable order StringBuilder buf = new StringBuilder(); boolean needComma = false; for (int classId : classIds) { if (needComma) { buf.append(", "); } else { needComma = true; } buf.append(classId); } out.print(source[4]); // 122:2 = " private static final List VA..." out.print(buf); out.print(source[5]); // 124:70 = "); @Override public List g..." } } boolean multiInheritance = getEntity().getHierarchyInheritanceType() == InheritanceType.MULTI; boolean readOnly = getEntity().getOptions().isReadOnly(); if (readOnly) { out.print(source[6]); // 138:2 = " @Override public boolean isImmutabl..." } if (getEntity().getSuperEntity() == null) { if (generateIsRoot && getEntity().getOptions().isRoot()) { out.print(source[7]); // 155:2 = " @Override public boolean isRootEnti..." } if (getEntity().isEmbedded()) { out.print(source[8]); // 165:2 = " @Override public boolean isEmbedded..." } if (getEntity().getOptions().isTableSerialProvided()) { out.print(source[9]); // 175:2 = " @Override public boolean isTableSer..." } if (getEntity().getOptions().isTokenLockProvided()) { out.print(source[10]); // 185:2 = " @Override public boolean isTokenLoc..." } if (getEntity().getOptions().isNormTextProvided()) { out.print(source[11]); // 195:2 = " @Override public boolean isNormText..." } if (getEntity().getOptions().isRootIdProvided()) { out.print(source[12]); // 205:2 = " @Override public boolean isRootIdPr..." } else if (!getEntity().isEmbedded()) { Attribute rootAttribute = getEntity().getRootAttribute(); if (rootAttribute != null) { out.print(source[13]); // 217:2 = " @Override public long getRootId() {..." out.print(rootAttribute.getName()); out.print(source[14]); // 221:38 = "; }" } } if (getEntity().getOptions().isRootClassIdProvided()) { out.print(source[15]); // 228:2 = " @Override public boolean isRootClas..." } else if (!getEntity().isEmbedded()) { Entity rootEntity = getEntity().getRootEntity(); if (rootEntity != null) { out.print(source[16]); // 239:2 = " @Override public int getRootClassId..." out.print(rootEntity.getClassId()); out.print(source[17]); // 243:38 = "; }" } } if (isTracked()) { out.print(source[18]); // 250:2 = " @Override public boolean isTracked(..." } } if (isAttracked()) { out.print(source[19]); // 261:2 = " @Override public void setModified(b..." for (Attribute attr: getEntity().getAttributes()) { if (!attr.getOptions().isFromSuper() && !attr.getOptions().isMute()) { if (isFullTracked()) { out.print(source[20]); // 271:2 = " " out.print(attr.getName()); out.print(source[21]); // 272:24 = "Persisted = " out.print(attr.getName()); out.print(source[22]); // 272:54 = ";" } else { out.print(source[23]); // 276:2 = " " out.print(attr.getName()); out.print(source[24]); // 277:24 = "Modified = false;" } } } out.print(source[25]); // 282:2 = " } }" } if (isFullTracked()) { out.print(source[26]); // 290:2 = " @Override public boolean differsPer..." for (Attribute attr: getEntity().getAttributes()) { if (!attr.getOptions().isFromSuper() && !attr.getOptions().isMute() && !attr.getOptions().isReadOnly() && !isIdOrSerialAttribute(attr)) { if (attr.getDataType().isPrimitive()) { out.print(source[27]); // 300:2 = " || " out.print(attr.getName()); out.print(source[28]); // 301:32 = "Persisted != " out.print(attr.getName()); out.print(source[29]); // 301:63 = "" } else { out.print(source[30]); // 305:2 = " || !Objects.equals(" out.print(attr.getName()); out.print(source[31]); // 306:48 = "Persisted, " out.print(attr.getName()); out.print(source[32]); // 306:77 = ")" } } } out.print(source[33]); // 311:2 = " ; } @Override public b..." } if (!getEntity().getInheritanceType().isMappingToNoTable() || getEntity().isEmbedded()) { if (getEntity().isEmbedded()) { out.print(source[34]); // 324:2 = " @Override public void configureEmbe..." for (Relation rel: getEntity().getRelations()) { if (rel.isEmbedding()) { out.print(source[35]); // 331:2 = " ((AbstractPersistentObject) " out.print(rel.getGetterName()); out.print(source[36]); // 332:60 = "().getPersistenceDelegate()).configureEm..." } } for (Attribute attr: getEntity().getMappedAttributes()) { if (!attr.getOptions().isMute()) { DataType effectiveType = getEffectiveDataType(attr); if (effectiveType.isColumnCountBackendSpecific()) { out.print(source[37]); // 341:2 = " rs.configureColumns(" out.print(effectiveType.getDataTypeConstant()); out.print(source[38]); // 342:63 = ", getColumnPrefix() + " out.print(getColumnNameConstant(attr, -1)); out.print(source[39]); // 342:120 = ");" } else { for (int columnIndex = 0; columnIndex < effectiveType.getColumnCount(null); columnIndex++) { out.print(source[40]); // 347:2 = " rs.configureColumn(getColumnPrefix()..." out.print(getColumnNameConstant(attr, columnIndex)); out.print(source[41]); // 348:87 = ");" } } } } out.print(source[42]); // 354:2 = " }" } else { String orderBy = getEntity().getSorting() != null ? createOrderBy(getDefaultSortKeys()) : null; if (orderBy != null) { out.print(source[43]); // 361:2 = " @Override public String orderBy() {..." out.print(orderBy); out.print(source[44]); // 366:18 = "; return sql.toString(); }" } } out.print(source[45]); // 372:2 = " @Override public void getFields(Res..." boolean needConfig = false; if (!getEntity().isEmbedded()) { out.print(source[46]); // 381:2 = " super.getFields(rs);" for (Attribute attr: getEntity().getMappedAttributes()) { if (!attr.getOptions().isMute()) { needConfig = true; break; } } for (Relation rel: getEntity().getRelations()) { if (rel.isEmbedding()) { needConfig = true; break; } } } if (needConfig) { out.print(source[47]); // 399:2 = " if (rs.configureSection(CLASSVARIABL..." for (Relation rel: getEntity().getRelations()) { if (rel.isEmbedding()) { out.print(source[48]); // 404:2 = " ((AbstractPersistentObject) " out.print(rel.getGetterName()); out.print(source[49]); // 405:62 = "().getPersistenceDelegate()).configureEm..." } } for (Attribute attr: getEntity().getMappedAttributes()) { if (!attr.getOptions().isMute()) { DataType effectiveType = getEffectiveDataType(attr); if (effectiveType.isColumnCountBackendSpecific()) { out.print(source[50]); // 414:2 = " rs.configureColumns(" out.print(effectiveType.getDataTypeConstant()); out.print(source[51]); // 415:65 = ", " out.print(getColumnNameConstant(attr, -1)); out.print(source[52]); // 415:102 = ");" } else { for (int columnIndex = 0; columnIndex < effectiveType.getColumnCount(null); columnIndex++) { out.print(source[53]); // 420:2 = " rs.configureColumn(" out.print(getColumnNameConstant(attr, columnIndex)); out.print(source[54]); // 421:69 = ");" } } } } out.print(source[55]); // 427:2 = " }" } else if (!getEntity().isEmbedded()) { out.print(source[56]); // 432:2 = " rs.configureSection(CLASSVARIABLES);..." for (Relation rel: getEntity().getRelations()) { if (rel.isEmbedding()) { out.print(source[57]); // 437:2 = " ((AbstractPersistentObject) " out.print(rel.getGetterName()); out.print(source[58]); // 438:60 = "().getPersistenceDelegate()).configureEm..." } } } for (Relation rel: getEntity().getRelations()) { if (rel.isEmbedding()) { out.print(source[59]); // 446:2 = " ((AbstractPersistentObject) " out.print(rel.getGetterName()); out.print(source[60]); // 447:60 = "().getPersistenceDelegate()).getFields(r..." } } for (Attribute attr: getEntity().getMappedAttributes()) { if (!attr.getOptions().isMute()) { String name = attr.getName().toUpperCase(Locale.ROOT); boolean useSetter = isAttributeDerived(attr); DataType dataType = getEffectiveDataType(attr); if (dataType.isPredefined()) { String getterMethod = createJdbcGetterName(attr); if ("Binary".equals(attr.getDataType().getJavaType())) { // Binary getter takes additional buffer size argument int bufsize = attr.getSize() == null ? 0 : attr.getSize(); if (useSetter) { out.print(source[61]); // 463:2 = " " out.print(attr.getSetterName()); out.print(source[62]); // 464:28 = "(rs." out.print(getterMethod); out.print(source[63]); // 464:48 = "(" out.print(bufsize); out.print(source[64]); // 464:60 = "));" } else { out.print(source[65]); // 468:2 = " " out.print(attr.getName()); out.print(source[66]); // 469:22 = " = rs." out.print(getterMethod); out.print(source[67]); // 469:44 = "(" out.print(bufsize); out.print(source[68]); // 469:56 = ");" } } else { String rsGetter = "rs." + getterMethod + "("; boolean needComma = false; if (attr.getOptions().isWithTimezone()) { rsGetter += "get" + attr.getMethodNameSuffix() + "TimezoneConfig()"; needComma = true; } if (attr.getOptions().isMapNull()) { if (needComma) { rsGetter += ", "; } rsGetter += "true"; needComma = true; } rsGetter += ")"; String modelCode = getModelCode(attr, rsGetter); if (attr.getOptions().isTrimRead() && attr.getSize() != null) { modelCode = "StringHelper.trim(" + modelCode + ", " + attr.getSize() + ")"; } if (useSetter) { modelCode = attr.getSetterName() + "(" + modelCode + ")"; } else { modelCode = attr.getName() + " = " + modelCode; } out.print(source[69]); // 501:2 = " " out.print(modelCode); out.print(source[70]); // 502:17 = ";" if (attr.getOptions().isUTC()) { if (useSetter) { modelCode = attr.getGetterName() + "()"; } else { modelCode = attr.getName(); } out.print(source[71]); // 511:2 = " if (" out.print(modelCode); out.print(source[72]); // 512:21 = " != null) { " out.print(modelCode); out.print(source[73]); // 513:19 = ".setUTC(true); }" } } } else { // application specific type String rsGetter = "rs.get(" + dataType.getDataTypeConstant() + ", " + attr.getOptions().isMapNull() + ", " + attr.getSize() + ")"; String modelCode = getModelCode(attr, rsGetter); if (useSetter) { modelCode = attr.getSetterName() + "(" + modelCode + ")"; } else { modelCode = attr.getName() + " = " + modelCode; } out.print(source[74]); // 528:2 = " " out.print(modelCode); out.print(source[75]); // 529:17 = ";" } } } out.print(source[76]); // 534:2 = " }" if (!readOnly) { if (multiInheritance) { out.print(source[77]); // 539:2 = " /** * Sets the values of all " out.print(pdoClass); out.print(source[78]); // 542:40 = "-columns in the given statement. * ..." out.print(pdoClass); out.print(source[79]); // 547:34 = "(PreparedStatementWrapper st) { int ..." } else { if (getEntity().isEmbedded()) { out.print(source[80]); // 553:2 = " @Override public int setEmbeddedFie..." } else { out.print(source[81]); // 560:2 = " @Override public int setFields(Prep..." } } for (Relation rel: getEntity().getRelations()) { if (rel.isEmbedding()) { out.print(source[82]); // 571:2 = " ndx = ((AbstractPersistentObject dataType = getEffectiveDataType(attr); if (dataType.isPredefined()) { String setterName = createJdbcSetterName(dataType); String modelCode; if (useGetter) { modelCode = attr.getGetterName() + "()"; } else { modelCode = attr.getName(); } String jdbcCode = getJdbcCode(attr, modelCode); if (attr.getOptions().isTrimWrite() && attr.getSize() != null) { jdbcCode = "StringHelper.trim(" + jdbcCode + ", " + attr.getSize() + ")"; } jdbcCode = "st." + setterName + "(++ndx, " + jdbcCode; if (attr.getOptions().isWithTimezone()) { jdbcCode += ", get" + attr.getMethodNameSuffix() + "TimezoneConfig()"; } if (attr.getOptions().isMapNull()) { jdbcCode += ", true)"; } else { jdbcCode += ")"; } out.print(source[84]); // 608:2 = " " out.print(jdbcCode); out.print(source[85]); // 609:16 = ";" // for multi column types, such as BMoney or application specific types int diff = getEffectiveDataType(attr).getColumnCount(null) - 1; if (diff == 1) { out.print(source[86]); // 615:2 = " ndx++;" } else if (diff > 1) { out.print(source[87]); // 620:2 = " ndx += " out.print(diff); out.print(source[88]); // 621:19 = ";" } } else { // application specific type String modelCode; if (useGetter) { modelCode = attr.getGetterName() + "()"; } else { modelCode = attr.getName(); } String jdbcCode = "ndx += st.set(" + dataType.getDataTypeConstant() + ", ndx + 1, " + getJdbcCode(attr, modelCode) + ", " + attr.getOptions().isMapNull() + ", " + attr.getSize() + ")"; out.print(source[89]); // 636:2 = " " out.print(jdbcCode); out.print(source[90]); // 637:16 = ";" } } } if (multiInheritance && getEntity().getSuperEntity() != null) { out.print(source[91]); // 644:2 = " st.setLong(++ndx, getId());" } out.print(source[92]); // 648:2 = " return ndx; }" } } if (getEntity().getInheritanceType().isMappingToOwnTable() || getEntity().isEmbedded()) { List attributes = multiInheritance ? getEntity().getTableAttributes().stream().filter(a -> !a.isEmbedded()).toList() : getEntity().getAttributesIncludingInherited(); List names = new ArrayList<>(); // column name constants CN_... Map> bsAttrs = new LinkedHashMap<>(); // backend-specific attributes requires special handling if (!readOnly) { for (Attribute attr: attributes) { DataType effectiveType = getEffectiveDataType(attr); if (!attr.getOptions().isMute() && !attr.getOptions().isReadOnly()) { if (effectiveType.isColumnCountBackendSpecific()) { bsAttrs.put(attr, effectiveType); // remember for later below... names.add(effectiveType.getDataTypeConstant() + ".createColumnNamesAsString(backend, " + getColumnNameConstant(attr, -1) + ", Backend.SQL_COMMA)"); } else { for (int columnIndex = 0; columnIndex < effectiveType.getColumnCount(null); columnIndex++) { names.add(getColumnNameConstant(attr, columnIndex)); } } } } if (multiInheritance) { out.print(source[93]); // 678:2 = " /** * Creates the SQL code for the..." out.print(pdoClass); out.print(source[94]); // 681:46 = " insert statement. * * @return the..." out.print(pdoClass); out.print(source[95]); // 685:43 = "(Backend backend) {" } else { out.print(source[96]); // 689:2 = " @Override public String createInser..." } if (getEntity().isEmbedded()) { out.print(source[97]); // 697:2 = " return" } else { out.print(source[98]); // 702:2 = " return Backend.SQL_INSERT_INTO + " out.print(multiInheritance ? "CLASSVARIABLES." : ""); out.print(source[99]); // 703:82 = "getTableName() + Backend.SQL_LEFT_PARENT..." } for (Relation rel: getEntity().getRelations()) { if (rel.isEmbedding()) { out.print(source[100]); // 709:2 = " ((AbstractPersistentObject 1) { out.print(source[106]); // 737:2 = " Backend.SQL_PAR_COMMA.repeat(..." out.print(count); out.print(source[107]); // 738:49 = ") +" } boolean onlyBsAttrs = count < 0; // only backend-specific datatypes -> subtract 1 from last bs entry Map, Integer> typeCountMap = new HashMap<>(); for (Map.Entry> entry : bsAttrs.entrySet()) { DataType dataType = entry.getValue(); Integer typeCount = typeCountMap.get(dataType); if (typeCount == null) { typeCountMap.put(dataType, 1); } else { typeCountMap.put(dataType, typeCount + 1); } } count = 0; for (Map.Entry, Integer> entry : typeCountMap.entrySet()) { count++; DataType dataType = entry.getKey(); int typeCount = entry.getValue(); String factor = typeCount > 1 ? " * " + typeCount : ""; if (onlyBsAttrs && count >= typeCountMap.size()) { factor += " - 1"; } out.print(source[108]); // 764:2 = " Backend.SQL_PAR_COMMA.repeat(..." out.print(dataType.getDataTypeConstant()); out.print(source[109]); // 765:74 = ".getColumnCount(backend)" out.print(factor); out.print(source[110]); // 765:108 = ") +" } out.print(source[111]); // 768:2 = " Backend.SQL_PAR + Backend.SQL..." } out.print(source[112]); // 772:2 = " }" names.clear(); for (Attribute attr: attributes) { DataType effectiveType = getEffectiveDataType(attr); if (!attr.getOptions().isMute() && !attr.getOptions().isReadOnly() && !isIdOrSerialAttribute(attr)) { if (effectiveType.isColumnCountBackendSpecific()) { names.add(effectiveType.getDataTypeConstant() + ".createColumnNamesAsString(backend, " + getColumnNameConstant(attr, -1) + ", Backend.SQL_EQUAL_PAR_COMMA)"); } else { for (int columnIndex = 0; columnIndex < effectiveType.getColumnCount(null); columnIndex++) { names.add(getColumnNameConstant(attr, columnIndex)); } } } } if (multiInheritance) { out.print(source[113]); // 792:2 = " /** * Creates the SQL code for the..." out.print(pdoClass); out.print(source[114]); // 795:46 = " update statement. * * @return the..." out.print(pdoClass); out.print(source[115]); // 799:43 = "(Backend backend) {" } else { out.print(source[116]); // 803:2 = " @Override public String createUpdat..." } if (getEntity().isEmbedded()) { out.print(source[117]); // 811:2 = " return" } else { out.print(source[118]); // 816:2 = " return Backend.SQL_UPDATE + " out.print(multiInheritance ? "CLASSVARIABLES." : ""); out.print(source[119]); // 817:77 = "getTableName() + Backend.SQL_SET +" } for (Relation rel: getEntity().getRelations()) { if (rel.isEmbedding()) { out.print(source[120]); // 823:2 = " ((AbstractPersistentObject superEntities = topEntity.getInheritanceChain(getEntity()); for (Entity superEntity : superEntities) { out.print(source[132]); // 887:2 = " names.addAll(" out.print(deriveClassNameForEntity(superEntity)); out.print(source[133]); // 888:63 = ".mappedColumns(backend));" } // part 2: all sub entities of me List subEntities = getEntity().getAllSubEntities(); for (Entity subEntity : subEntities) { out.print(source[134]); // 894:2 = " names.addAll(" out.print(deriveClassNameForEntity(subEntity)); out.print(source[135]); // 895:61 = ".mappedColumns(backend));" } out.print(source[136]); // 898:2 = " return names; })) ..." } else if (multiInheritance) { // create joinable sql selects with table aliases Entity topEntity = getEntity().getTopSuperEntity(); List chain = topEntity.getInheritanceChain(getEntity()); List subs = orderByInheritanceLevelAndClassId(getEntity().getAllSubEntities()); String topImplClass = deriveClassNameForEntity(topEntity); if (!readOnly) { out.print(source[137]); // 917:2 = " /** * Creates the SQL code for the..." out.print(pdoClass); out.print(source[138]); // 920:46 = " delete statement. * * @return the..." out.print(pdoClass); out.print(source[139]); // 924:43 = "() {" if (getEntity().isRootOfInheritanceHierarchy()) { out.print(source[140]); // 927:2 = " return Backend.SQL_DELETE + Backend...." } else { out.print(source[141]); // 934:2 = " return Backend.SQL_DELETE + Backend...." } out.print(source[142]); // 939:2 = " }" } out.print(source[143]); // 943:2 = " @Override public StringBuilder crea..." boolean needComma = false; for (Entity entity: chain) { String implClass = deriveClassNameForEntity(entity); if (isMuteOptionSet(entity)) { out.print(source[144]); // 953:2 = " sql." out.print(needComma ? "append(Backend.SQL_COMMA)." : ""); out.print(source[145]); // 954:57 = "append(" out.print(implClass); out.print(source[146]); // 954:77 = ".CLASSVARIABLES.getColumnNames(" out.print(implClass); out.print(source[147]); // 954:121 = ".mappedColumns(backend)));" } else { out.print(source[148]); // 958:2 = " sql." out.print(needComma ? "append(Backend.SQL_COMMA)." : ""); out.print(source[149]); // 959:57 = "append(" out.print(implClass); out.print(source[150]); // 959:77 = ".CLASSVARIABLES.getColumnName(Backend.SQ..." } needComma = true; if (entity == topEntity) { for (Entity sub: subs) { implClass = deriveClassNameForEntity(sub); if (isMuteOptionSet(sub)) { out.print(source[151]); // 967:2 = " sql.append(Backend.SQL_COMMA).append..." out.print(implClass); out.print(source[152]); // 968:54 = ".CLASSVARIABLES.getColumnNames(" out.print(implClass); out.print(source[153]); // 968:98 = ".mappedColumns(backend)));" } else { out.print(source[154]); // 972:2 = " sql.append(Backend.SQL_COMMA).append..." out.print(implClass); out.print(source[155]); // 973:54 = ".CLASSVARIABLES.getColumnName(Backend.SQ..." } } } } out.print(source[156]); // 979:2 = " sql.append(Backend.SQL_FROM); sq..." out.print(topImplClass); out.print(source[157]); // 981:31 = ".CLASSVARIABLES.getTableName()). ..." out.print(topImplClass); out.print(source[158]); // 982:71 = ".CLASSVARIABLES.getTableAlias());" if (chain.size() > 1) { for (Entity entity: chain.subList(1, chain.size())) { String implClass = deriveClassNameForEntity(entity); out.print(source[159]); // 987:2 = " sql.append(backend.sqlJoin(JoinType...." out.print(implClass); out.print(source[160]); // 989:28 = ".CLASSVARIABLES.getTableName(), " out.print(implClass); out.print(source[161]); // 989:73 = ".CLASSVARIABLES.getTableAlias(), ..." out.print(topImplClass); out.print(source[162]); // 990:31 = ".CLASSVARIABLES.getColumnName(CN_ID) + B..." out.print(implClass); out.print(source[163]); // 991:28 = ".CLASSVARIABLES.getColumnName(CN_ID)));..." } } for (Entity sub: subs) { String implClass = deriveClassNameForEntity(sub); out.print(source[164]); // 998:2 = " sql.append(backend.sqlJoin(JoinType...." out.print(implClass); out.print(source[165]); // 1000:28 = ".CLASSVARIABLES.getTableName(), " out.print(implClass); out.print(source[166]); // 1000:73 = ".CLASSVARIABLES.getTableAlias(), ..." out.print(topImplClass); out.print(source[167]); // 1001:31 = ".CLASSVARIABLES.getColumnName(CN_ID) + B..." out.print(implClass); out.print(source[168]); // 1002:28 = ".CLASSVARIABLES.getColumnName(CN_ID)));..." } out.print(source[169]); // 1005:2 = " sql.append(Backend.SQL_WHEREALL); ..." String implClass = deriveClassNameForEntity(topEntity); out.print(source[170]); // 1011:2 = " @Override public StringBuilder crea..." out.print(implClass); out.print(source[171]); // 1017:28 = ".CLASSVARIABLES.getColumnName(CN_ID)). ..." if (getEntity().isRootOfInheritanceHierarchy()) { out.print(source[172]); // 1024:2 = " @Override protected void updateImpl..." out.print(pdoClass); out.print(source[173]); // 1028:158 = "); setFields" out.print(pdoClass); out.print(source[174]); // 1029:25 = "(st); assertThisRowAffected(st.execu..." out.print(pdoClass); out.print(source[175]); // 1035:158 = "); setFields" out.print(pdoClass); out.print(source[176]); // 1036:25 = "(st); assertThisRowAffected(st.execu..." out.print(pdoClass); out.print(source[177]); // 1042:157 = "()); st.setLong(1, getId()); st...." } else { out.print(source[178]); // 1050:2 = " @Override protected void updateImpl..." out.print(getEntity().isAbstract()?"P":mainClass); out.print(source[179]); // 1053:93 = "> classVariables, ..." out.print(pdoClass); out.print(source[180]); // 1056:158 = "); setFields" out.print(pdoClass); out.print(source[181]); // 1057:25 = "(st); assertThisRowAffected(st.execu..." out.print(getEntity().isAbstract()?"P":mainClass); out.print(source[182]); // 1062:93 = "> classVariables, ..." out.print(pdoClass); out.print(source[183]); // 1065:158 = "); setFields" out.print(pdoClass); out.print(source[184]); // 1066:25 = "(st); assertThisRowAffected(st.execu..." out.print(getEntity().isAbstract()?"P":mainClass); out.print(source[185]); // 1071:93 = "> classVariables, ..." out.print(pdoClass); out.print(source[186]); // 1073:157 = "()); st.setLong(1, getId()); ass..." } } // end multiinheritance else if (isMuteOptionSet(getEntity()) && !getEntity().isEmbedded()) { out.print(source[187]); // 1083:2 = " @Override public StringBuilder crea..." } } // end !mock for (Attribute attr: getEntity().getAttributes()) { if (attr.getOptions().isMute()) { continue; // skip } if (!attr.getOptions().isNoDeclare() && !isAttributeDerived(attr)) { generateSnapshot = true; } if (attr.getOptions().isNoMethod()) { if (!attr.getOptions().isFromSuper()) { out.print(source[188]); // 1108:2 = " /* * no accessor methods for " out.print(attr); out.print(source[189]); // 1111:37 = ". * " out.print(attr.getOptions().getComment()); out.print(source[190]); // 1112:39 = " */" } } else { String protection = attr.getOptions().getAccessScope().toString(); String type = attr.getJavaType(); String methodSuffix = attr.getMethodNameSuffix(); String getter = attr.getGetterName(); String setter = attr.getSetterName(); if (attr.getOptions().isWriteOnly()) { out.print(source[191]); // 1124:2 = " // " out.print(attr); out.print(source[192]); // 1126:13 = " is writeonly, no getter." } else { if (noif || attr.isHidden()) { out.print(source[193]); // 1131:2 = " /** * Gets the attribute " out.print(attr.getName()); out.print(source[194]); // 1134:42 = ". * * @return " out.print(attr.getOptions().getComment()); out.print(source[195]); // 1136:48 = " */ @Persistent(ordinal=" out.print(attr.getOrdinal()); out.print(source[196]); // 1138:44 = ", comment=" out.print(StringHelper.toDoubleQuotes(attr.getOptions().getComment())); out.print(source[197]); // 1138:117 = ")" } else { out.print(source[198]); // 1142:2 = " @Override" } for (String annotation: attr.getOptions().getAnnotations()) { AnnotationOption anno = new AnnotationOption(annotation); if (anno.isHidden() && !anno.isSetterOnly()) { out.print(source[199]); // 1150:2 = " " out.print(anno.getAnnotation()); out.print(source[200]); // 1151:26 = "" } } out.print(source[201]); // 1155:2 = " " out.print(protection); out.print(source[202]); // 1156:16 = " " out.print(type); out.print(source[203]); // 1156:25 = " " out.print(getter); out.print(source[204]); // 1156:36 = "() { return " out.print(attr.getName()); out.print(source[205]); // 1157:29 = "; }" } if (attr.getOptions().isReadOnly()) { out.print(source[206]); // 1163:2 = " // " out.print(attr); out.print(source[207]); // 1165:13 = " is readonly, no setter." } else { String setterProtection = protection; boolean useOverride = !noif && "public".equals(protection) && !attr.isHidden(); // check to make setter for lazy or eager object relations private Relation rel = attr.getRelation(); if (rel != null && rel.getSelectionType() != SelectionType.ALWAYS) { setterProtection = getEntity().isAbstract() ? "protected" : "private"; useOverride = false; } if (!useOverride) { out.print(source[208]); // 1178:2 = " /** * Sets the attribute " out.print(attr.getName()); out.print(source[209]); // 1181:42 = ". * * @param " out.print(attr.getName()); out.print(source[210]); // 1183:31 = " " out.print(attr.getOptions().getComment()); out.print(source[211]); // 1183:66 = " */" } else { out.print(source[212]); // 1188:2 = " @Override" } for (String annotation: attr.getOptions().getAnnotations()) { AnnotationOption anno = new AnnotationOption(annotation); if (anno.isHidden() && (anno.isSetterOnly() || anno.isSetterAndGetter())) { out.print(source[213]); // 1196:2 = " " out.print(anno.getAnnotation()); out.print(source[214]); // 1197:26 = "" } } out.print(source[215]); // 1201:2 = " " out.print(setterProtection); out.print(source[216]); // 1202:22 = " void " out.print(setter); out.print(source[217]); // 1202:38 = "(" out.print(type); out.print(source[218]); // 1202:47 = " " out.print(attr.getName()); out.print(source[219]); // 1202:66 = ") {" if (type.equals("Timestamp")) { out.print(source[220]); // 1205:2 = " Timestamp.setUTC(" out.print(attr.getName()); out.print(source[221]); // 1206:39 = ", " out.print(attr.getOptions().isUTC() ? "true" : "false"); out.print(source[222]); // 1206:89 = ");" } if (attr.getDataType().isMutable()) { out.print(source[223]); // 1210:2 = " Freezable.freeze(" out.print(attr.getName()); out.print(source[224]); // 1211:39 = ");" } if (generateMock) { out.print(source[225]); // 1215:2 = " this." out.print(attr.getName()); out.print(source[226]); // 1216:27 = " = " out.print(attr.getName()); out.print(source[227]); // 1216:48 = ";" } else { if (isTracked()) { if (isFullTracked()) { if (attr.getDataType().isPrimitive()) { out.print(source[228]); // 1223:2 = " if (this." out.print(attr.getName()); out.print(source[229]); // 1224:31 = " != " out.print(attr.getName()); out.print(source[230]); // 1224:53 = ") { assertMutable(); firePro..." out.print(attr.getName().toUpperCase(Locale.ROOT)); out.print(source[231]); // 1226:71 = ", this." out.print(attr.getName()); out.print(source[232]); // 1226:96 = ", " out.print(attr.getName()); out.print(source[233]); // 1226:116 = "); this." out.print(attr.getName()); out.print(source[234]); // 1227:29 = " = " out.print(attr.getName()); out.print(source[235]); // 1227:50 = "; }" } else { out.print(source[236]); // 1232:2 = " if (!Objects.equals(this." out.print(attr.getName()); out.print(source[237]); // 1233:47 = ", " out.print(attr.getName()); out.print(source[238]); // 1233:67 = ")) { assertMutable(); firePr..." out.print(attr.getName().toUpperCase(Locale.ROOT)); out.print(source[239]); // 1235:71 = ", this." out.print(attr.getName()); out.print(source[240]); // 1235:96 = ", " out.print(attr.getName()); out.print(source[241]); // 1235:116 = "); this." out.print(attr.getName()); out.print(source[242]); // 1236:29 = " = " out.print(attr.getName()); out.print(source[243]); // 1236:50 = "; }" } } else { if (attr.getDataType().isPrimitive()) { out.print(source[244]); // 1243:2 = " if (this." out.print(attr.getName()); out.print(source[245]); // 1244:31 = " != " out.print(attr.getName()); out.print(source[246]); // 1244:53 = ") { setModified(true); this...." out.print(attr.getName()); out.print(source[247]); // 1246:29 = " = " out.print(attr.getName()); out.print(source[248]); // 1246:50 = ";" if (isAttracked()) { out.print(source[249]); // 1249:2 = " " out.print(attr.getName()); out.print(source[250]); // 1250:24 = "Modified = true; firePropertyChang..." out.print(attr.getName().toUpperCase(Locale.ROOT)); out.print(source[251]); // 1251:71 = ", this." out.print(attr.getName()); out.print(source[252]); // 1251:96 = ", " out.print(attr.getName()); out.print(source[253]); // 1251:116 = ");" } out.print(source[254]); // 1254:2 = " }" } else { out.print(source[255]); // 1259:2 = " if (!Objects.equals(this." out.print(attr.getName()); out.print(source[256]); // 1260:47 = ", " out.print(attr.getName()); out.print(source[257]); // 1260:67 = ")) { setModified(true); this..." out.print(attr.getName()); out.print(source[258]); // 1262:29 = " = " out.print(attr.getName()); out.print(source[259]); // 1262:50 = ";" if (isAttracked()) { out.print(source[260]); // 1265:2 = " " out.print(attr.getName()); out.print(source[261]); // 1266:24 = "Modified = true; firePropertyChang..." out.print(attr.getName().toUpperCase(Locale.ROOT)); out.print(source[262]); // 1267:71 = ", this." out.print(attr.getName()); out.print(source[263]); // 1267:96 = ", " out.print(attr.getName()); out.print(source[264]); // 1267:116 = ");" } out.print(source[265]); // 1270:2 = " }" } } } else { out.print(source[266]); // 1277:2 = " assertMutable(); this." out.print(attr.getName()); out.print(source[267]); // 1279:27 = " = " out.print(attr.getName()); out.print(source[268]); // 1279:48 = ";" } } out.print(source[269]); // 1283:2 = " }" if (isAttracked()) { if (noif || attr.isHidden()) { out.print(source[270]); // 1288:2 = " /** * Gets the modification state ..." out.print(attr.getName()); out.print(source[271]); // 1291:54 = ". * * @return true if " out.print(attr); out.print(source[272]); // 1293:30 = " has been modified */" } else { out.print(source[273]); // 1298:2 = " @Override" } out.print(source[274]); // 1303:2 = " " out.print(protection); out.print(source[275]); // 1304:16 = " boolean is" out.print(methodSuffix); out.print(source[276]); // 1304:43 = "Modified() {" if (isFullTracked()) { if (attr.getDataType().isPrimitive()) { out.print(source[277]); // 1308:2 = " return " out.print(attr.getName()); out.print(source[278]); // 1309:29 = " != " out.print(attr.getName()); out.print(source[279]); // 1309:51 = "Persisted;" } else { out.print(source[280]); // 1313:2 = " return !Objects.equals(" out.print(attr.getName()); out.print(source[281]); // 1314:45 = ", " out.print(attr.getName()); out.print(source[282]); // 1314:65 = "Persisted);" } } else { out.print(source[283]); // 1319:2 = " return " out.print(attr.getName()); out.print(source[284]); // 1320:29 = "Modified;" } out.print(source[285]); // 1323:2 = " }" } if (isFullTracked()) { if (noif || attr.isHidden()) { out.print(source[286]); // 1330:2 = " /** * Gets the last persisted valu..." out.print(attr); out.print(source[287]); // 1333:46 = ". * * @return the last persisted v..." } else { out.print(source[288]); // 1340:2 = " @Override" } out.print(source[289]); // 1345:2 = " " out.print(protection); out.print(source[290]); // 1346:16 = " " out.print(attr.getJavaType()); out.print(source[291]); // 1346:39 = " " out.print(getter); out.print(source[292]); // 1346:50 = "Persisted() { return " out.print(attr.getName()); out.print(source[293]); // 1347:29 = "Persisted; }" } } } } if (!generateMock) { if (isPdo && generateSnapshot) { // createAttributesInSnapshot isnt necessary anymore since 2.2.x, because all attributes are either immutable or frozen // therefore, modifying an attribute requires changing the object reference boolean needRevertAttributes = false; for (Attribute attr: getEntity().getAttributes()) { if (!attr.getOptions().isMute() && !isAttributeDerived(attr) && !attr.getOptions().isShallow()) { needRevertAttributes = true; break; } } if (needRevertAttributes) { out.print(source[294]); // 1370:2 = " /** * Copies all attributes from a..." out.print(mainClass); out.print(getEntity().isAbstract() ? "" : ""); out.print(source[295]); // 1377:100 = " snapshot) { super.revertAttributesT..." for (Attribute attr: getEntity().getAttributes()) { if (!attr.getOptions().isNoDeclare() && !isAttributeDerived(attr) && !attr.getOptions().isShallow() && !attr.getOptions().isMute()) { String name = attr.getName(); out.print(source[296]); // 1383:2 = " " out.print(name); out.print(source[297]); // 1384:12 = " = snapshot." out.print(name); out.print(source[298]); // 1384:32 = ";" if (isAttracked()) { if (isFullTracked()) { out.print(source[299]); // 1388:2 = " " out.print(name); out.print(source[300]); // 1389:12 = "Persisted = snapshot." out.print(name); out.print(source[301]); // 1389:41 = "Persisted;" } else { out.print(source[302]); // 1393:2 = " " out.print(name); out.print(source[303]); // 1394:12 = "Modified = snapshot." out.print(name); out.print(source[304]); // 1394:40 = "Modified;" } } } } out.print(source[305]); // 1400:2 = " }" } } if (generateCreateNormText) { out.print(source[306]); // 1407:2 = " @Override public StringBuilder crea..." for (Attribute attr: getEntity().getAttributes()) { if (attr.getOptions().isPartOfNormText()) { out.print(source[307]); // 1418:2 = " buf.append(" out.print(attr.getGetterName()); out.print(source[308]); // 1419:39 = "()).append(',');" } } for (Relation rel: getEntity().getRelations()) { if (rel.isEmbedding()) { boolean hasNormText = false; for (Attribute attr: rel.getForeignEntity().getAttributes()) { if (attr.getOptions().isPartOfNormText()) { hasNormText = true; break; } } if (!hasNormText) { for (Attribute attr: rel.getForeignEntity().getEmbeddedAttributes()) { if (attr.getOptions().isPartOfNormText()) { hasNormText = true; break; } } } if (hasNormText) { out.print(source[309]); // 1442:2 = " buf.append(Objects.requireNonNullEls..." out.print(rel.getGetterName()); out.print(source[310]); // 1443:98 = "().getPersistenceDelegate()).createAttri..." } } } out.print(source[311]); // 1448:2 = " return buf; }" } if (generatePresetVirgin) { out.print(source[312]); // 1455:2 = " @Override protected void presetVirg..." for (Attribute attr: getEntity().getAttributes()) { String newValue = attr.getOptions().getNewValue(); if (newValue != null) { out.print(source[313]); // 1463:2 = " " out.print(attr.getName()); out.print(source[314]); // 1464:22 = " = " out.print(newValue); out.print(source[315]); // 1464:37 = ";" } } out.print(source[316]); // 1468:2 = " }" } if (generateSelectByUDK) { List udk = getEntity().getUniqueDomainKey(); if (!udk.isEmpty()) { List superUdk = null; if (getEntity().getSuperEntity() != null) { superUdk = getEntity().getSuperEntity().getUniqueDomainKey(); } if (superUdk == null || !udk.equals(superUdk)) { Set components = getEntity().getAllComponents(); StringBuilder attribs = new StringBuilder(); for (Attribute attribute: udk) { if (attribs.length() != 0) { attribs.append(" "); } if (components.contains(attribute.getEntity())) { attribs.append(attribute.getEntity()).append("."); } attribs.append(attribute.getName()); } out.print(source[317]); // 1492:2 = " // selects by unique domain key // ..." out.print(attribs); out.print(source[318]); // 1495:66 = "" } } } } } // ----------------- end wurblet code ----------------- }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy