package Tangram::Schema::Class; use strict; use Tangram::Schema::Node; use vars qw(@ISA); @ISA = qw( Tangram::Schema::Node ); sub members { my ($self, $type) = @_; return @{$self->{$type}}; } sub is_root { !@{ shift->{BASES} } } sub get_direct_fields { map { values %$_ } values %{ shift->{fields} } } sub get_table { shift->{table} } *direct_fields = \&get_direct_fields; sub get_import_cols { my ($self, $context) = @_; my $table = $self->{table}; map { map { [ $table, $_ ] } $_->get_import_cols($context) } $self->get_direct_fields() } sub get_export_cols { my ($self, $context) = @_; my $table = $self->{table}; map { map { [ $table, $_ ] } $_->get_export_cols($context) } $self->get_direct_fields() }