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; } |