/**
  * Override method to perform a property "Get"
  * This will get the value of $strName
  *
  * @param string $strName Name of the property to get
  * @return mixed
  */
 public function __get($strName)
 {
     switch ($strName) {
         ///////////////////
         // Member Variables
         ///////////////////
         case 'Id':
             /**
              * Gets the value for intId (Read-Only PK)
              * @return integer
              */
             return $this->intId;
         case 'Name':
             /**
              * Gets the value for strName 
              * @return string
              */
             return $this->strName;
         case 'VariableTypeId':
             /**
              * Gets the value for intVariableTypeId (Not Null)
              * @return integer
              */
             return $this->intVariableTypeId;
         case 'ObjectTypeId':
             /**
              * Gets the value for intObjectTypeId 
              * @return integer
              */
             return $this->intObjectTypeId;
         case 'ArrayFlag':
             /**
              * Gets the value for blnArrayFlag 
              * @return boolean
              */
             return $this->blnArrayFlag;
         case 'DefaultValue':
             /**
              * Gets the value for strDefaultValue 
              * @return string
              */
             return $this->strDefaultValue;
         case 'FirstVersion':
             /**
              * Gets the value for strFirstVersion 
              * @return string
              */
             return $this->strFirstVersion;
         case 'LastVersion':
             /**
              * Gets the value for strLastVersion 
              * @return string
              */
             return $this->strLastVersion;
         case 'ShortDescription':
             /**
              * Gets the value for strShortDescription 
              * @return string
              */
             return $this->strShortDescription;
         case 'ExtendedDescription':
             /**
              * Gets the value for strExtendedDescription 
              * @return string
              */
             return $this->strExtendedDescription;
             ///////////////////
             // Member Objects
             ///////////////////
         ///////////////////
         // Member Objects
         ///////////////////
         case 'ObjectType':
             /**
              * Gets the value for the QcodoClass object referenced by intObjectTypeId 
              * @return QcodoClass
              */
             try {
                 if (!$this->objObjectType && !is_null($this->intObjectTypeId)) {
                     $this->objObjectType = QcodoClass::Load($this->intObjectTypeId);
                 }
                 return $this->objObjectType;
             } catch (QCallerException $objExc) {
                 $objExc->IncrementOffset();
                 throw $objExc;
             }
         case 'ClassProperty':
             /**
              * Gets the value for the ClassProperty object that uniquely references this Variable
              * by objClassProperty (Unique)
              * @return ClassProperty
              */
             try {
                 if ($this->objClassProperty === false) {
                     // We've attempted early binding -- and the reverse reference object does not exist
                     return null;
                 }
                 if (!$this->objClassProperty) {
                     $this->objClassProperty = ClassProperty::LoadByVariableId($this->intId);
                 }
                 return $this->objClassProperty;
             } catch (QCallerException $objExc) {
                 $objExc->IncrementOffset();
                 throw $objExc;
             }
         case 'ClassVariable':
             /**
              * Gets the value for the ClassVariable object that uniquely references this Variable
              * by objClassVariable (Unique)
              * @return ClassVariable
              */
             try {
                 if ($this->objClassVariable === false) {
                     // We've attempted early binding -- and the reverse reference object does not exist
                     return null;
                 }
                 if (!$this->objClassVariable) {
                     $this->objClassVariable = ClassVariable::LoadByVariableId($this->intId);
                 }
                 return $this->objClassVariable;
             } catch (QCallerException $objExc) {
                 $objExc->IncrementOffset();
                 throw $objExc;
             }
         case 'Parameter':
             /**
              * Gets the value for the Parameter object that uniquely references this Variable
              * by objParameter (Unique)
              * @return Parameter
              */
             try {
                 if ($this->objParameter === false) {
                     // We've attempted early binding -- and the reverse reference object does not exist
                     return null;
                 }
                 if (!$this->objParameter) {
                     $this->objParameter = Parameter::LoadByVariableId($this->intId);
                 }
                 return $this->objParameter;
             } catch (QCallerException $objExc) {
                 $objExc->IncrementOffset();
                 throw $objExc;
             }
         case 'QcodoConstant':
             /**
              * Gets the value for the QcodoConstant object that uniquely references this Variable
              * by objQcodoConstant (Unique)
              * @return QcodoConstant
              */
             try {
                 if ($this->objQcodoConstant === false) {
                     // We've attempted early binding -- and the reverse reference object does not exist
                     return null;
                 }
                 if (!$this->objQcodoConstant) {
                     $this->objQcodoConstant = QcodoConstant::LoadByVariableId($this->intId);
                 }
                 return $this->objQcodoConstant;
             } catch (QCallerException $objExc) {
                 $objExc->IncrementOffset();
                 throw $objExc;
             }
             ////////////////////////////
             // Virtual Object References (Many to Many and Reverse References)
             // (If restored via a "Many-to" expansion)
             ////////////////////////////
         ////////////////////////////
         // Virtual Object References (Many to Many and Reverse References)
         // (If restored via a "Many-to" expansion)
         ////////////////////////////
         case '_OperationAsReturn':
             /**
              * Gets the value for the private _objOperationAsReturn (Read-Only)
              * if set due to an expansion on the operation.return_variable_id reverse relationship
              * @return Operation
              */
             return $this->_objOperationAsReturn;
         case '_OperationAsReturnArray':
             /**
              * Gets the value for the private _objOperationAsReturnArray (Read-Only)
              * if set due to an ExpandAsArray on the operation.return_variable_id reverse relationship
              * @return Operation[]
              */
             return (array) $this->_objOperationAsReturnArray;
         case '_OperationAsAdditional':
             /**
              * Gets the value for the private _objOperationAsAdditional (Read-Only)
              * if set due to an expansion on the operation.additional_variable_id reverse relationship
              * @return Operation
              */
             return $this->_objOperationAsAdditional;
         case '_OperationAsAdditionalArray':
             /**
              * Gets the value for the private _objOperationAsAdditionalArray (Read-Only)
              * if set due to an ExpandAsArray on the operation.additional_variable_id reverse relationship
              * @return Operation[]
              */
             return (array) $this->_objOperationAsAdditionalArray;
         default:
             try {
                 return parent::__get($strName);
             } catch (QCallerException $objExc) {
                 $objExc->IncrementOffset();
                 throw $objExc;
             }
     }
 }