/// <summary> /// Add a class to this module /// If this class already exists, throw an exception /// </summary> /// <param name="aClass">The class to be added</param> public void AddClass(ClassDef aClass) { Contract.Requires(aClass != null); ClassDef eClass = GetClass(aClass.NameSpace, aClass.Name); if (eClass != null) { throw new DescriptorException("Class " + aClass.NameString()); } classes.Add(aClass); // MERGE change Refs to Defs here, fix this aClass.SetScope((PEFile)this); }
/*------------------------- public set and get methods --------------------------*/ /// <summary> /// Add a class to this Module /// If this class already exists, throw an exception /// </summary> /// <param name="attrSet">attributes of this class</param> /// <param name="nsName">name space name</param> /// <param name="name">class name</param> /// <returns>a descriptor for this new class</returns> public ClassDef AddClass(TypeAttr attrSet, string nsName, string name) { //FIXME Contract.Requires(classes != null); ClassDef aClass = GetClass(nsName, name); if (aClass != null) { throw new DescriptorException("Class " + aClass.NameString()); } aClass = new ClassDef((PEFile)this, attrSet, nsName, name); classes.Add(aClass); return(aClass); }