public function getType() {
        if($this->typeInstance !== null) {
            return $this->typeInstance;
        }

        if(isset(static::$types[$this->type])) {
            $this->typeInstance = static::$types[$this->type];

            return static::$types[$this->type];
        } else {
            if(static::$defaultType !== null) {
                $this->typeInstance = static::$defaultType;

                return static::$defaultType;
            } else {
                throw new Exception('No `FieldType` Object Set For Field Type "' . $this->type . '" And No Default Set');
            }
        }
    }