From: Vance K. <va...@us...> - 2006-01-03 01:35:04
|
User: vancek Date: 06/01/02 17:34:57 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3AssociationEndFacadeLogicImpl.java Log: renamed fetch type constants Revision Changes Path 1.2 +4 -4 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java Index: EJB3AssociationEndFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- EJB3AssociationEndFacadeLogicImpl.java 28 Dec 2005 00:32:55 -0000 1.1 +++ EJB3AssociationEndFacadeLogicImpl.java 3 Jan 2006 01:34:57 -0000 1.2 @@ -117,11 +117,11 @@ { if (this.getOtherEnd().isOne2Many() || this.getOtherEnd().isMany2Many()) { - fetchType = EJB3Profile.FETCHTYPE_LAZY; + fetchType = EJB3Globals.FETCH_TYPE_LAZY; } else { - fetchType = EJB3Profile.FETCHTYPE_EAGER; + fetchType = EJB3Globals.FETCH_TYPE_EAGER; } } @@ -136,7 +136,7 @@ boolean isEager = false; if (StringUtils.isNotBlank(this.getFetchType())) { - if (this.getFetchType().equalsIgnoreCase(EJB3Profile.FETCHTYPE_EAGER)) + if (this.getFetchType().equalsIgnoreCase(EJB3Globals.FETCH_TYPE_EAGER)) { isEager = true; } @@ -152,7 +152,7 @@ boolean isLazy = false; if (StringUtils.isNotBlank(this.getFetchType())) { - if (this.getFetchType().equalsIgnoreCase(EJB3Profile.FETCHTYPE_LAZY)) + if (this.getFetchType().equalsIgnoreCase(EJB3Globals.FETCH_TYPE_LAZY)) { isLazy = true; } |
From: Vance K. <va...@us...> - 2006-01-25 02:57:35
|
User: vancek Date: 06/01/24 18:57:29 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3AssociationEndFacadeLogicImpl.java Log: moved ENTITY_DEFAULT_ASSOCIATION_OPTIONAL, ENTITY_DEFAULT_COMPOSITE_CASCADE, ENTITY_DEFAULT_AGGREGATION_CASCADE from EJB3Global Revision Changes Path 1.3 +19 -4 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java Index: EJB3AssociationEndFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- EJB3AssociationEndFacadeLogicImpl.java 3 Jan 2006 01:34:57 -0000 1.2 +++ EJB3AssociationEndFacadeLogicImpl.java 25 Jan 2006 02:57:29 -0000 1.3 @@ -24,6 +24,21 @@ { /** + * The property that stores the default entity association optional attribute for Many-to-One and One-to-One + */ + public static final String ENTITY_DEFAULT_ASSOCIATION_OPTIONAL = "entityDefaultAssociationOptional"; + + /** + * The default composite association cascade property + */ + public static final String ENTITY_DEFAULT_COMPOSITE_CASCADE = "entityCompositeCascade"; + + /** + * The default aggregation association cascade property + */ + public static final String ENTITY_DEFAULT_AGGREGATION_CASCADE = "entityAggergationCascade"; + + /** * Represents the EJB3 <code>ALL</code> cascade option and fully qualified representation. */ private static final String ENTITY_CASCADE_ALL = "ALL"; @@ -184,7 +199,7 @@ if (StringUtils.isBlank(optionalString)) { optionalString = - String.valueOf(this.getConfiguredProperty(EJB3Globals.ENTITY_DEFAULT_ASSOCIATION_OPTIONAL)); + String.valueOf(this.getConfiguredProperty(ENTITY_DEFAULT_ASSOCIATION_OPTIONAL)); } optional = Boolean.valueOf(optionalString).booleanValue(); return optional; @@ -336,7 +351,7 @@ protected String handleGetCompositionCascadeType() { return StringUtils.trimToEmpty( - ObjectUtils.toString(this.getConfiguredProperty(EJB3Globals.ENTITY_DEFAULT_COMPOSITE_CASCADE))); + ObjectUtils.toString(this.getConfiguredProperty(ENTITY_DEFAULT_COMPOSITE_CASCADE))); } /** @@ -345,7 +360,7 @@ protected String handleGetAggregationCascadeType() { return StringUtils.trimToEmpty( - ObjectUtils.toString(this.getConfiguredProperty(EJB3Globals.ENTITY_DEFAULT_AGGREGATION_CASCADE))); + ObjectUtils.toString(this.getConfiguredProperty(ENTITY_DEFAULT_AGGREGATION_CASCADE))); } } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-01-26 07:07:40
|
User: vancek Date: 06/01/25 23:07:33 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3AssociationEndFacadeLogicImpl.java Log: added collection type constants, overriden getGetterSetterTypeName and added optional generics, added getSpecificCollectionType, getCollectionType, isList, isMap and isSet Revision Changes Path 1.4 +191 -8 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java Index: EJB3AssociationEndFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- EJB3AssociationEndFacadeLogicImpl.java 25 Jan 2006 02:57:29 -0000 1.3 +++ EJB3AssociationEndFacadeLogicImpl.java 26 Jan 2006 07:07:33 -0000 1.4 @@ -1,13 +1,17 @@ package org.andromda.cartridges.ejb3.metafacades; +import java.util.ArrayList; import java.util.Collection; import java.util.Hashtable; import java.util.Iterator; import org.andromda.cartridges.ejb3.EJB3Globals; import org.andromda.cartridges.ejb3.EJB3Profile; +import org.andromda.metafacades.uml.ClassifierFacade; import org.andromda.metafacades.uml.TaggedValueFacade; -import org.apache.commons.lang.BooleanUtils; +import org.andromda.metafacades.uml.TypeMappings; +import org.andromda.metafacades.uml.UMLMetafacadeProperties; +import org.andromda.metafacades.uml.UMLProfile; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; @@ -39,6 +43,26 @@ public static final String ENTITY_DEFAULT_AGGREGATION_CASCADE = "entityAggergationCascade"; /** + * The namespace property storing default collection type for associations + */ + public static final String ASSOCIATION_COLLECTION_TYPE = "associationCollectionType"; + + /** + * A flag indicating whether or not specific (java.util.Set, java.util.List, + * etc) collection interfaces should be used in assocation mutators and + * accessors or whether the generic java.util.Collection interface should be + * used. + */ + public static final String SPECIFIC_COLLECTION_INTERFACES = "specificCollectionInterfaces"; + + /** + * The property that defines the default collection interface, this is the + * interface used if the property defined by + * {@link #SPECIFIC_COLLECTION_INTERFACES} is true. + */ + public static final String DEFAULT_COLLECTION_INTERFACE = "defaultCollectionInterface"; + + /** * Represents the EJB3 <code>ALL</code> cascade option and fully qualified representation. */ private static final String ENTITY_CASCADE_ALL = "ALL"; @@ -87,6 +111,39 @@ cascadeTable.put(ENTITY_CASCADE_REFRESH, ENTITY_CASCADE_REFRESH_FQN); } + /** + * Value for set + */ + private static final String COLLECTION_TYPE_SET = "set"; + + /** + * Value for map + */ + private static final String COLLECTION_TYPE_MAP = "map"; + + /** + * Value for list + */ + private static final String COLLECTION_TYPE_LIST = "list"; + + /** + * Value for collections + */ + private static final String COLLECTION_TYPE_COLLECTION = "collection"; + + /** + * Stores the valid collection types + */ + private static final Collection collectionTypes = new ArrayList(); + + static + { + collectionTypes.add(COLLECTION_TYPE_SET); + collectionTypes.add(COLLECTION_TYPE_MAP); + collectionTypes.add(COLLECTION_TYPE_LIST); + collectionTypes.add(COLLECTION_TYPE_COLLECTION); + } + // ---------------- constructor ------------------------------- public EJB3AssociationEndFacadeLogicImpl (Object metaObject, String context) @@ -96,21 +153,77 @@ // --------------- methods --------------------- + /** - * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacade#getRelationType() + * @see org.andromda.metafacades.uml.AssociationEndFacade#getGetterSetterTypeName() */ - protected java.lang.String handleGetRelationType() + public String getGetterSetterTypeName() + { + String getterSetterTypeName = null; + + if (this.isMany()) + { + final boolean specificInterfaces = + Boolean.valueOf( + ObjectUtils.toString(this.getConfiguredProperty(SPECIFIC_COLLECTION_INTERFACES))).booleanValue(); + + final TypeMappings mappings = this.getLanguageMappings(); + if (mappings != null) + { + if (this.isMap()) + { + getterSetterTypeName = mappings.getTo(UMLProfile.MAP_TYPE_NAME); + } + else if (specificInterfaces) + { + if (this.isSet()) { - String targetType; - if (this.isMany2Many() || this.isOne2Many()) + getterSetterTypeName = mappings.getTo(UMLProfile.SET_TYPE_NAME); + } + else if (this.isList()) + { + getterSetterTypeName = mappings.getTo(UMLProfile.LIST_TYPE_NAME); + } + } + else + { + getterSetterTypeName = + ObjectUtils.toString(this.getConfiguredProperty(DEFAULT_COLLECTION_INTERFACE)); + } + } + else { - targetType = "java.util.Collection"; + getterSetterTypeName = ObjectUtils.toString(this.getConfiguredProperty(DEFAULT_COLLECTION_INTERFACE)); + } } else { - targetType = this.getOtherEnd().getType().getFullyQualifiedName(); + final ClassifierFacade type = this.getType(); + if (type instanceof EJB3EntityFacade) + { + final String typeName = ((EJB3EntityFacade)type).getFullyQualifiedEntityName(); + if (StringUtils.isNotEmpty(typeName)) + { + getterSetterTypeName = typeName; + } } - return targetType; + } + + if (getterSetterTypeName == null) + { + getterSetterTypeName = super.getGetterSetterTypeName(); + } + else if (this.isMany()) + { + /** + * Set this association end's type as a template parameter if required + */ + if ("true".equals(this.getConfiguredProperty(UMLMetafacadeProperties.ENABLE_TEMPLATING))) + { + getterSetterTypeName = getterSetterTypeName + "<" + this.getType().getFullyQualifiedName() + ">"; + } + } + return getterSetterTypeName; } /** @@ -363,4 +476,74 @@ ObjectUtils.toString(this.getConfiguredProperty(ENTITY_DEFAULT_AGGREGATION_CASCADE))); } + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacadeLogic#handleGetCollectionType() + */ + protected String handleGetCollectionType() + { + String collectionType = this.getSpecificCollectionType(); + if (!collectionTypes.contains(collectionType)) + { + if (this.isOrdered()) + { + collectionType = COLLECTION_TYPE_LIST; + } + else + { + collectionType = + (String)this.getConfiguredProperty(ASSOCIATION_COLLECTION_TYPE); + } + } + return collectionType; + } + + /** + * Gets the collection type defined on this association end. + * + * @return the specific collection type. + */ + private String getSpecificCollectionType() + { + return ObjectUtils.toString( + this.findTaggedValue(EJB3Profile.TAGGEDVALUE_ASSOCIATION_COLLECTION_TYPE)); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacadeLogic#handleIsMap() + */ + protected boolean handleIsMap() + { + boolean isMap = this.getCollectionType().equalsIgnoreCase(COLLECTION_TYPE_MAP); + if (isMap && StringUtils.isBlank(this.getSpecificCollectionType())) + { + isMap = !this.isOrdered(); + } + return isMap; + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacadeLogic#handleIsList() + */ + protected boolean handleIsList() + { + boolean isList = this.getCollectionType().equalsIgnoreCase(COLLECTION_TYPE_LIST); + if (!isList && StringUtils.isBlank(this.getSpecificCollectionType())) + { + isList = this.isOrdered(); + } + return isList; + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacadeLogic#handleIsSet() + */ + protected boolean handleIsSet() + { + boolean isSet = this.getCollectionType().equalsIgnoreCase(COLLECTION_TYPE_SET); + if (isSet && StringUtils.isBlank(this.getSpecificCollectionType())) + { + isSet = !this.isOrdered(); + } + return isSet; + } } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-01-28 02:57:50
|
User: vancek Date: 06/01/27 18:57:45 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3AssociationEndFacadeLogicImpl.java Log: override isRequired to check if the association end is optional using multiplicity rather than tagged value. Revision Changes Path 1.5 +29 -9 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java Index: EJB3AssociationEndFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- EJB3AssociationEndFacadeLogicImpl.java 26 Jan 2006 07:07:33 -0000 1.4 +++ EJB3AssociationEndFacadeLogicImpl.java 28 Jan 2006 02:57:44 -0000 1.5 @@ -28,11 +28,6 @@ { /** - * The property that stores the default entity association optional attribute for Many-to-One and One-to-One - */ - public static final String ENTITY_DEFAULT_ASSOCIATION_OPTIONAL = "entityDefaultAssociationOptional"; - - /** * The default composite association cascade property */ public static final String ENTITY_DEFAULT_COMPOSITE_CASCADE = "entityCompositeCascade"; @@ -227,6 +222,29 @@ } /** + * Overridden to provide handling of inheritance. + * + * @see org.andromda.metafacades.uml.AssociationEndFacade#isRequired() + */ + public boolean isRequired() + { + boolean required = super.isRequired(); + Object type = this.getOtherEnd().getType(); + + if ((type != null) && EJB3EntityFacade.class.isAssignableFrom(type.getClass())) + { + EJB3EntityFacade entity = (EJB3EntityFacade)type; + + if (entity.isInheritanceSingleTable() && (entity.getGeneralization() != null)) + { + required = false; + } + } + + return required; + } + + /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacade#getFetchType() * * This method is always called on the target association end. @@ -311,10 +329,12 @@ if (StringUtils.isBlank(optionalString)) { - optionalString = - String.valueOf(this.getConfiguredProperty(ENTITY_DEFAULT_ASSOCIATION_OPTIONAL)); + optional = !this.isRequired(); } + else + { optional = Boolean.valueOf(optionalString).booleanValue(); + } return optional; } |
From: Vance K. <va...@us...> - 2006-02-01 08:41:10
|
User: vancek Date: 06/02/01 00:41:04 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3AssociationEndFacadeLogicImpl.java Log: getFetchType now checked for compositionDefinesEagerLoading if no fetch type tagged value exists. Revision Changes Path 1.6 +36 -16 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java Index: EJB3AssociationEndFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- EJB3AssociationEndFacadeLogicImpl.java 28 Jan 2006 02:57:44 -0000 1.5 +++ EJB3AssociationEndFacadeLogicImpl.java 1 Feb 2006 08:41:04 -0000 1.6 @@ -139,6 +139,12 @@ collectionTypes.add(COLLECTION_TYPE_COLLECTION); } + /** + * Stores the property indicating whether or not composition should define + * the eager loading strategy and aggregation define lazy loading strategy. + */ + private static final String COMPOSITION_DEFINES_EAGER_LOADING = "compositionDefinesEagerLoading"; + // ---------------- constructor ------------------------------- public EJB3AssociationEndFacadeLogicImpl (Object metaObject, String context) @@ -246,14 +252,6 @@ /** * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacade#getFetchType() - * - * This method is always called on the target association end. - * If a fetch type tagged value is not found on the target end, then compare the association - * relationship from the source end to indicate the default fetch types. - * <ul> - * <li>One-2-Many and Many-2-Many defaults to LAZY loading</li> - * <li>Many-2-One and One-2-One default to EAGER loading</li> - * </ul> */ protected String handleGetFetchType() { @@ -261,6 +259,29 @@ if (StringUtils.isBlank(fetchType)) { + // check whether or not composition defines eager loading is turned on + boolean compositionDefinesEagerLoading = + Boolean.valueOf(String.valueOf(this.getConfiguredProperty(COMPOSITION_DEFINES_EAGER_LOADING))) + .booleanValue(); + + if (compositionDefinesEagerLoading) + { + if (this.getOtherEnd().isComposition()) + { + fetchType = EJB3Globals.FETCH_TYPE_EAGER; + } + else if (this.getOtherEnd().isAggregation()) + { + fetchType = EJB3Globals.FETCH_TYPE_LAZY; + } + } + } + + /** + * Go for defaults if blank + */ + if (StringUtils.isBlank(fetchType)) + { if (this.getOtherEnd().isOne2Many() || this.getOtherEnd().isMany2Many()) { fetchType = EJB3Globals.FETCH_TYPE_LAZY; @@ -270,7 +291,6 @@ fetchType = EJB3Globals.FETCH_TYPE_EAGER; } } - return fetchType; } |
From: Vance K. <va...@us...> - 2006-02-20 05:19:08
|
User: vancek Date: 06/02/19 21:19:02 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3AssociationEndFacadeLogicImpl.java Log: implemented getLabelName, getGetterLabelName and getSetterLabelName Revision Changes Path 1.7 +32 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java Index: EJB3AssociationEndFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -w -r1.6 -r1.7 --- EJB3AssociationEndFacadeLogicImpl.java 1 Feb 2006 08:41:04 -0000 1.6 +++ EJB3AssociationEndFacadeLogicImpl.java 20 Feb 2006 05:19:01 -0000 1.7 @@ -1,5 +1,6 @@ package org.andromda.cartridges.ejb3.metafacades; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Hashtable; @@ -11,6 +12,7 @@ import org.andromda.metafacades.uml.TaggedValueFacade; import org.andromda.metafacades.uml.TypeMappings; import org.andromda.metafacades.uml.UMLMetafacadeProperties; +import org.andromda.metafacades.uml.UMLMetafacadeUtils; import org.andromda.metafacades.uml.UMLProfile; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; @@ -586,4 +588,34 @@ } return isSet; } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacadeLogic#handleGetLabelName() + */ + protected String handleGetLabelName() + { + String labelNamePattern = (this.isMany() ? + (String)this.getConfiguredProperty(EJB3Globals.LABEL_COLLECTION_NAME_PATTERN) : + (String)this.getConfiguredProperty(EJB3Globals.LABEL_SINGLE_NAME_PATTERN)); + + return MessageFormat.format( + labelNamePattern, + new Object[] {StringUtils.trimToEmpty(this.getName())}); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacadeLogic#handleGetGetterLabelName() + */ + protected String handleGetGetterLabelName() + { + return UMLMetafacadeUtils.getGetterPrefix(this.getType()) + StringUtils.capitalize(this.getLabelName()); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacadeLogic#handleGetSetterLabelName() + */ + protected String handleGetSetterLabelName() + { + return "set" + StringUtils.capitalize(this.getLabelName()); + } } \ No newline at end of file |
From: Vance K. <va...@us...> - 2006-03-14 06:22:24
|
User: vancek Date: 06/03/13 22:22:23 Modified: andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3AssociationEndFacadeLogicImpl.java Log: implemented getCacheType and isAssociationCacheEnabled Revision Changes Path 1.8 +32 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java Index: EJB3AssociationEndFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3AssociationEndFacadeLogicImpl.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -r1.7 -r1.8 --- EJB3AssociationEndFacadeLogicImpl.java 20 Feb 2006 05:19:01 -0000 1.7 +++ EJB3AssociationEndFacadeLogicImpl.java 14 Mar 2006 06:22:21 -0000 1.8 @@ -14,6 +14,7 @@ import org.andromda.metafacades.uml.UMLMetafacadeProperties; import org.andromda.metafacades.uml.UMLMetafacadeUtils; import org.andromda.metafacades.uml.UMLProfile; +import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.ObjectUtils; import org.apache.commons.lang.StringUtils; @@ -147,6 +148,16 @@ */ private static final String COMPOSITION_DEFINES_EAGER_LOADING = "compositionDefinesEagerLoading"; + /** + * The property that stores whether relationship collection caching is enabled. + */ + private static final String HIBERNATE_ASSOCIATION_ENABLE_CACHE = "hibernateEnableAssociationsCache"; + + /** + * Stores the default cache strategy for relationship Collections. + */ + private static final String HIBERNATE_ASSOCIATION_CACHE = "hibernateAssociationCache"; + // ---------------- constructor ------------------------------- public EJB3AssociationEndFacadeLogicImpl (Object metaObject, String context) @@ -618,4 +629,25 @@ { return "set" + StringUtils.capitalize(this.getLabelName()); } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacadeLogic#handleGetCacheType() + */ + protected String handleGetCacheType() + { + String cacheType = (String)findTaggedValue(EJB3Profile.TAGGEDVALUE_HIBERNATE_ASSOCIATION_CACHE); + if (StringUtils.isBlank(cacheType)) + { + cacheType = String.valueOf(this.getConfiguredProperty(HIBERNATE_ASSOCIATION_CACHE)); + } + return StringUtils.trimToEmpty(cacheType); + } + + /** + * @see org.andromda.cartridges.ejb3.metafacades.EJB3AssociationEndFacadeLogic#handleIsAssociationCacheEnabled() + */ + protected boolean handleIsAssociationCacheEnabled() + { + return BooleanUtils.toBoolean(String.valueOf(this.getConfiguredProperty(HIBERNATE_ASSOCIATION_ENABLE_CACHE))); + } } \ No newline at end of file |