Exemplo n.º 1
0
        public AssociationClassCallExp createAssociationClassCallExp(
            OclExpression source,
            CoreAssociationClass referredAssociationClass,
            CoreAssociationEnd navigationSource,
            List <object> qualifiers,
            bool isMarkedPre)
        {
            AssociationClassCallExpImpl exp = new AssociationClassCallExpImpl();

            exp.setFactory(this);

            exp.setReferredAssociationClass(referredAssociationClass);
            exp.setNavigationSource(navigationSource);
            exp.setSource(isMarkedPre ? createAtPreOperation(source) : source);
            if (qualifiers != null)
            {
                foreach (OclExpression qualifier in qualifiers)
                {
                    ((OclExpressionImpl)qualifier).setNavigationCallExp(exp);
                    ((AssociationClassCallExpImpl)exp).addQualifier(qualifier);
                }
            }
            CoreAssociationEnd assocEnd = navigationSource != null ? navigationSource : referredAssociationClass.lookupAssociationEnd(source.getType());

            exp.setType(((AssociationClassCallExpImpl)exp).getExpressionType(source, assocEnd, referredAssociationClass));

            ((OclExpressionImpl)source).setAppliedProperty(exp);
            return(exp);
        }
    public override Object Clone()
    {
        AssociationClassCallExpImpl theClone = (AssociationClassCallExpImpl)base.Clone();

        theClone.referredAssociationClass = referredAssociationClass;
        return(theClone);
    }