private void ParseElement(SymbolDef current, XmlNode node) { int tagNumber = reader.ReadInt32() - 1; if (tagNumber == -1) { return; // shit happens } if (tagNumber < 0 || tagNumber > ntags) { throw new SPBException("Invalid tag index " + tagNumber); } DefinitionElement tagType = tags[tagNumber]; if (tagType is SetDef) { SetDef set = (SetDef)tagType; ParseSet(current, set, node); } else if (tagType is PropertyDef) { PropertyDef pd = (PropertyDef)tagType; ParseProperty(current, pd, node); } else { throw new SPBException("Unexpected tag type : " + tagType.GetType().Name); } }
private void AddAndCheck(DefinitionElement element) { if (guidMap.ContainsKey(element.ID)) { Debug.WriteLine("Addding " + element.Name + " id " + element.ID + " already exists"); return; } guidMap.Add(element.ID, element); }
private void AddAndCheck(DefinitionElement element, Hashtable col) { string eltName = element.Name.ToLower(); if (col.ContainsKey(eltName) || guidMap.ContainsKey(element.ID)) { Debug.WriteLine("Addding " + element.Name + " id " + element.ID + " already exists"); return; } col.Add(eltName, element); guidMap.Add(element.ID, element); }
// override object.Equals public override bool Equals(object obj) { if (obj == null || GetType() != obj.GetType()) { return(false); } DefinitionElement de = obj as DefinitionElement; if (de == null) { return(false); } return(de.mGUID.Equals(mGUID) && de.mName.Equals(mName)); }
private void ReadTagData() { for (int i = 0; i < (ntags - 1); i++) { byte[] guidData = reader.ReadBytes(16); Guid g = new Guid(guidData); DefinitionElement de = bank.LookupElement(g); if (de == null) { throw new SPBException("Unbound property GUID : " + g.ToString()); } tags[i] = de; reader.ReadInt32(); // unknwon flag } }