void IBuildPlan.Apply(IUnitSequenceMatcher unitSequenceMatcher) { unitSequenceMatcher .AddUniqueUnitMatcher(new LastUnitSequenceMatcher(UnitMatcher, Weight)) .AddBuildAction(BuildStage.Create, BuildAction); Apply(unitSequenceMatcher); }
public static T AddUniqueUnitMatcher <T>(this IUnitSequenceMatcher parent, T unitSequenceMatcher) where T : IUnitSequenceMatcher { if (parent.Children.Contains(unitSequenceMatcher)) { throw new ArmatureException(string.Format("There is already matcher {0}", unitSequenceMatcher)); } parent.Children.Add(unitSequenceMatcher); return(unitSequenceMatcher); }
public static T AddOrGetUnitSequenceMatcher <T>(this IUnitSequenceMatcher parent, T unitSequenceMatcher) where T : IUnitSequenceMatcher { if (parent.Children.Contains(unitSequenceMatcher)) { return((T)parent.Children.FirstOrDefault(_ => _.Equals(unitSequenceMatcher))); } parent.Children.Add(unitSequenceMatcher); return(unitSequenceMatcher); }
private static void Print(IUnitSequenceMatcher unitSequenceMatcher) { try { foreach (var child in unitSequenceMatcher.Children) { using (Block(LogLevel.Info, child.ToString())) { Print(child); } } } catch (Exception) { //ignore } }
public void Apply(IUnitSequenceMatcher unitSequenceMatcher) => unitSequenceMatcher .AddOrGetUnitSequenceMatcher(new LastUnitSequenceMatcher(PropertyMatcher.Instance)) .AddBuildAction(BuildStage.Create, new GetPropertyByNameBuildAction(_names));
public Tuner([NotNull] IUnitSequenceMatcher unitSequenceMatcher) : base(unitSequenceMatcher) { }
public TreatingOpenGenericTuner([NotNull] IUnitSequenceMatcher unitSequenceMatcher) : base(unitSequenceMatcher) { }
public override bool Equals(IUnitSequenceMatcher other) => Equals((object)other);
public void Add([NotNull] IUnitSequenceMatcher unitSequenceMatcher) => Children.Add(unitSequenceMatcher);
/// <summary> /// Can be overriden to add extra logic in addition to implemented in <see cref="IBuildPlan.Apply" /> /// </summary> protected virtual void Apply(IUnitSequenceMatcher unitSequenceMatcher) { }
protected UnitSequenceExtensibility([NotNull] IUnitSequenceMatcher unitSequenceMatcher) =>
public OpenGenericCreationTuner([NotNull] IUnitSequenceMatcher unitSequenceMatcher, Type openGenericType, [CanBeNull] object token) : base(unitSequenceMatcher) { OpenGenericType = openGenericType; Token = token; }
public override bool Equals(IUnitSequenceMatcher other) => throw new NotSupportedException();
public bool Equals(IUnitSequenceMatcher other) => ReferenceEquals(this, other);
public CreationTuner([NotNull] IUnitSequenceMatcher unitSequenceMatcher, [NotNull] Type type, [CanBeNull] object token) : base(unitSequenceMatcher) { Type = type ?? throw new ArgumentNullException(nameof(type)); Token = token; }