public static XElement ToXml(this ILifeline lifeline) { return(new XElement("Lifeline", new XElement("Id", lifeline.Id), new XElement("Name", lifeline.Name), new XElement("Pins", lifeline.Pins.Select(ToXml)), new XElement("Activities", lifeline.Activities().Select(ToXml)))); }
public void LifelineTest() { var lifelineStub = new Mock <Lifeline>(MockBehavior.Loose, null, null, null, 0); Pin target = CreatePin(null, lifelineStub.Object); ILifeline actual = target.Lifeline; Assert.AreEqual(lifelineStub.Object, actual); }
public LifelineVisual(IStyle style, ILifeline lifeline, Column column, Row startRow, Row endRow, GridLayout gridLayout) : base(style) { m_Lifeline = lifeline; m_GridLayout = gridLayout; m_Column = column; m_StartRow = startRow; m_EndRow = endRow; Initialize(); }
public static IEnumerable <ISignal> InSignals(this ILifeline lifeline) { if (lifeline == null) { throw new ArgumentNullException("lifeline"); } return (lifeline .Pins .Where(IsSignalEnd) .Select(pin => pin.Signal)); }
public static IEnumerable <IActivity> Activities(this ILifeline lifeline) { if (lifeline == null) { throw new ArgumentNullException("lifeline"); } return (lifeline .Pins .Where(IsActivityStart) .Select(pin => pin.Activity)); }
public static IEnumerable <ISignal> RightSignals(this ILifeline lifeline) { if (lifeline == null) { throw new ArgumentNullException("lifeline"); } return (lifeline .Pins .Where(pin => pin.Orientation != Orientation.Left) .Select(pin => pin.Signal) .Where(signal => signal != null)); }
private void Deactivate(Lifeline target, Token targetToken, bool errorIfUnexpectedDeactivation) { Row endRow = m_Matrix.LastRow; Pin endPin = endRow[target]; if (target.State.OpenPins.Count == 0) { AddError(targetToken, "Unexpected deactivation. The lifeline must be activated before."); return; } OpenPin lastOpenPin = target.State.OpenPins.Pop(); Activity lastOpenActivity = lastOpenPin.GetActivity(); if (endPin.PinType != PinType.In && endPin.Signal != null && endPin.Signal.SignalType == SignalType.Return) { ILifeline targetOfReturn = endPin.Signal.End.Lifeline; ILifeline sourceOfActivation = lastOpenActivity.Start.Signal.Start.Lifeline; if (!sourceOfActivation.Equals(targetOfReturn)) { AddError(targetToken, string.Format( "Unexpected deactivation. Return came from '{0}' but activation was initiated by '{1}'", targetOfReturn.Id, sourceOfActivation.Id)); } } else { endRow = m_Matrix.CreateRow(); endPin = endRow[target]; } lastOpenActivity.ReconnectEnd(endPin); target.State.DecLevel(lastOpenActivity.Orientation); }