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

core refactoring
author cin
date Mon, 04 Feb 2013 02:10:37 +0400
parents 5c82eec23bb6
children
line wrap: on
line diff
--- a/Lib/IMPL/SQL/Schema/Type.pm	Fri Feb 01 16:37:59 2013 +0400
+++ b/Lib/IMPL/SQL/Schema/Type.pm	Mon Feb 04 02:10:37 2013 +0400
@@ -1,23 +1,23 @@
+package IMPL::SQL::Schema::Type;
 use strict;
 use warnings;
-package IMPL::SQL::Schema::Type;
 
-use parent qw(IMPL::Object IMPL::Object::Autofill);
-
-use IMPL::lang qw( :declare :compare );
-
-use IMPL::Class::Property::Direct;
-
-BEGIN {
-    public _direct property name => PROP_GET;
-    public _direct property maxLength => PROP_GET;
-    public _direct property scale => PROP_GET;
-    public _direct property unsigned => PROP_GET;
-    public _direct property zerofill => PROP_GET;
-    public _direct property tag => PROP_GET;
-}
-
-__PACKAGE__->PassThroughArgs;
+use IMPL::lang qw( :compare );
+use IMPL::Const qw(:prop);
+use IMPL::declare{
+    base => [
+        'IMPL::Object' => undef,
+        'IMPL::Object::Autofill' => '@_'
+    ],
+    props => [
+        name => PROP_RO | PROP_DIRECT,
+        maxLength => PROP_RO | PROP_DIRECT,
+        scale => PROP_RO | PROP_DIRECT,
+        unsigned => PROP_RO | PROP_DIRECT,
+        zerofill => PROP_RO | PROP_DIRECT,
+        tag => PROP_RO | PROP_DIRECT
+    ]
+};
 
 sub CTOR {
     my $this = shift;