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

org.tentackle.persist.wurblet.ClassVariables 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}) Generates the code to setup the class-variables for an entity.
 * 

* usage:
* @wurblet <tag> ClassVariables *

* For more options, see {@link DbModelWurblet}. */ public class ClassVariables 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 { String pdoName = getPdoClassName(); String className = getClassName(); boolean multiInheritance = getEntity().getHierarchyInheritanceType() == InheritanceType.MULTI; Entity superEntity = getEntity().getSuperEntity(); List subEntities = getEntity().getSubEntities(); out.print(source[0]); // 17:2 = " /** Variables common to all instances ..." out.print(className); out.print(source[1]); // 18:56 = ". */" if (getEntity().isAbstract() && getEntity().getInheritanceType().isMappingToNoTable()) { // PLAIN out.print(source[2]); // 21:2 = " /** no classvariables for " out.print(getEntity().getInheritanceType()); out.print(source[3]); // 22:64 = " inheritance. */" } else { String cvType = "PersistentObjectClassVariables"; if (!getEntity().isAbstract()) { cvType += "<" + pdoName + ", " + className + ">"; } String alias = getEntity().getTableAlias(); String strAlias = alias != null ? "\"" + alias + "\"" : "null"; String superCV = "null"; List joins = getEagerRelations(); if (superEntity != null && !superEntity.getInheritanceType().isMappingToNoTable() || !subEntities.isEmpty()) { if (superEntity != null) { superCV = deriveClassNameForEntity(superEntity) + ".CLASSVARIABLES"; out.print(source[4]); // 40:2 = " @SuppressWarnings({"unchecked", "rawty..." } else { out.print(source[5]); // 45:2 = " @SuppressWarnings({"unchecked", "rawty..." } } else if (joins != null) { out.print(source[6]); // 51:2 = " @SuppressWarnings({"unchecked", "rawty..." } out.print(source[7]); // 55:2 = " public static final " out.print(cvType); out.print(source[8]); // 56:32 = " CLASSVARIABLES = Persistent..." out.print(pdoName); out.print(source[9]); // 58:31 = ".class, " out.print(className); out.print(source[10]); // 59:33 = ".class, " out.print(strAlias); out.print(source[11]); // 60:32 = ", " out.print(superCV); out.print(source[12]); // 61:31 = "," if (joins != null) { String poImpl = deriveClassNameForEntity(getEntity()); out.print(source[13]); // 65:2 = " List.of(" int joinCount = 0; for (Relation join: joins) { if (join.getMethodArgs().size() > 1) { throw new ModelException("eager relations with 'args=...' are currently not supported", join); } joinCount++; String joinClass = join.getForeignEntity().getName(); String joinAlias = join.getForeignEntity().getTopSuperEntity().getTableAlias(); if (join.getForeignEntity().isAbstract()) { if (join.getRelationType() == RelationType.LIST) { out.print(source[14]); // 78:2 = " new Join<>(JoinTyp..." out.print(alias); out.print(source[15]); // 79:58 = ".id", "e_" out.print(joinCount); out.print(source[16]); // 79:80 = "." out.print(join.getForeignAttribute().getColumnName()); out.print(source[17]); // 79:127 = "", " out.print(joinClass); out.print(source[18]); // 79:143 = ".class, "e_" out.print(joinCount); out.print(source[19]); // 79:167 = "", (" out.print(pdoName); out.print(source[20]); // 80:36 = " " out.print(alias); out.print(source[21]); // 80:46 = ", " out.print(joinClass); out.print(source[22]); // 80:61 = " " out.print(joinAlias); out.print(source[23]); // 80:75 = ") -> { " out.print(poImpl); out.print(source[24]); // 81:36 = " po = (" out.print(poImpl); out.print(source[25]); // 81:53 = ") " out.print(alias); out.print(source[26]); // 81:64 = ".getPersistenceDelegate(); ..." out.print(join.getGetterName()); out.print(source[27]); // 82:53 = "Blunt().add(" out.print(joinAlias); out.print(source[28]); // 82:78 = "); } ..." out.print(joinCount < joins.size() ? ")," : ")"); out.print(source[29]); // 84:63 = "" } else { out.print(source[30]); // 88:2 = " new Join<>(JoinTyp..." out.print(alias); out.print(source[31]); // 89:58 = "." out.print(join.getAttribute().getColumnName()); out.print(source[32]); // 89:98 = "", "e_" out.print(joinCount); out.print(source[33]); // 89:117 = ".id", " out.print(joinClass); out.print(source[34]); // 89:136 = ".class, "e_" out.print(joinCount); out.print(source[35]); // 89:160 = "", (" out.print(pdoName); out.print(source[36]); // 90:36 = " " out.print(alias); out.print(source[37]); // 90:46 = ", " out.print(joinClass); out.print(source[38]); // 90:61 = " " out.print(joinAlias); out.print(source[39]); // 90:75 = ") -> { " out.print(alias); out.print(source[40]); // 91:35 = "." out.print(join.getSetterName()); out.print(source[41]); // 91:60 = "(" out.print(joinAlias); out.print(source[42]); // 91:74 = "); } ..." out.print(joinCount < joins.size() ? ")," : ")"); out.print(source[43]); // 93:63 = "" } } else { // non-abstract if (join.getRelationType() == RelationType.LIST) { out.print(source[44]); // 99:2 = " new Join<>(JoinTyp..." out.print(alias); out.print(source[45]); // 100:58 = ".id", "e_" out.print(joinCount); out.print(source[46]); // 100:80 = "." out.print(join.getForeignAttribute().getColumnName()); out.print(source[47]); // 100:127 = "", " out.print(joinClass); out.print(source[48]); // 100:143 = ".class, "e_" out.print(joinCount); out.print(source[49]); // 100:167 = "", (" out.print(alias); out.print(source[50]); // 101:34 = ", " out.print(joinAlias); out.print(source[51]); // 101:49 = ") -> {" if (join.isReversed()) { out.print(source[52]); // 104:2 = " ((" out.print(poImpl); out.print(source[53]); // 105:38 = ") " out.print(alias); out.print(source[54]); // 105:49 = ".getPersistenceDelegate())." out.print(join.getSetterName()); out.print(join.isSerialized()?"Blunt":""); out.print(source[55]); // 105:134 = "(" out.print(joinAlias); out.print(source[56]); // 105:148 = ");" } else { out.print(source[57]); // 109:2 = " ((" out.print(poImpl); out.print(source[58]); // 110:38 = ") " out.print(alias); out.print(source[59]); // 110:49 = ".getPersistenceDelegate())." out.print(join.getGetterName()); out.print(source[60]); // 110:100 = "Blunt().addBlunt(" out.print(joinAlias); out.print(source[61]); // 110:130 = ");" if (join.getLinkMethodName() != null) { String joinImpl = deriveClassNameForEntity(join.getForeignEntity()); out.print(source[62]); // 114:2 = " ((" out.print(joinImpl); out.print(source[63]); // 115:40 = ") " out.print(joinAlias); out.print(source[64]); // 115:55 = ".getPersistenceDelegate())." out.print(createRelationUpdateReferenceCode(join, alias, true)); out.print(source[65]); // 115:138 = ";" } } out.print(source[66]); // 119:2 = " } ..." out.print(joinCount < joins.size() ? ")," : ")"); out.print(source[67]); // 121:63 = "" } else { out.print(source[68]); // 125:2 = " new Join<>(JoinTyp..." out.print(alias); out.print(source[69]); // 126:58 = "." out.print(join.getAttribute().getColumnName()); out.print(source[70]); // 126:98 = "", "e_" out.print(joinCount); out.print(source[71]); // 126:117 = ".id", " out.print(joinClass); out.print(source[72]); // 126:136 = ".class, "e_" out.print(joinCount); out.print(source[73]); // 126:160 = "", (" out.print(alias); out.print(source[74]); // 127:34 = ", " out.print(joinAlias); out.print(source[75]); // 127:49 = ") -> { " out.print(alias); out.print(source[76]); // 128:35 = "." out.print(join.getSetterName()); out.print(join.isSerialized()?"Blunt":""); out.print(source[77]); // 128:94 = "(" out.print(joinAlias); out.print(source[78]); // 128:108 = "); } ..." out.print(joinCount < joins.size() ? ")," : ")"); out.print(source[79]); // 130:63 = "" } } } out.print(source[80]); // 135:2 = " ) );..." } else { out.print(source[81]); // 141:2 = " null);" } out.print(source[82]); // 145:2 = " @Override" if (getEntity().isAbstract()) { out.print(source[83]); // 150:2 = " @SuppressWarnings("unchecked")" } out.print(source[84]); // 154:2 = " public " out.print(cvType); out.print(getEntity().isAbstract() ? "" : ""); out.print(source[85]); // 155:62 = " getClassVariables() { return CLASSV..." } } // ----------------- end wurblet code ----------------- }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy