From: Vance K. <va...@us...> - 2006-06-26 06:45:14
|
User: vancek Date: 06/06/25 23:45:12 Modified: andromda-ejb3/src/main/resources/templates/ejb3/crud ManageableServiceRemote.vsl ManageableServiceBase.vsl andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl Log: ignore attributes with @Version modelled in args for create/update accomodate SortedSet as the default collection interface for one-to-many and many-to-many the dao finder method without a query arg uses NamedQuery rather than generate EJBQL fix EJBQL in manageable service findAll - account for collection association end Revision Changes Path 1.3 +4 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceRemote.vsl Index: ManageableServiceRemote.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceRemote.vsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- ManageableServiceRemote.vsl 17 Feb 2006 02:32:44 -0000 1.2 +++ ManageableServiceRemote.vsl 26 Jun 2006 06:45:12 -0000 1.3 @@ -1,5 +1,8 @@ // license-header java merge-point -/** Autogenerated by AndroMDA (ManageableServiceRemote.vsl) - do not edit */ +// +// Attention: Generated code! Do not modify by hand! +// Generated by: ManageableServiceRemote.vsl in andromda-ejb3-cartridge. +// #set ($generatedFile = "${manageable.manageableServiceFullPath}.java") #set ($memberList = $manageable.listManageableMembers(true)) #if (!$manageable.identifiers.empty) 1.5 +60 -24 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceBase.vsl Index: ManageableServiceBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/crud/ManageableServiceBase.vsl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- ManageableServiceBase.vsl 24 Apr 2006 02:36:16 -0000 1.4 +++ ManageableServiceBase.vsl 26 Jun 2006 06:45:12 -0000 1.5 @@ -1,5 +1,8 @@ // license-header java merge-point -/* Autogenerated by AndroMDA (ManageableServiceBase.vsl) - do not edit */ +// +// Attention: Generated code! Do not modify by hand! +// Generated by: ManageableServiceBase.vsl in andromda-ejb3-cartridge. +// #set ($generatedFile = "${manageable.manageableServiceBaseFullPath}.java") #set ($memberList = $manageable.listManageableMembers(true)) #set ($memberListArguments = $manageable.listManageableMembers(false)) @@ -39,9 +42,9 @@ @javax.persistence.PersistenceContext#if ($manageable.defaultPersistenceContextUnitName)(unitName = "${manageable.defaultPersistenceContextUnitName}")#end protected javax.persistence.EntityManager emanager; + #set ($associatedClasses = $manageable.allAssociatedClasses) #if (!$associatedClasses.empty) - // ------------ Private Operations ---------- #**##foreach ($associatedClass in $associatedClasses) @@ -50,7 +53,7 @@ { try { - javax.persistence.Query query = emanager.createQuery("from ${associatedClass.entityName} as entity where entity.${associatedClass.manageableIdentifierWorkaround.name} in (:${associatedClass.manageableIdentifierWorkaround.name})"); + javax.persistence.Query query = emanager.createQuery("select entity from ${associatedClass.entityName} as entity where entity.${associatedClass.manageableIdentifierWorkaround.name} in (:${associatedClass.manageableIdentifierWorkaround.name})"); query.setParameter("${associatedClass.manageableIdentifierWorkaround.name}", java.util.Arrays.asList(ids)); return query.getResultList(); } @@ -62,7 +65,6 @@ #**##end #end - // ------------ CRUD Operations ------------- #if ($manageable.create) @@ -87,15 +89,21 @@ #**##end final ${manageable.fullyQualifiedName} entity = new ${manageable.fullyQualifiedName}(); #**##foreach ($member in $manageable.manageableAttributes) +## +## Ignore arg where the corresponding entity attribute is modelled as a version +## +#* *##if (!$member.version) entity.${member.setterName}($member.name); #**##end +#**##end try { #**##foreach ($member in $manageable.manageableAssociationEnds) #* *##if ($member.many) #* *##set ($memberEntityName = "${member.name}Entities") - final java.util.List<${member.type.fullyQualifiedName}> $memberEntityName = ($member.name != null && ${member.name}.length > 0) + final java.util.List<${member.type.fullyQualifiedName}> $memberEntityName = + ($member.name != null && ${member.name}.length > 0) ? this.find${member.type.name}ByIds($member.name) : java.util.Collections.EMPTY_LIST; @@ -110,7 +118,11 @@ if ($memberEntityName != null) { +#* *##if ($member.many && !$member.list) + entity.${member.setterName}(${member.getCollectionTypeImplementation($memberEntityName)}); +#* *##else entity.${member.setterName}($memberEntityName); +#* *##end #* *##if ($member.many2Many) #* *##if ($member.otherEnd.navigable) @@ -128,6 +140,7 @@ #* *##end #* *##end } + #**##end emanager.persist(entity); @@ -232,7 +245,6 @@ try { final javax.persistence.Query query = emanager.createQuery(buf.toString()); - #**##foreach ($member in $manageable.manageableAttributes) #* *##if ($member.type.primitive) #* *##if ($member.type.fullyQualifiedName != 'boolean') @@ -312,7 +324,19 @@ { try { - javax.persistence.Query query = emanager.createQuery("from ${manageable.entityName} as entity"); +#set ($findAllQuery = "select entity from ${manageable.entityName} as entity") +#foreach ($member in $manageable.manageableAssociationEnds) +## +## add left join fetch to query to retrieve many side of association ends +## this is only required if the ends are not initialised further down +## +#**##if ($member.type.displayAttributeWorkaround.name == $member.type.manageableIdentifierWorkaround.name) +#* *##if ($member.many) +#* *##set ($findAllQuery = "${findAllQuery} left join fetch entity.${member.name}") +#* *##end +#**##end +#end + javax.persistence.Query query = emanager.createQuery("${findAllQuery}"); #if ($manageable.maximumListSize > 0) query.setMaxResults($manageable.maximumListSize); #end @@ -324,6 +348,8 @@ public Object transform(final Object object) { ${manageable.fullyQualifiedEntityName} result = (${manageable.fullyQualifiedEntityName})object; + if (result.${member.getterName}() != null) + { #* *##if ($member.many) java.util.Collection<${member.type.displayAttributeWorkaround.type.fullyQualifiedName}> $member.labelName = java.util.Collections.synchronizedCollection(new java.util.ArrayList<${member.type.displayAttributeWorkaround.type.fullyQualifiedName}>()); for (final java.util.Iterator<${member.type.fullyQualifiedEntityName}> iterator = result.${member.getterName}().iterator(); iterator.hasNext();) @@ -338,6 +364,7 @@ #* *##else result.${member.setterName}#if ($member.many)Labels#else#**#Label#end(result.${member.getterName}().${member.type.displayAttributeWorkaround.getterName}()); #* *##end + } return result; } }); @@ -437,7 +464,11 @@ #**##end final $manageable.fullyQualifiedName entity = (${manageable.fullyQualifiedName})emanager.find(${manageable.fullyQualifiedName}.class, #if ($identifier.type.primitive)new ${identifier.type.wrapperName}($identifier.name)#else${identifier.name}#end); #**##foreach ($member in $manageable.manageableAttributes) -#* *##if (!$member.identifier)## the identifier is already present since we loaded the entity +## +## Ignore arg where the corresponding entity attribute is modelled as a version +## The identifier is already present since we loaded the entity +## +#* *##if (!$member.identifier && !$member.version) entity.${member.setterName}(${member.name}); #* *##end #**##end @@ -447,7 +478,8 @@ #**##foreach ($member in $manageable.manageableAssociationEnds) #* *##if ($member.many) #* *##set ($memberEntityName = "${member.name}Entities") - final java.util.List<${member.type.fullyQualifiedName}> $memberEntityName = ($member.name != null && ${member.name}.length > 0) + final java.util.List<${member.type.fullyQualifiedName}> $memberEntityName = + ($member.name != null && ${member.name}.length > 0) ? this.find${member.type.name}ByIds($member.name) : java.util.Collections.EMPTY_LIST; @@ -462,7 +494,11 @@ if ($memberEntityName != null) { +#* *##if ($member.many && !$member.list) + entity.${member.setterName}(${member.getCollectionTypeImplementation($memberEntityName)}); +#* *##else entity.${member.setterName}($memberEntityName); +#* *##end #* *##if ($member.many2Many) #* *##if ($member.otherEnd.navigable) // set the other ends of the many2many association too 1.8 +43 -46 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl Index: DaoBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -r1.7 -r1.8 --- DaoBase.vsl 29 May 2006 01:40:14 -0000 1.7 +++ DaoBase.vsl 26 Jun 2006 06:45:12 -0000 1.8 @@ -265,16 +265,21 @@ { $entity.fullyQualifiedEntityName entity = new ${entity.fullyQualifiedEntityName}(); #* *##foreach ($attribute in $attributes) +#* *##if (!$attribute.version) +## +## Ignore arg where the corresponding entity attribute is modelled as a version +## entity.${attribute.setterName}($attribute.name); #* *##end +#* *##end return this.create(transform, entity); } #* *##end -#* *##set ($requiredProperties = $entity.getRequiredProperties(true,false)) -#* *##if (!$requiredProperties.empty && $entity.getRequiredAttributes(true,false).size() != $requiredProperties.size()) +#* *##set ($requiredProperties = $entity.getRequiredProperties(true,$entity.usingAssignedIdentifier)) +#* *##if (!$requiredProperties.empty && $entity.getRequiredAttributes(true,$entity.usingAssignedIdentifier).size() != $requiredProperties.size()) /** - * @see ${entity.fullyQualifiedDaoName}#create(${entity.getRequiredPropertyTypeList(true, false)}) + * @see ${entity.fullyQualifiedDaoName}#create(${entity.getRequiredPropertyTypeList(true, $entity.usingAssignedIdentifier)}) */ public $rootEntityType create( #* *##foreach($property in $requiredProperties) @@ -283,11 +288,11 @@ #* *##end { - return ($rootEntityType)this.create($entity.daoNoTransformationConstantName, ${entity.getRequiredPropertyNameList(true,false)}); + return ($rootEntityType)this.create($entity.daoNoTransformationConstantName, ${entity.getRequiredPropertyNameList(true,$entity.usingAssignedIdentifier)}); } /** - * @see ${entity.fullyQualifiedDaoName}#create(int, ${entity.getRequiredPropertyTypeList(true, false)}) + * @see ${entity.fullyQualifiedDaoName}#create(int, ${entity.getRequiredPropertyTypeList(true, $entity.usingAssignedIdentifier)}) */ public Object create( final int transform, @@ -493,7 +498,6 @@ throws ${entity.fullyQualifiedDaoDefaultExceptionName} #**##end { -#**##if ($finder.namedQuery) try { javax.persistence.Query queryObject = emanager.createNamedQuery("${entity.name}.${finder.name}"); @@ -554,13 +558,6 @@ { throw new ${entity.fullyQualifiedDaoDefaultExceptionName}(ex); } -#**##else -#* *##if ($finder.returnTypePresent) - return this.${finder.name}(transform, "$finder.getQuery($entity)"#if(!$finder.arguments.empty), ${finder.argumentNames}#end); -#* *##else - this.${finder.name}(transform, "$finder.getQuery($entity)"#if(!$finder.arguments.empty), ${finder.argumentNames}#end); -#* *##end -#**##end } /** |