0
|
1 use strict;
|
|
2 package Schema::DB::Type;
|
|
3 use Common;
|
|
4 our @ISA=qw(Object);
|
|
5
|
|
6 BEGIN {
|
|
7 DeclareProperty Name => ACCESS_READ;
|
|
8 DeclareProperty MaxLength => ACCESS_READ;
|
|
9 DeclareProperty Scale => ACCESS_READ;
|
|
10 DeclareProperty Unsigned => ACCESS_READ;
|
|
11 DeclareProperty Zerofill => ACCESS_READ;
|
|
12 DeclareProperty Tag => ACCESS_READ;
|
|
13 }
|
|
14
|
|
15 sub CTOR {
|
|
16 my $this = shift;
|
|
17 $this->SUPER::CTOR(@_);
|
|
18
|
|
19 $this->{$Scale} = 0 if not $this->{$Scale};
|
|
20 }
|
|
21
|
|
22 sub isEquals {
|
|
23 my ($a,$b) = @_;
|
|
24
|
|
25 if (defined $a and defined $b) {
|
|
26 return $a == $b;
|
|
27 } else {
|
|
28 if (defined $a or defined $b) {
|
|
29 return 0;
|
|
30 } else {
|
|
31 return 1;
|
|
32 }
|
|
33 }
|
|
34 }
|
|
35
|
|
36 sub isSame {
|
|
37 my ($this,$other) = @_;
|
|
38
|
|
39 return ($this->{$Name} eq $other->{$Name} and isEquals($this->{$MaxLength},$other->{$MaxLength}) and isEquals($this->{$Scale},$other->{$Scale}));
|
|
40 }
|
|
41
|
|
42 1;
|