public function setAttribute($attribute, $value)
    {
        switch($attribute){

            case Core::ATTR_AUTO_ACCESSOR_OVERRIDE:
            case Core::ATTR_AUTO_FREE_QUERY_OBJECTS:
            case Core::ATTR_AUTOCOMMIT:
            case Core::ATTR_AUTOLOAD_TABLE_CLASSES:
            case Core::ATTR_CACHE:
            case Core::ATTR_CACHE_LIFESPAN:
            case Core::ATTR_CASCADE_SAVES:
            case Core::ATTR_CASE:
            case Core::ATTR_CLIENT_VERSION:
            case Core::ATTR_CMPNAME_FORMAT:
            case Core::ATTR_COLL_KEY:
            case Core::ATTR_COLL_LIMIT:
            case Core::ATTR_COLLECTION_CLASS:
            case Core::ATTR_CONNECTION_STATUS:
            case Core::ATTR_CREATE_TABLES:
            case Core::ATTR_CURSOR:
            case Core::ATTR_CURSOR_NAME:
            case Core::ATTR_DBNAME_FORMAT:
            case Core::ATTR_DECIMAL_PLACES:
            case Core::ATTR_DEF_TABLESPACE:
            case Core::ATTR_DEF_TEXT_LENGTH:
            case Core::ATTR_DEF_VARCHAR_LENGTH:
            case Core::ATTR_DEFAULT_COLUMN_OPTIONS:
            case Core::ATTR_DEFAULT_IDENTIFIER_OPTIONS:
            case Core::ATTR_DEFAULT_PARAM_NAMESPACE:
            case Core::ATTR_DEFAULT_SEQUENCE:
            case Core::ATTR_DEFAULT_TABLE_CHARSET:
            case Core::ATTR_DEFAULT_TABLE_COLLATE:
            case Core::ATTR_DEFAULT_TABLE_TYPE:
            case Core::ATTR_DRIVER_NAME:
            case Core::ATTR_EMULATE_DATABASE:
            case Core::ATTR_ERRMODE:
            case Core::ATTR_EXPORT:
            case Core::ATTR_FETCH_CATALOG_NAMES:
            case Core::ATTR_FETCH_TABLE_NAMES:
            case Core::ATTR_FETCHMODE:
            case Core::ATTR_FIELD_CASE:
            case Core::ATTR_FKNAME_FORMAT:
            case Core::ATTR_HYDRATE_OVERWRITE:
            case Core::ATTR_IDXNAME_FORMAT:
            case Core::ATTR_LISTENER:
            case Core::ATTR_LOAD_REFERENCES:
            case Core::ATTR_MAX_COLUMN_LEN:
            case Core::ATTR_MAX_IDENTIFIER_LENGTH:
            case Core::ATTR_MODEL_CLASS_PREFIX:
            case Core::ATTR_MODEL_LOADING:
            case Core::ATTR_NAME_PREFIX:
            case Core::ATTR_ORACLE_NULLS:
            case Core::ATTR_PERSISTENT:
            case Core::ATTR_PORTABILITY:
            case Core::ATTR_PREFETCH:
            case Core::ATTR_QUERY_CACHE:
            case Core::ATTR_QUERY_CACHE_LIFESPAN:
            case Core::ATTR_QUERY_CLASS:
            case Core::ATTR_QUERY_LIMIT:
            case Core::ATTR_QUOTE_IDENTIFIER:
            case Core::ATTR_RECORD_LISTENER:
            case Core::ATTR_RECURSIVE_MERGE_FIXTURES:
            case Core::ATTR_RESULT_CACHE:
            case Core::ATTR_RESULT_CACHE_LIFESPAN:
            case Core::ATTR_SEQCOL_NAME:
            case Core::ATTR_SEQNAME_FORMAT:
            case Core::ATTR_SERVER_INFO:
            case Core::ATTR_SERVER_VERSION:
            case Core::ATTR_STATEMENT_CLASS:
            case Core::ATTR_STRINGIFY_FETCHES:
            case Core::ATTR_TABLE_CLASS:
            case Core::ATTR_TABLE_CLASS_FORMAT:
            case Core::ATTR_TBLCLASS_FORMAT:
            case Core::ATTR_TBLNAME_FORMAT:
            case Core::ATTR_THROW_EXCEPTIONS:
            case Core::ATTR_TIMEOUT:
            case Core::ATTR_USE_DQL_CALLBACKS:
            case Core::ATTR_USE_NATIVE_ENUM:
            case Core::ATTR_USE_NATIVE_SET:
            case Core::ATTR_VALIDATE:
                $this->attributes[$attribute] = $value;
                break;

            default:
                throw new Exception("Invalid attribute '{$attribute}'! Must be one of Core::ATTR_* constants.");
        }
    }