09c955fc3223fb51b1ef8fc72b8b36d7c2ed3277
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / CDBICompat / AttributeAPI.pm
1 package # hide from PAUSE 
2     DBIx::Class::CDBICompat::AttributeAPI;
3
4 use strict;
5 use warnings;
6
7 sub _attrs {
8   my ($self, @atts) = @_;
9   return @{$self->{_column_data}}{@atts};
10 }
11
12 *_attr = \&_attrs;
13
14 sub _attribute_store {
15   my $self   = shift;
16   my $vals   = @_ == 1 ? shift: {@_};
17   my (@cols) = keys %$vals;
18   @{$self->{_column_data}}{@cols} = @{$vals}{@cols};
19 }
20
21 sub _attribute_set {
22   my $self   = shift;
23   my $vals   = @_ == 1 ? shift: {@_};
24   $self->set_column($_, $vals->{$_}) for keys %{$vals};
25 }
26
27 sub _attribute_delete {
28   my ($self, $attr) = @_;
29   delete $self->{_column_data}{$attr};
30 }
31
32 sub _attribute_exists {
33   my ($self, $attr) = @_;
34   exists $self->{_column_data}{$attr};
35 }
36
37 1;