diff Lib/IMPL/SQL/Schema/Type.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 16ada169ca75
children 1f7a6d762394
line wrap: on
line diff
--- a/Lib/IMPL/SQL/Schema/Type.pm	Mon Mar 28 01:36:24 2011 +0400
+++ b/Lib/IMPL/SQL/Schema/Type.pm	Sat Apr 23 23:06:48 2011 +0400
@@ -1,16 +1,16 @@
 use strict;
 package IMPL::SQL::Schema::Type;
-use base qw(IMPL::Object IMPL::Object::Autofill);
+use parent qw(IMPL::Object IMPL::Object::Autofill);
 use IMPL::Class::Property;
 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;
+    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;
@@ -18,7 +18,7 @@
 sub CTOR {
     my $this = shift;
     
-    $this->{$Scale} = 0 if not $this->{$Scale};
+    $this->{$scale} = 0 if not $this->{$scale};
 }
 
 sub isEquals {
@@ -38,7 +38,67 @@
 sub isSame {
     my ($this,$other) = @_;
     
-    return ($this->{$Name} eq $other->{$Name} and isEquals($this->{$MaxLength},$other->{$MaxLength}) and isEquals($this->{$Scale},$other->{$Scale}));
+    return ($this->{$name} eq $other->{$name} and isEquals($this->{$maxLength},$other->{$maxLength}) and isEquals($this->{$scale},$other->{$scale}));
 }
 
 1;
+
+__END__
+
+=pod
+
+=head1 NAME
+
+C<IMPL::SQL::Schema::Type> Описывает SQL типы данных
+
+=head1 SYNOPSIS
+
+=begin code
+
+use IMPL::SQL::Schema::Type;
+
+my $varchar_t = new IMPL::SQL::Schema::Type( name => 'varchar', maxLength => 255 );
+
+my $real_t = new IMPL::SQL::Schema::Type( name => 'float', maxLength=> 10, scale => 4); # mysql: float(10,4)
+
+=end
+
+Данный класс используется для стандатрного описания SQL типов данных. В зависимости
+от движка БД эти объекты могут быть представлены различными строковыми представлениями. 
+
+=head1 MEMBERS
+
+=over
+
+=item C<CTOR(%props)>
+
+Конструктор, заполняет объект значениями которые были переданы в конструкторе.
+
+=item C<[get]name>
+
+Имя типа. Обязательно.
+
+=item C<[get]maxLength>
+
+Максимальная длина, используется только для типов, имеющих длину (либо переменную,
+либо постоянную).
+
+=item C<[get]scale>
+
+Точность, количество знаков после запятой. Используется вместе с C<maxLength>.
+
+=item C<[get]unsigned>
+
+Используется с числовыми данными, обозначает беззнаковые типы.
+
+=item C<[get]zerofill>
+
+Нестандартный атрибут дополняющий числа лидирующими нулями до C<maxLength>.
+
+=item C<[get]tag>
+
+Хеш с дополнительными опциями.
+
+=back
+
+=cut
\ No newline at end of file