private static void CreateTags(IDictionary <Element, Tag> tagMap, ICollection <Tag> tagList, AssemblingContext context, Element element, BeginningTag parent) { if (element is ConcreteElement) { ElementTag tag = new ElementTag(tagList.Count, context, parent, (ConcreteElement)element); tagMap.Add(element, tag); tagList.Add(tag); } else if (element is CompositeElement) { CompositeElement compositeElement = (CompositeElement)element; BeginningTag beginningTag = new BeginningTag(tagList.Count, context, parent, compositeElement); tagMap.Add(element, beginningTag); tagList.Add(beginningTag); foreach (Element e in compositeElement.GetElements()) { CreateTags(tagMap, tagList, context, e, beginningTag); } EndTag endTag = new EndTag(tagList.Count, context, parent, beginningTag); tagList.Add(endTag); } }
protected Tag(int index, AssemblingContext context, BeginningTag parent) { m_index = index; m_context = context; m_parent = parent; }
public EndTag(int index, AssemblingContext context, BeginningTag parent, BeginningTag beginningTag) : base(index, context, parent) { m_beginningTag = beginningTag; }
public ElementTag(int index, AssemblingContext context, BeginningTag parent, ConcreteElement concreteElement) : base(index, context, parent) { m_concreteElement = concreteElement; m_isMeasureValid = false; }
public BeginningTag(int index, AssemblingContext context, BeginningTag parent, CompositeElement compositeElement) : base(index, context, parent) { m_compositeElement = compositeElement; }