Exemplo n.º 1
0
        public virtual void setReferenceTargetElement(ModelElementInstanceImpl referenceSourceParentElement, Target referenceTargetElement)
        {
            ModelInstanceImpl    modelInstance   = referenceSourceParentElement.ModelInstance;
            string               identifier      = referenceTargetAttribute.getValue(referenceTargetElement);
            ModelElementInstance existingElement = modelInstance.getModelElementById(identifier);

            if (existingElement == null || !existingElement.Equals(referenceTargetElement))
            {
                throw new ModelReferenceException("Cannot create reference to model element " + referenceTargetElement + ": element is not part of model. Please connect element to the model first.");
            }
            else
            {
                Source referenceSourceElement = modelInstance.newInstance(ReferenceSourceElementType);
                setReferenceSource(referenceSourceParentElement, referenceSourceElement);
                setReferenceIdentifier(referenceSourceElement, identifier);
            }
        }