1 2package Tangram::Type::BackRef; 3 4use Tangram::Lazy::BackRef; 5use strict; 6 7use vars qw(@ISA); 8 @ISA = qw( Tangram::Type::Scalar ); 9 10$Tangram::Schema::TYPES{backref} = __PACKAGE__->new; 11 12sub get_export_cols 13 { 14 () 15 } 16 17sub get_exporter 18 { 19 } 20 21sub get_importer 22{ 23 my ($self, $context) = @_; 24 my $field = $self->{name}; 25 26 return sub { 27 my ($obj, $row, $context) = @_; 28 29 my $rid = shift @$row; 30 31 if ($rid) { 32 tie $obj->{$field}, 'Tangram::Lazy::BackRef', $context->{storage}, $context->{id}, $self->{name}, $rid, $self->{class}, $self->{field}; 33 } else { 34 $obj->{$field} = undef; 35 } 36 } 37} 38 39#--------------------------------------------------------------------- 40# Tangram::Type::BackRef->coldefs(...) 41# 42# BackRefs do not set up any columns by default. 43#--------------------------------------------------------------------- 44sub coldefs 45{ 46 return (); 47} 48 491; 50