Пример #1
0
 public virtual IVsaItem CreateItem
     (String name, VsaItemType itemType, VsaItemFlag itemFlag)
 {
     lock (this)
     {
         CheckForClosed();
         if (engine.IsRunning)
         {
             throw new VsaException(VsaError.EngineRunning);
         }
         if (itemType != VsaItemType.Code)
         {
             // We only support code items in this implementation.
             throw new VsaException(VsaError.ItemTypeNotSupported);
         }
         if (itemFlag == VsaItemFlag.Class)
         {
             // We don't support class flags.
             throw new VsaException(VsaError.ItemFlagNotSupported);
         }
         VsaItem.ValidateName(engine, name);
         VsaItem item = new VsaCodeItem(engine, name, itemFlag);
         itemList.Add(item);
         return(item);
     }
 }
Пример #2
0
        public virtual IVsaItem CreateItem(string name,
                                           VsaItemType itemType,
                                           VsaItemFlag itemFlag)
        {
            if (names.Contains(name))
            {
                throw new VsaException(VsaError.ItemNameInUse);
            }

            IVsaItem item = null;

            switch (itemType)
            {
            case VsaItemType.AppGlobal:
                if (itemFlag != VsaItemFlag.None)
                {
                    throw new VsaException(VsaError.ItemFlagNotSupported);
                }
                item = new VsaGlobalItem(engine, name, itemFlag);
                break;

            case VsaItemType.Code:
                item = new VsaCodeItem(engine, name, itemFlag);
                break;

            case VsaItemType.Reference:
                if (itemFlag != VsaItemFlag.None)
                {
                    throw new VsaException(VsaError.ItemFlagNotSupported);
                }
                item = new VsaReferenceItem(engine, name, itemFlag);
                break;
            }

            if (item != null)
            {
                items.Add(item);
                names.Add(name);
            }

            engine.IsDirty = true;

            return(item);
        }
Пример #3
0
        public virtual IVsaItem CreateItem(string name, 
            VsaItemType itemType,
            VsaItemFlag itemFlag)
        {
            if (names.Contains (name))
                 throw new VsaException (VsaError.ItemNameInUse);

              			IVsaItem item = null;

            switch (itemType) {
            case VsaItemType.AppGlobal:
                if (itemFlag != VsaItemFlag.None)
                    throw new VsaException (VsaError.ItemFlagNotSupported);
                item = new VsaGlobalItem (engine, name, itemFlag);
                break;

            case VsaItemType.Code:
                item = new VsaCodeItem (engine, name, itemFlag);
                break;

            case VsaItemType.Reference:
                if (itemFlag != VsaItemFlag.None)
                    throw new VsaException (VsaError.ItemFlagNotSupported);
                item = new VsaReferenceItem (engine, name, itemFlag);
                    break;
            }

            if (item != null) {
                items.Add (item);
                names.Add (name);
            }

            engine.IsDirty = true;

            return item;
        }
Пример #4
0
	public virtual IVsaItem CreateItem
				(String name, VsaItemType itemType, VsaItemFlag itemFlag)
			{
				lock(this)
				{
					CheckForClosed();
					if(engine.IsRunning)
					{
						throw new VsaException(VsaError.EngineRunning);
					}
					if(itemType != VsaItemType.Code)
					{
						// We only support code items in this implementation.
						throw new VsaException(VsaError.ItemTypeNotSupported);
					}
					if(itemFlag == VsaItemFlag.Class)
					{
						// We don't support class flags.
						throw new VsaException(VsaError.ItemFlagNotSupported);
					}
					VsaItem.ValidateName(engine, name);
					VsaItem item = new VsaCodeItem(engine, name, itemFlag);
					itemList.Add(item);
					return item;
				}
			}