this is pretty stable, and is ( i think ) generating usable class::dbi
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / Schema / Table.pm
index 03c51ad..5d24cc1 100644 (file)
@@ -1,7 +1,7 @@
 package SQL::Translator::Schema::Table;
 
 # ----------------------------------------------------------------------
-# $Id: Table.pm,v 1.19 2003-09-02 00:24:07 allenday Exp $
+# $Id: Table.pm,v 1.20 2003-09-25 01:31:28 allenday Exp $
 # ----------------------------------------------------------------------
 # Copyright (C) 2003 Ken Y. Clark <kclark@cpan.org>
 #
@@ -51,7 +51,7 @@ use Data::Dumper;
 use base 'Class::Base';
 use vars qw( $VERSION $FIELD_ORDER );
 
-$VERSION = sprintf "%d.%02d", q$Revision: 1.19 $ =~ /(\d+)\.(\d+)/;
+$VERSION = sprintf "%d.%02d", q$Revision: 1.20 $ =~ /(\d+)\.(\d+)/;
 
 # ----------------------------------------------------------------------
 sub init {
@@ -420,6 +420,35 @@ Determine whether the view is valid or not.
 }
 
 # ----------------------------------------------------------------------
+sub is_trivial_link {
+
+=pod
+
+=head2 is_data
+
+=cut
+
+    my $self = shift;
+    return 0 if $self->is_data;
+    return $self->{'is_trivial_link'} if defined $self->{'is_trivial_link'};
+
+    $self->{'is_trivial_link'} = 1;
+
+    my %fk = ();
+
+    foreach my $field ( $self->get_fields ) {
+         next unless $field->is_foreign_key;
+         $fk{$field->foreign_key_reference->reference_table}++;
+       }
+
+    foreach my $referenced (keys %fk){
+         $self->{'is_trivial_link'} = 0 and last if $fk{$referenced} > 1;
+       }
+
+    return $self->{'is_trivial_link'};
+
+}
+
 sub is_data {
 
 =pod
@@ -433,21 +462,13 @@ sub is_data {
 
     $self->{'is_data'} = 0;
 
-    my %fk = ();
-
     foreach my $field ( $self->get_fields ) {
         if ( !$field->is_primary_key and !$field->is_foreign_key ) {
             $self->{'is_data'} = 1;
             return $self->{'is_data'};
-#        } elsif($field->is_foreign_key) {
-#                $fk{$field->foreign_key_reference->reference_table}++;
         }
     }
 
-#    foreach my $referenced (keys %fk){
-#        $self->{'is_data'} = 1 and last if $fk{$referenced} > 1;
-#      }
-
     return $self->{'is_data'};
 }