public RegionDef(RegionDefXml region, bool tokenRegion = false) { IsTokenRegion = tokenRegion; regionDefXml = region; var defs = new List <IElementDef>(); foreach (var element in region.Elements) { if (element is RegionDefXml) { defs.Add(new RegionDef((RegionDefXml)element, tokenRegion)); } else if (element is MethodDefXml) { defs.Add(new MethodDef((MethodDefXml)element)); } else { throw new NotImplementedException($"Don't know how to process element definition of type '{element.GetType()}'."); } } Elements = defs.ToReadOnlyList(); }
public RegionDef(RegionDefXml region, bool tokenRegion = false) { IsTokenRegion = tokenRegion; regionDefXml = region; Regions = region.Regions.Select(r => new RegionDef(r, tokenRegion)).ToReadOnlyList(); MethodDefs = region.MethodDefs.Select(m => new MethodDef(m)).ToReadOnlyList(); }
public RegionDef(RegionDef originalRegion, bool tokenRegion = false, ReadOnlyCollection <RegionDef> regions = null, ReadOnlyCollection <MethodDef> methods = null) { regionDefXml = originalRegion.regionDefXml; Regions = regions ?? originalRegion.Regions;; MethodDefs = methods ?? originalRegion.MethodDefs; HasTokenRegion = originalRegion.HasTokenRegion; IsTokenRegion = tokenRegion; }
public RegionDef(RegionDef originalRegion, bool tokenRegion = false, ReadOnlyCollection <IElementDef> elements = null) { regionDefXml = originalRegion.regionDefXml; Elements = (elements ?? originalRegion.Elements) ?? new ReadOnlyCollection <IElementDef>(new List <IElementDef>()); HasTokenRegion = originalRegion.HasTokenRegion; IsTokenRegion = tokenRegion; }