001// license-header java merge-point
002//
003// Attention: generated code (by MetafacadeLogic.vsl) - do not modify!
004//
005package org.andromda.metafacades.uml14;
006
007import java.util.Collection;
008import org.andromda.core.metafacade.ModelValidationMessage;
009import org.andromda.metafacades.uml.ManageableEntityAttribute;
010
011/**
012 * TODO: Model Documentation for ManageableEntityAttribute
013 * MetafacadeLogic for ManageableEntityAttribute
014 *
015 * @see ManageableEntityAttribute
016 */
017public abstract class ManageableEntityAttributeLogic
018    extends EntityAttributeLogicImpl
019    implements ManageableEntityAttribute
020{
021    /**
022     * The underlying UML object
023     * @see Object
024     */
025    protected Object metaObject;
026
027    /** Create Metafacade implementation instance using the MetafacadeFactory from the context
028     * @param metaObjectIn
029     * @param context
030     */
031    protected ManageableEntityAttributeLogic(Object metaObjectIn, String context)
032    {
033        super(metaObjectIn, getContext(context));
034        this.metaObject = metaObjectIn;
035    }
036
037    /**
038     * Gets the context for this metafacade logic instance.
039     * @param context String. Set to ManageableEntityAttribute if null
040     * @return context String
041     */
042    private static String getContext(String context)
043    {
044        if (context == null)
045        {
046            context = "org.andromda.metafacades.uml.ManageableEntityAttribute";
047        }
048        return context;
049    }
050
051    /** Reset context only for non-root metafacades
052     * @param context
053     */
054    @Override
055    public void resetMetafacadeContext(String context)
056    {
057        if (!this.contextRoot) // reset context only for non-root metafacades
058        {
059            context = getContext(context);  // to have same value as in original constructor call
060            setMetafacadeContext (context);
061        }
062    }
063
064    /**
065     * @return boolean true always
066     * @see ManageableEntityAttribute
067     */
068    public boolean isManageableEntityAttributeMetaType()
069    {
070        return true;
071    }
072
073    // --------------- attributes ---------------------
074
075   /**
076    * @see ManageableEntityAttribute#isDisplay()
077    * @return boolean
078    */
079    protected abstract boolean handleIsDisplay();
080
081    private boolean __display1a;
082    private boolean __display1aSet = false;
083
084    /**
085     * Whether or not this attribute should be displayed.
086     * @return (boolean)handleIsDisplay()
087     */
088    public final boolean isDisplay()
089    {
090        boolean display1a = this.__display1a;
091        if (!this.__display1aSet)
092        {
093            // display has no pre constraints
094            display1a = handleIsDisplay();
095            // display has no post constraints
096            this.__display1a = display1a;
097            if (isMetafacadePropertyCachingEnabled())
098            {
099                this.__display1aSet = true;
100            }
101        }
102        return display1a;
103    }
104
105   /**
106    * @see ManageableEntityAttribute#isManageableGetterAvailable()
107    * @return boolean
108    */
109    protected abstract boolean handleIsManageableGetterAvailable();
110
111    private boolean __manageableGetterAvailable2a;
112    private boolean __manageableGetterAvailable2aSet = false;
113
114    /**
115     * Whether or not this attribute can be read in a call isolated from the rest (for example when
116     * downloading binary fields).
117     * @return (boolean)handleIsManageableGetterAvailable()
118     */
119    public final boolean isManageableGetterAvailable()
120    {
121        boolean manageableGetterAvailable2a = this.__manageableGetterAvailable2a;
122        if (!this.__manageableGetterAvailable2aSet)
123        {
124            // manageableGetterAvailable has no pre constraints
125            manageableGetterAvailable2a = handleIsManageableGetterAvailable();
126            // manageableGetterAvailable has no post constraints
127            this.__manageableGetterAvailable2a = manageableGetterAvailable2a;
128            if (isMetafacadePropertyCachingEnabled())
129            {
130                this.__manageableGetterAvailable2aSet = true;
131            }
132        }
133        return manageableGetterAvailable2a;
134    }
135
136    // ------------- associations ------------------
137
138    /**
139     * @param validationMessages Collection<ModelValidationMessage>
140     * @see EntityAttributeLogicImpl#validateInvariants(Collection validationMessages)
141     */
142    @Override
143    public void validateInvariants(Collection<ModelValidationMessage> validationMessages)
144    {
145        super.validateInvariants(validationMessages);
146    }
147}