IsA and AsForm

[prev] [thread] [next] [Date index for 2004/12/03]

From: Peter Speltz
Subject: IsA and AsForm
Date: 01:12 on 03 Dec 2004
I'm working with IsA and AsForm. I noticed in AsForm, for cols inherited by
isa, the column type is not obtained. This makes every input be a simple text
type. 

I overrode column_type in my model class and call it from AsForm rather than
the one it usually calls. It uses a sub which to get types of is_a inherited
cols. A couple questions:
1) Will $class->__isa_rels{$column} ever return an array with more than one
value?
2) When you make a is_a rel, it automatically make a column_type method that
works?

Here's my code I have in my base model class.

# determine column type of a is_a inherited field if it can.
sub _maybe_isa_col_type {
    my $class = shift;
    my $col = shift or die "Need a column for _maybe_isa_col_type";
    my $type;

    eval {
            my $isa_rels = $class->__isa_rels;
            # get first type we come to for column in a isa class
            foreach ($class->columns) {
                my $isa_class = $isa_rels->{$_}->[0]; # will this ever have
more one?
                                                   # I hope not.
                if ($isa_class) {
                    $type = $isa_class->column_type($col);
                    warn "isa class = $isa_class col  = $col type = $type";
                }
                last if $type;
            }
    };
    return $type;
}


sub column_type {
    my $class = shift;
    my $col = shift or die "Need a column for column_type";
    my $type =  $class->_column_info->{$col}->{type} ||
$class->_maybe_isa_col_type($col);
}


thanks,


 

=====
pjs


		
__________________________________ 
Do you Yahoo!? 
Yahoo! Mail - 250MB free storage. Do more. Manage less. 
http://info.mail.yahoo.com/mail_250

IsA and AsForm
Peter Speltz 01:12 on 03 Dec 2004

Generated at 12:00 on 04 Dec 2004 by mariachi v0.52