Mercurial > pub > Impl
comparison lib/IMPL/SQL/Schema/Constraint.pm @ 417:3ed0c58e9da3 ref20150831
working on di container, tests
| author | cin | 
|---|---|
| date | Mon, 02 Nov 2015 01:56:53 +0300 | 
| parents | c6e90e02dd17 | 
| children | 
   comparison
  equal
  deleted
  inserted
  replaced
| 416:cc2cf8c0edc2 | 417:3ed0c58e9da3 | 
|---|---|
| 18 | 18 | 
| 19 my %aliases; | 19 my %aliases; | 
| 20 | 20 | 
| 21 sub CTOR { | 21 sub CTOR { | 
| 22 my ($this,%args) = @_; | 22 my ($this,%args) = @_; | 
| 23 is( $args{table}, typeof IMPL::SQL::Schema::Table ) or | 23 is( $args{table}, 'IMPL::SQL::Schema::Table' ) or | 
| 24 die new IMPL::InvalidArgumentException("table argument must be a table object"); | 24 die new IMPL::InvalidArgumentException("table argument must be a table object"); | 
| 25 $this->{$name} = $args{'name'}; | 25 $this->{$name} = $args{'name'}; | 
| 26 $this->{$table} = $args{'table'}; | 26 $this->{$table} = $args{'table'}; | 
| 27 $this->columns( [map { ResolveColumn($this->table,$_) } @{$args{'columns'}}] ); | 27 $this->columns( [map { ResolveColumn($this->table,$_) } @{$args{'columns'}}] ); | 
| 28 } | 28 } | 
| 73 } | 73 } | 
| 74 | 74 | 
| 75 sub ResolveAlias { | 75 sub ResolveAlias { | 
| 76 my ($self,$alias) = @_; | 76 my ($self,$alias) = @_; | 
| 77 | 77 | 
| 78 return isclass($alias, typeof IMPL::SQL::Schema::Constraint) ? $alias : $aliases{$alias}; | 78 return isclass($alias, 'IMPL::SQL::Schema::Constraint') ? $alias : $aliases{$alias}; | 
| 79 } | 79 } | 
| 80 | 80 | 
| 81 sub RegisterAlias { | 81 sub RegisterAlias { | 
| 82 my ($self,$alias) = @_; | 82 my ($self,$alias) = @_; | 
| 83 | 83 | 
| 84 $aliases{$alias} = typeof($self); | 84 $aliases{$alias} = ref $self ? typeof($self) : $self; | 
| 85 } | 85 } | 
| 86 | 86 | 
| 87 1; | 87 1; | 
