annotate lib/IMPL/SQL/Schema/MySQL/EnumType.pm @ 411:ee36115f6a34 ref20150831

sync
author cin
date Mon, 21 Sep 2015 00:53:10 +0300
parents c6e90e02dd17
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
407
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
1 package IMPL::SQL::Schema::MySQL::EnumType;
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
2 use strict;
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
3
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
4 use IMPL::Const qw(:prop);
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
5 use IMPL::declare {
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
6 base => [
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
7 'IMPL::SQL::Schema::Type' => '@_'
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
8 ],
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
9 props => [
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
10 enumValues => PROP_RO | PROP_LIST
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
11 ]
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
12 };
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
13
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
14 our @ENUM_TYPES = qw(ENUM SET);
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
15
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
16 sub CTOR {
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
17 my $this = shift;
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
18
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
19 die ArgException->new(name => "The specified name is invalid", $this->name)
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
20 unless grep uc($this->name) eq $_, @ENUM_TYPES;
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
21 }
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
22
c6e90e02dd17 renamed Lib->lib
cin
parents:
diff changeset
23 1;