X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FParser%2FXML%2FXMI%2FRational.pm;h=1047a7f84e07a444571732796060059e5903db7b;hb=5c5997ef0d520da444d08c10313169a627e0c9fb;hp=c7397ac6107fb47fb3490ce320cdb8de102495cf;hpb=aafe595b2a974fa16aa5b2daf7709f099dd09522;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/Parser/XML/XMI/Rational.pm b/lib/SQL/Translator/Parser/XML/XMI/Rational.pm index c7397ac..1047a7f 100644 --- a/lib/SQL/Translator/Parser/XML/XMI/Rational.pm +++ b/lib/SQL/Translator/Parser/XML/XMI/Rational.pm @@ -1,7 +1,7 @@ package SQL::Translator::Parser::XML::XMI::Rational; # ------------------------------------------------------------------- -# $Id: Rational.pm,v 1.3 2003-10-02 01:40:06 grommit Exp $ +# $Id: Rational.pm,v 1.6 2003-10-06 15:43:41 grommit Exp $ # ------------------------------------------------------------------- # Copyright (C) 2003 Mark Addison , # @@ -28,12 +28,21 @@ Data Modeling Profile. =cut use strict; + +use vars qw[ $DEBUG $VERSION @EXPORT_OK ]; +$VERSION = sprintf "%d.%02d", q$Revision: 1.6 $ =~ /(\d+)\.(\d+)/; +$DEBUG = 0 unless defined $DEBUG; +use Exporter; +use base qw(Exporter); +@EXPORT_OK = qw(parse); + use SQL::Translator::Parser::XML::XMI; use SQL::Translator::Utils 'debug'; # Set the parg for the conversion sub then use the XMI parser sub parse { my ( $translator ) = @_; + local $DEBUG = $translator->debug; my $pargs = $translator->parser_args; $pargs->{classes2schema} = \&classes2schema; return SQL::Translator::Parser::XML::XMI::parse(@_); @@ -102,7 +111,7 @@ sub classes2schema { elsif ( $stereo eq "PK" ) { $data{type} = "PRIMARY_KEY"; } - # TODO We need to work out the ref table + # Work out the ref table elsif ( $stereo eq "FK" ) { $data{type} = "FOREIGN_KEY"; _add_fkey_refs($class,$op,\%data); @@ -128,11 +137,6 @@ sub _add_fkey_refs { # Find the association ends my ($end) = grep { $_->{name} eq $op->{name} } @{$class->{associationEnds}}; - #my $end; - #foreach $end ( @{$class->{associationEnds}} ) { - # warn "END: $end->{name} $op->{name}\n"; - # last if $end->{name} eq $op->{name}; - #} return unless $end; # Find the fkey op my ($refop) = grep { $_->{name} eq $end->{otherEnd}{name} }