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