Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
 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);
 }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        // 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));
        }
Esempio n. 5
0
        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
            }
        }