$meth =~ s/Fieldmapper:://;
$meth =~ s/::/_/;
- my $obj = $self->editor->$meth(
+ my $ed = grep( /open-ils.cstore/, @{$fclass->Controller} ) ?
+ $self->editor :
+ new_rstore_editor();
+
+ my $obj = $ed->$meth(
($multi) ? { $ffield => $context->$lfield() } : $context->$lfield() );
if (@$path) {
$$fieldmap{$n}{hint} = $c;
$$fieldmap{$n}{virtual} = ($idl->{$c}{'oils_persist:virtual'} && $idl->{$c}{'oils_persist:virtual'} eq 'true') ? 1 : 0;
$$fieldmap{$n}{table} = $idl->{$c}{'oils_persist:tablename'};
+ $$fieldmap{$n}{controller} = [ split ' ', $idl->{$c}{'controller'} ];
$$fieldmap{$n}{restrict_primary} = $idl->{$c}{'oils_persist:restrict_primary'};
$$fieldmap{$n}{sequence} = $idl->{$c}{fields}{'oils_persist:sequence'};
$$fieldmap{$n}{identity} = $idl->{$c}{fields}{'oils_persist:primary'};
return $$fieldmap{$self->class_name}{table};
}
+sub Controller {
+ my $self = shift;
+ return $$fieldmap{$self->class_name}{controller};
+}
+
sub class_name {
my $class_name = shift;
return ref($class_name) || $class_name;