Mercurial > pub > Impl
comparison Lib/IMPL/SQL/Schema.pm @ 167:1f7a6d762394
SQL schema in progress
author | sourcer |
---|---|
date | Thu, 12 May 2011 08:57:19 +0400 |
parents | 76515373dac0 |
children | d1676be8afcc |
comparison
equal
deleted
inserted
replaced
166:4267a2ac3d46 | 167:1f7a6d762394 |
---|---|
1 use strict; | 1 use strict; |
2 package IMPL::SQL::Schema; | 2 package IMPL::SQL::Schema; |
3 | 3 |
4 use IMPL::_core::version; | 4 use IMPL::_core::version; |
5 use IMPL::lang; | 5 |
6 use IMPL::lang qw(is :declare :constants); | |
7 | |
6 use parent qw( | 8 use parent qw( |
7 IMPL::Object | 9 IMPL::Object |
8 IMPL::Object::Disposable | 10 IMPL::Object::Disposable |
9 IMPL::Object::Autofill | 11 IMPL::Object::Autofill |
10 IMPL::Object::Clonable | 12 IMPL::Object::Clonable |
11 ); | 13 ); |
12 | 14 |
13 use IMPL::Class::Property; | |
14 use IMPL::Class::Property::Direct; | 15 use IMPL::Class::Property::Direct; |
15 | 16 |
16 require IMPL::SQL::Schema::Table; | 17 require IMPL::SQL::Schema::Table; |
17 | 18 |
18 __PACKAGE__->PassThroughArgs; | 19 __PACKAGE__->PassThroughArgs; |
19 | 20 |
20 BEGIN { | 21 BEGIN { |
21 public _direct property version => prop_get; | 22 public _direct property version => PROP_GET; |
22 public _direct property name => prop_get; | 23 public _direct property name => PROP_GET; |
23 private _direct property tables => prop_get; | 24 private _direct property tables => PROP_GET; |
24 } | 25 } |
25 | 26 |
26 sub AddTable { | 27 sub AddTable { |
27 my ($this,$table) = @_; | 28 my ($this,$table) = @_; |
28 | 29 |
62 | 63 |
63 sub ResolveTable { | 64 sub ResolveTable { |
64 my ($this,$table) = @_; | 65 my ($this,$table) = @_; |
65 | 66 |
66 UNIVERSAL::isa($table,'IMPL::SQL::Schema::Table') ? $table : $this->{$tables}{$table}; | 67 UNIVERSAL::isa($table,'IMPL::SQL::Schema::Table') ? $table : $this->{$tables}{$table}; |
67 } | |
68 | |
69 sub Table { | |
70 goto &GetTable; | |
71 } | 68 } |
72 | 69 |
73 sub GetTable { | 70 sub GetTable { |
74 my ($this,$tableName) = @_; | 71 my ($this,$tableName) = @_; |
75 return $this->{$tables}{$tableName}; | 72 return $this->{$tables}{$tableName}; |