001package org.andromda.metafacades.uml14; 002 003import org.andromda.metafacades.uml.UMLMetafacadeProperties; 004import org.andromda.metafacades.uml.ValueObject; 005 006/** 007 * MetafacadeLogic implementation for org.andromda.metafacades.uml.ValueObjectAssociationEnd. 008 * 009 * @see org.andromda.metafacades.uml.ValueObjectAssociationEnd 010 * @author Bob Fields 011 */ 012public class ValueObjectAssociationEndLogicImpl 013 extends ValueObjectAssociationEndLogic 014{ 015 private static final long serialVersionUID = 5854044247502868320L; 016 017 /** 018 * @param metaObject 019 * @param context 020 */ 021 public ValueObjectAssociationEndLogicImpl(Object metaObject, String context) 022 { 023 super(metaObject, context); 024 } 025 026 /** 027 * Overridden to provide handling of array names within many type multiplicities. 028 * 029 * @see org.andromda.metafacades.uml.AssociationEndFacade#getGetterSetterTypeName() 030 */ 031 @Override 032 protected String handleGetGetterSetterTypeName() 033 { 034 String name = super.handleGetGetterSetterTypeName(); 035 if (this.isMany()) 036 { 037 boolean useArrays = Boolean.valueOf(String.valueOf(this.getConfiguredProperty( 038 UMLMetafacadeProperties.USE_ARRAYS_FOR_MULTIPLICITIES_OF_TYPE_MANY))); 039 if (useArrays) 040 { 041 if (this.getType() != null) 042 { 043 name = this.getType().getFullyQualifiedArrayName(); 044 } 045 } 046 } 047 return name; 048 } 049 050 /** 051 * @see org.andromda.metafacades.uml.ValueObjectAssociationEnd#isValueObjectType() 052 */ 053 @Override 054 protected boolean handleIsValueObjectType() 055 { 056 return this.getType() instanceof ValueObject; 057 } 058 059}