Mercurial > pub > Impl
diff Lib/IMPL/SQL/Schema/Traits.pm @ 165:76515373dac0
Added Class::Template,
Rewritten SQL::Schema
'use parent' directive instead of 'use base'
author | wizard |
---|---|
date | Sat, 23 Apr 2011 23:06:48 +0400 |
parents | eb3e9861a761 |
children | 1f7a6d762394 |
line wrap: on
line diff
--- a/Lib/IMPL/SQL/Schema/Traits.pm Mon Mar 28 01:36:24 2011 +0400 +++ b/Lib/IMPL/SQL/Schema/Traits.pm Sat Apr 23 23:06:48 2011 +0400 @@ -1,14 +1,19 @@ -package IMPL::SQL::Traits; +package IMPL::SQL::Schema::Traits; use strict; use IMPL::_core::version; use IMPL::Exception(); -use IMPL::base qw(IMPL::Object); +use parent qw(IMPL::Object); +use IMPL::Code::Loader(); + +BEGIN { + IMPL::Code::Loader->Provide(__PACKAGE__); +} ################################################### -package IMPL::SQL::Traits::Table; -use IMPL::base qw(IMPL::Object::Fields); +package IMPL::SQL::Schema::Traits::Table; +use base qw(IMPL::Object::Fields); use fields qw( name @@ -20,16 +25,16 @@ sub CTOR { my ($this,$table,$columns,$constraints,$options) = @_; - $this->{name} = $table; - $this->{columns} = $columns; - $this->{constraints} = $constraints; - $this->{options} = $options; + $this->{name} = $table or die new IMPL::InvalidArgumentException(table => "A table name is required"); + $this->{columns} = $columns if defined $columns; + $this->{constraints} = $constraints if defined $constraints; + $this->{options} = $options if defined $options; } ################################################### -package IMPL::SQL::Traits::Column; -use IMPL::base qw(IMPL::Object::Fields); +package IMPL::SQL::Schema::Traits::Column; +use base qw(IMPL::Object::Fields); use fields qw( name @@ -51,8 +56,8 @@ ################################################## -package IMPL::SQL::Traits::Constraint; -use IMPL::base qw(IMPL::Object::Fields); +package IMPL::SQL::Schema::Traits::Constraint; +use base qw(IMPL::Object::Fields); use fields qw( name @@ -70,40 +75,40 @@ ################################################## -package IMPL::SQL::Traits::PrimaryKey; +package IMPL::SQL::Schema::Traits::PrimaryKey; -use IMPL::base qw(IMPL::SQL::Traits::Constraint); +use base qw(IMPL::SQL::Schema::Traits::Constraint); __PACKAGE__->PassThroughArgs; ################################################## -package IMPL::SQL::Traits::Index; +package IMPL::SQL::Schema::Traits::Index; -use IMPL::base qw(IMPL::SQL::Traits::Constraint); +use base qw(IMPL::SQL::Schema::Traits::Constraint); __PACKAGE__->PassThroughArgs; ################################################## -package IMPL::SQL::Traits::Unique; +package IMPL::SQL::Schema::Traits::Unique; -use IMPL::base qw(IMPL::SQL::Traits::Constraint); +use base qw(IMPL::SQL::Schema::Traits::Constraint); __PACKAGE__->PassThroughArgs; ################################################## -package IMPL::SQL::Traits::ForeignKey; +package IMPL::SQL::Schema::Traits::ForeignKey; -use IMPL::base qw(IMPL::SQL::Traits::Constraint); +use base qw(IMPL::SQL::Schema::Traits::Constraint); use fields qw( foreignTable foreignColumns ); our %CTOR = ( - 'IMPL::SQL::Traits::Constraint' => sub { @_[0..2] } + 'IMPL::SQL::Schema::Traits::Constraint' => sub { @_[0..2] } ); sub CTOR { @@ -116,9 +121,9 @@ ################################################## -package IMPL::SQL::Traits::CreateTable; +package IMPL::SQL::Schema::Traits::CreateTable; -use IMPL::base qw(IMPL::SQL::Traits); +use parent qw(-norequire IMPL::SQL::Schema::Traits); use IMPL::Class::Property; use IMPL::lang; @@ -129,8 +134,8 @@ sub CTOR { my ($this,$table) = @_; - die new IMPL::InvalidArgumentException("table", "An object of IMPL::SQL::Traits::Table type is required") - unless is $table, typeof IMPL::SQL::Traits::Table; + die new IMPL::InvalidArgumentException("table", "An object of IMPL::SQL::Schema::Traits::Table type is required") + unless is $table, typeof IMPL::SQL::Schema::Traits::Table; $this->table($table); } @@ -146,8 +151,8 @@ ################################################## -package IMPL::SQL::Traits::DropTable; -use IMPL::base qw(IMPL::SQL::Traits); +package IMPL::SQL::Schema::Traits::DropTable; +use parent qw(-norequire IMPL::SQL::Schema::Traits); use IMPL::Class::Property; BEGIN { @@ -172,8 +177,8 @@ ################################################## -package IMPL::SQL::Traits::RenameTable; -use IMPL::base qw(IMPL::SQL::Traits); +package IMPL::SQL::Schema::Traits::RenameTable; +use parent qw(-norequire IMPL::SQL::Schema::Traits); use IMPL::Class::Property; BEGIN { @@ -200,8 +205,8 @@ ################################################# -package IMPL::SQL::Traits::AlterTableAddColumn; -use IMPL::base qw(IMPL::SQL::Traits); +package IMPL::SQL::Schema::Traits::AlterTableAddColumn; +use parent qw(-norequire IMPL::SQL::Schema::Traits); use IMPL::Class::Property; use IMPL::lang; @@ -215,8 +220,8 @@ $this->tableName($tableName) or die new IMPL::InvalidArgumentException("A table name is required"); - die new IMPL::InvalidArgumentException("A column should be a IMPL::SQL::Traits::Column object") - unless is $column, typeof IMPL::SQL::Traits::Column; + die new IMPL::InvalidArgumentException("A column should be a IMPL::SQL::Schema::Traits::Column object") + unless is $column, typeof IMPL::SQL::Schema::Traits::Column; $this->column($column); } @@ -235,8 +240,8 @@ ################################################# -package IMPL::SQL::Traits::AlterTableDropColumn; -use IMPL::base qw(IMPL::SQL::Traits); +package IMPL::SQL::Schema::Traits::AlterTableDropColumn; +use parent qw(-norequire IMPL::SQL::Schema::Traits); use IMPL::Class::Property; BEGIN { @@ -264,8 +269,8 @@ ################################################# -package IMPL::SQL::Traits::AlterTableChangeColumn; -use IMPL::base qw(IMPL::SQL::Traits); +package IMPL::SQL::Schema::Traits::AlterTableChangeColumn; +use parent qw(-norequire IMPL::SQL::Schema::Traits); use IMPL::Class::Property; BEGIN { @@ -305,8 +310,8 @@ ################################################# -package IMPL::SQL::Traits::AlterTableAddConstraint; -use IMPL::base qw(IMPL::SQL::Traits); +package IMPL::SQL::Schema::Traits::AlterTableAddConstraint; +use parent qw(-norequire IMPL::SQL::Schema::Traits); use IMPL::Class::Property; use IMPL::lang; @@ -320,8 +325,8 @@ $this->tableName($table) or die new IMPL::InvalidArgumentException( tableName => "A table name is required"); - die new IMPL::InvalidArgumentException(constaraint => "A valid IMPL::SQL::Traits::Constarint is required") - unless is $constraint, typeof IMPL::SQL::Traits::Constraint; + die new IMPL::InvalidArgumentException(constaraint => "A valid IMPL::SQL::Schema::Traits::Constarint is required") + unless is $constraint, typeof IMPL::SQL::Schema::Traits::Constraint; $this->constraint($constraint); } @@ -340,8 +345,8 @@ ################################################# -package IMPL::SQL::Traits::AlterTableDropConstraint; -use IMPL::base qw(IMPL::SQL::Traits); +package IMPL::SQL::Schema::Traits::AlterTableDropConstraint; +use parent qw(-norequire IMPL::SQL::Schema::Traits); use IMPL::Class::Property; BEGIN { @@ -382,7 +387,7 @@ Изменения схемы могу быть представлены в виде последовательности примитивных операций. Правила выполнения последовательности примитывных действий могут варьироваться -в зависимости от процессора, который их выполняет. Например C<IMPL::SQL::Traits::Processor>. +в зависимости от процессора, который их выполняет. Например C<IMPL::SQL::Schema::Traits::Processor>. Данные, которые содержаться в примитивных операциях не могут существовать независимо от схемы. @@ -418,7 +423,7 @@ =over -=item C<IMPL::SQL::Traits::CreateTable> +=item C<IMPL::SQL::Schema::Traits::CreateTable> Создает таблицу @@ -428,11 +433,11 @@ =item C<[get]table> -C<IMPL::SQL::Traits::Table> - описание создаваемой таблицы +C<IMPL::SQL::Schema::Traits::Table> - описание создаваемой таблицы =back -=item C<IMPL::SQL::Traits::DropTable> +=item C<IMPL::SQL::Schema::Traits::DropTable> Удалает таблицу по имени @@ -446,7 +451,7 @@ =back -=item C<IMPL::SQL::Traits::RenameTable> +=item C<IMPL::SQL::Schema::Traits::RenameTable> =over @@ -462,7 +467,7 @@ =back -=item C<IMPL::SQL::Traits::AlterTableAddColumn> +=item C<IMPL::SQL::Schema::Traits::AlterTableAddColumn> Добавляет столбец в таблицу @@ -476,11 +481,11 @@ =item C<[get]column> -C<IMPL::SQL::Traits::Column> - описание столбца который нужно добавить +C<IMPL::SQL::Schema::Traits::Column> - описание столбца который нужно добавить =back -=item C<IMPL::SQL::Traits::AlterTableDropColumn> +=item C<IMPL::SQL::Schema::Traits::AlterTableDropColumn> Удаляет столбец из таблицы @@ -498,7 +503,7 @@ =back -=item C<IMPL::SQL::Traits::AlterTableChangeColumn> +=item C<IMPL::SQL::Schema::Traits::AlterTableChangeColumn> Меняет описание столбца @@ -534,7 +539,7 @@ =back -=item C<IMPL::SQL::Traits::AlterTableAddConstraint> +=item C<IMPL::SQL::Schema::Traits::AlterTableAddConstraint> Базовый класс для операций по добавлению ограничений @@ -548,11 +553,11 @@ =item C<[get]constraint> -C<IMPL::SQL::Traits::Constraint> - описние ограничения, которое нужно добавить. +C<IMPL::SQL::Schema::Traits::Constraint> - описние ограничения, которое нужно добавить. =back -=item C<IMPL::SQL::Traits::AlterTableDropConstraint> +=item C<IMPL::SQL::Schema::Traits::AlterTableDropConstraint> Удаляет ограничение на таблицу