Fey
view release on metacpan or search on metacpan
lib/Fey/Table.pm view on Meta::CPAN
package Fey::Table;
use strict;
use warnings;
use namespace::autoclean;
our $VERSION = '0.44';
use Fey::Column;
use Fey::Exceptions qw( param_error );
use Fey::NamedObjectSet;
use Fey::Schema;
use Fey::Table::Alias;
use Fey::Types qw(
ArrayRef Bool HashRef Str Undef Column ColumnOrName NamedObjectSet Schema
);
use List::AllUtils qw( any all first_index );
use Scalar::Util qw( blessed weaken );
use Moose 2.1200;
use MooseX::Params::Validate 0.21 qw( pos_validated_list );
use MooseX::SemiAffordanceAccessor 0.03;
use MooseX::StrictConstructor 0.13;
use Moose::Util::TypeConstraints;
with 'Fey::Role::TableLike';
with 'Fey::Role::MakesAliasObjects' => {
self_param => 'table',
alias_class => 'Fey::Table::Alias',
};
has 'id' => (
is => 'ro',
lazy_build => 1,
init_arg => undef,
);
has 'name' => (
is => 'ro',
isa => Str,
required => 1,
);
has 'is_view' => (
is => 'ro',
isa => Bool,
default => 0,
);
has '_keys' => (
traits => ['Array'],
is => 'bare',
isa => ArrayRef [NamedObjectSet],
default => sub { [] },
handles => {
_keys => 'elements',
_add_key => 'push',
_delete_key => 'splice',
},
);
has '_columns' => (
is => 'ro',
isa => NamedObjectSet,
default => sub { return Fey::NamedObjectSet->new() },
handles => {
columns => 'objects',
column => 'object',
},
);
has 'schema' => (
is => 'rw',
isa => Undef | Schema,
weak_ref => 1,
writer => '_set_schema',
( run in 2.764 seconds using v1.01-cache-2.11-cpan-d8267643d1d )