GetInstance()

Namespace ›› System ›› MfEnum ›› Methods ››
Parent Previous Next

GetInstance()

OutputVar := MfEnumeration.GetInstance()

GetInstance()

Abstract method. Gets the instance of the Singleton

Returns

Returns Singleton instance for the derived class.

Throws

Throws MfNotImplementedException if method is not overridden in derived classes

Remarks

This method must be overridden in derived classes. The Instance Property will call GetInstance() if not instance is currently set.

This method should be used as a Protected Static method

Related

DestroyInstance(), Instance

Example

Note the GetInstance() and DestroyInstance() in the class below.

; create a new enumeration class by inheriting/extending the MfEnum
class RegOptEnum extends MfEnum
{
   static m_Instance := MfNull.Null
   __New(args*)
   {
       if (this.base.__Class != "RegOptEnum")
       {
           throw new MfNotSupportedException(MfEnvironment.Instance.GetResourceString("NotSupportedException_Sealed_Class"
               ,"RegOptEnum"))
       }
       base.__New(args*)
       ; set MfObject m_isInherited flag for testing if Class is inherited/extended if needed
       ; This could be set to false as this class cannot be inherited/extended as set in this constructor above
       ; but will do it the standard way.
       this.m_isInherited := this.__Class != "RegOptEnum"
   }
       
   ; override the base AddEnums, this is required
   ; add all the enum values for your enum here
   AddEnums() {
       this.AddEnumValue("RegDword", 0)
       this.AddEnumValue("KeysRegDword", 1)
       this.AddEnumValue("RegSz", 2)
       this.AddEnumValue("KeysRegSz", 3)
       this.AddEnumValue("RegBinary", 4)
       this.AddEnumValue("KeysRegBinary", 5)
       this.AddEnumValue("AutoresponseRegSz", 6)
       this.AddEnumValue("KeysAutoresponseRegSz", 7)
       this.AddEnumValue("AutoupdateRegSz", 8)
       this.AddEnumValue("KeysAutoupdateRegSz", 9)
       this.AddEnumValue("AutoupdateRegBinary", 10)
       this.AddEnumValue("KeysAutoupdateRegBinary", 11)
       this.AddEnumValue("KeypathsRegSz", 12)
       this.AddEnumValue("KeysKeypathsRegSz", 13)
       this.AddEnumValue("KeypathsRegDword", 14)
       this.AddEnumValue("KeysKeypathsRegDword", 15)
       this.AddEnumValue("WindowplacementRegBinary", 16)
       this.AddEnumValue("KeysWindowplacementRegBinary", 17)
   }

   ; override the base DestroyInstance, this is required
   DestroyInstance() {
       RegOptEnum.m_Instance := Null        
   }

   ; override the base GetInstance, this is required
   ; Get a static default instance, create if not exist yet
   GetInstance() {
       if (MfNull.IsNull(RegOptEnum.m_Instance))
       {
           RegOptEnum.m_Instance := new RegOptEnum(0)
       }
       return RegOptEnum.m_Instance
   }
}