Added our own accessor system (ripped from C::A) and a bunch more compat code
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat / AttributeAPI.pm
1 package DBIx::Class::CDBICompat::AttributeAPI;
2
3 sub _attrs {
4   my ($self, @atts) = @_;
5   return @{$self->{_column_data}}{@atts};
6 }
7
8 *_attr = \&_attrs;
9
10 sub _attribute_store {
11   my $self   = shift;
12   my $vals   = @_ == 1 ? shift: {@_};
13   my (@cols) = keys %$vals;
14   @{$self->{_column_data}}{@cols} = @{$vals}{@cols};
15 }
16
17 sub _attribute_set {
18   my $self   = shift;
19   my $vals   = @_ == 1 ? shift: {@_};
20   $self->set_column($_, $vals->{$_}) for keys %{$vals};
21 }
22
23 sub _attribute_delete {
24   my ($self, $attr) = @_;
25   delete $self->{_column_data}{$attr};
26 }
27
28 sub _attribute_exists {
29   my ($self, $attr) = @_;
30   exists $self->{_column_data}{$attr};
31 }
32
33 1;