diff Lib/IMPL/SQL/Schema/Table.pm @ 278:4ddb27ff4a0b

core refactoring
author cin
date Mon, 04 Feb 2013 02:10:37 +0400
parents 56364d0c4b4f
children 77df11605d3a
line wrap: on
line diff
--- a/Lib/IMPL/SQL/Schema/Table.pm	Fri Feb 01 16:37:59 2013 +0400
+++ b/Lib/IMPL/SQL/Schema/Table.pm	Mon Feb 04 02:10:37 2013 +0400
@@ -1,30 +1,29 @@
+package IMPL::SQL::Schema::Table;
 use strict;
-package IMPL::SQL::Schema::Table;
-
-use IMPL::lang qw(:declare  is);
 
-use parent qw(
-    IMPL::Object
-    IMPL::Object::Disposable
-);
+use IMPL::lang qw(is);
+use IMPL::Const qw(:prop);
+use IMPL::declare {
+    base => [
+        'IMPL::Object' => undef,
+        'IMPL::Object::Disposable' => undef
+    ],
+    props => [
+        name => PROP_RO | PROP_DIRECT,
+        schema => PROP_RO | PROP_DIRECT,
+        columns => PROP_RO | PROP_DIRECT,
+        constraints => PROP_RO | PROP_DIRECT,
+        columnsByName => PROP_RO | PROP_DIRECT,
+        primaryKey => PROP_RO | PROP_DIRECT,
+        tag => PROP_RW | PROP_DIRECT,
+    ]
+};
 
 require IMPL::SQL::Schema::Column;
 require IMPL::SQL::Schema::Constraint;
 require IMPL::SQL::Schema::Constraint::PrimaryKey;
 require IMPL::SQL::Schema::Constraint::ForeignKey;
 
-use IMPL::Class::Property::Direct;
-
-BEGIN {
-    public _direct property name => PROP_GET;
-    public _direct property schema => PROP_GET;
-    public _direct property columns => PROP_GET;
-    public _direct property constraints => PROP_GET;
-    public _direct property columnsByName => 0;
-    public _direct property primaryKey => PROP_GET;
-    public _direct property tag => PROP_ALL;
-}
-
 sub CTOR {
     my ($this,%args) = @_;