public virtual void Merge() { System.Collections.Generic.IList <object> ok = new System.Collections.Generic.List <object>(); Net.Vpc.Upa.Config.DecorationValue[] alternatives = GetAlternatives(); foreach (Net.Vpc.Upa.Config.DecorationValue alternative in alternatives) { Net.Vpc.Upa.Impl.Config.Decorations.DecorationPrimitiveValue d = (Net.Vpc.Upa.Impl.Config.Decorations.DecorationPrimitiveValue)alternative; switch (d.GetConfig().GetConfigAction()) { case Net.Vpc.Upa.Config.ConfigAction.DELETE: { ok.Clear(); break; } case Net.Vpc.Upa.Config.ConfigAction.MERGE: case Net.Vpc.Upa.Config.ConfigAction.REPLACE: { ok.Clear(); ok.Add(d.GetValue()); break; } } } Net.Vpc.Upa.Config.DecorationValue last = alternatives[alternatives.Length - 1]; if ((ok.Count == 0)) { @value = null; configInfo = new Net.Vpc.Upa.Config.ConfigInfo(last.GetConfig().GetOrder(), Net.Vpc.Upa.Config.ConfigAction.DELETE, last.GetConfig().GetPersistenceGroup(), last.GetConfig().GetPersistenceUnit()); } else { @value = ok[(ok).Count - 1]; configInfo = new Net.Vpc.Upa.Config.ConfigInfo(last.GetConfig().GetOrder(), Net.Vpc.Upa.Config.ConfigAction.MERGE, last.GetConfig().GetPersistenceGroup(), last.GetConfig().GetPersistenceUnit()); } }
public virtual void Merge() { System.Collections.Generic.Dictionary <string, Net.Vpc.Upa.Config.DecorationValue> att = new System.Collections.Generic.Dictionary <string, Net.Vpc.Upa.Config.DecorationValue>(); Net.Vpc.Upa.Config.DecorationValue[] alternatives1 = GetAlternatives(); Net.Vpc.Upa.Config.DecorationValue[] alternatives = Shrink(alternatives1); foreach (Net.Vpc.Upa.Config.DecorationValue alternative in alternatives) { Net.Vpc.Upa.Config.Decoration d = (Net.Vpc.Upa.Config.Decoration)alternative; foreach (System.Collections.Generic.KeyValuePair <string, Net.Vpc.Upa.Config.DecorationValue> e in new System.Collections.Generic.HashSet <System.Collections.Generic.KeyValuePair <string, Net.Vpc.Upa.Config.DecorationValue> >(d.GetAttributes())) { Net.Vpc.Upa.Impl.Config.Decorations.AbstractDecorationValue v1 = (Net.Vpc.Upa.Impl.Config.Decorations.AbstractDecorationValue)Net.Vpc.Upa.Impl.FwkConvertUtils.GetMapValue <string, Net.Vpc.Upa.Config.DecorationValue>(att, (e).Key); Net.Vpc.Upa.Impl.Config.Decorations.AbstractDecorationValue v2 = (Net.Vpc.Upa.Impl.Config.Decorations.AbstractDecorationValue)(e).Value; if (v1 == null) { att[(e).Key] = v2; } else { v1.AddAlternative(v2); } } break; } foreach (System.Collections.Generic.KeyValuePair <string, Net.Vpc.Upa.Config.DecorationValue> e in new System.Collections.Generic.HashSet <System.Collections.Generic.KeyValuePair <string, Net.Vpc.Upa.Config.DecorationValue> >(att)) { ((Net.Vpc.Upa.Impl.Config.Decorations.AbstractDecoration)(e).Value).Merge(); } if (alternatives.Length == 0) { Net.Vpc.Upa.Config.DecorationValue last = alternatives1[alternatives1.Length - 1]; mergedAttributes = new System.Collections.Generic.Dictionary <string, Net.Vpc.Upa.Config.DecorationValue>(); mergedConfigInfo = new Net.Vpc.Upa.Config.ConfigInfo(last.GetConfig().GetOrder(), Net.Vpc.Upa.Config.ConfigAction.DELETE, last.GetConfig().GetPersistenceGroup(), last.GetConfig().GetPersistenceUnit()); } else { Net.Vpc.Upa.Config.DecorationValue last = alternatives[alternatives.Length - 1]; mergedAttributes = att; mergedConfigInfo = new Net.Vpc.Upa.Config.ConfigInfo(last.GetConfig().GetOrder(), Net.Vpc.Upa.Config.ConfigAction.MERGE, last.GetConfig().GetPersistenceGroup(), last.GetConfig().GetPersistenceUnit()); } }
public virtual int CompareTo(Net.Vpc.Upa.Config.DecorationValue o) { if (o == null) { return(1); } if (o == this) { return(0); } Net.Vpc.Upa.Config.ConfigInfo c1 = this.GetConfig(); Net.Vpc.Upa.Config.ConfigInfo c2 = o.GetConfig(); if (c1 == c2) { return(0); } if (c1 != null) { return(c1.CompareTo(c2)); } return(0); }