protected internal virtual IBpmnEdge FindBpmnEdge(IBaseElement sequenceFlow)
        {
            IEnumerable <IBpmnEdge> allEdges = modelInstance.GetModelElementsByType <IBpmnEdge>(typeof(IBpmnEdge));
            IEnumerator <IBpmnEdge> iterator = allEdges.GetEnumerator();

            while (iterator.MoveNext())
            {
                IBpmnEdge edge = iterator.Current;
                if (edge.BpmnElement.Equals(sequenceFlow))
                {
                    return(edge);
                }
            }
            return(null);
        }
        public virtual IBpmnEdge CreateBpmnEdge(ISequenceFlow sequenceFlow)
        {
            IBpmnPlane bpmnPlane = FindBpmnPlane();

            if (bpmnPlane != null)
            {
                IBpmnEdge edge = CreateInstance <IBpmnEdge>(typeof(IBpmnEdge));
                edge.BpmnElement = sequenceFlow;
                Waypoints        = edge;

                bpmnPlane.AddChildElement(edge);
                return(edge);
            }
            return(null);
        }