public static ErrorCodes Validate <T>(T source, IPBSObject target) where T : Unit, IPBSObject { var validator = new PBSConnectionValidator(target); source.AcceptVisitor(validator); return(validator.Error); }
public void CheckNewConnection(IPBSObject target, bool isOutGoing) { _pbsObject.IsFullyConstructed().ThrowIfFalse(ErrorCodes.ObjectNotFullyConstructed); if (isOutGoing) { GetOutConnectionsMax().ThrowIfLessOrEqual(OutConnections.Count, ErrorCodes.SourceOutOfOutConnections); PBSConnectionValidator.Validate(_pbsObject, target).ThrowIfError(); } else { GetInConnectionsMax().ThrowIfLessOrEqual(InConnections.Count, ErrorCodes.TargetOutOfInConnections); } ContainsConnection(target).ThrowIfTrue(ErrorCodes.NodeAlreadyConnected); }