X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FSQL%2FTranslator%2FXMI%2FParser%2FV12.pm;h=4b1f7eb61ac50daa599649ceb14cb4796fe57639;hb=821a0fde221f5accf93e3f65efa77b5a6733cb5e;hp=683eb11bc07ae6a8d6c42e6f67598bb26425804e;hpb=ef879f14543c5779681d64cb8faa29ade0fe9493;p=dbsrgits%2FSQL-Translator.git diff --git a/lib/SQL/Translator/XMI/Parser/V12.pm b/lib/SQL/Translator/XMI/Parser/V12.pm index 683eb11..4b1f7eb 100644 --- a/lib/SQL/Translator/XMI/Parser/V12.pm +++ b/lib/SQL/Translator/XMI/Parser/V12.pm @@ -1,7 +1,7 @@ package SQL::Translator::XMI::Parser::V12; # ------------------------------------------------------------------- -# $Id: V12.pm,v 1.4 2003-10-03 18:07:13 grommit Exp $ +# $Id$ # ------------------------------------------------------------------- # Copyright (C) 2003 Mark Addison , # @@ -31,12 +31,29 @@ SQL::Translator::XMI::Parser::V12 - Version 1.2 parser. use strict; use 5.006_001; use vars qw/$VERSION/; -$VERSION = sprintf "%d.%02d", q$Revision: 1.4 $ =~ /(\d+)\.(\d+)/; +$VERSION = sprintf "%d.%02d", q$Revision$ =~ /(\d+)\.(\d+)/; use base qw(SQL::Translator::XMI::Parser); my $spec12 = {}; +$spec12->{taggedValue} = { + name => "taggedValue", + plural => "taggedValues", + default_path => '//UML:TaggedValue[@xmi.id]', + attrib_data => [qw/isSpecification/], + path_data => [ + { + name => "dataValue", + path => 'UML:TaggedValue.dataValue/text()', + }, + { + name => "name", + path => 'xmiDeref(UML:TaggedValue.type/UML:TagDefinition)/@name', + }, + ], +}; + $spec12->{class} = { name => "class", plural => "classes", @@ -89,23 +106,6 @@ $spec12->{class} = { ], }; -$spec12->{taggedValue} = { - name => "taggedValue", - plural => "taggedValues", - default_path => '//UML:TaggedValue[@xmi.id]', - attrib_data => [qw/isSpecification/], - path_data => [ - { - name => "dataValue", - path => 'UML:TaggedValue.dataValue/text()', - }, - { - name => "name", - path => 'xmiDeref(UML:TaggedValue.type/UML:TagDefinition)/@name', - }, - ], -}; - $spec12->{attribute} = { name => "attribute", plural => "attributes", @@ -143,6 +143,7 @@ $spec12->{attribute} = { $spec12->{dataType} = { name => "datatype", plural => "datatypes", + isRoot => 1, default_path => '//UML:DataType[@xmi.id]', attrib_data => [qw/name visibility isSpecification isRoot isLeaf isAbstract/], @@ -230,7 +231,7 @@ $spec12->{association} = { ], kids => [ { - name => "ends", + name => "associationEnds", path => "UML:Association.connection/UML:AssociationEnd", class => "AssociationEnd", multiplicity => "*", @@ -268,19 +269,36 @@ $spec12->{AssociationEnd} = { class => "class", multiplicity => "1", }, + { + name => "multiplicity", + #path => "xmiDeref(UML:AssociationEnd.multiplicity/UML:Multiplicity)", + path => 'UML:AssociationEnd.multiplicity/UML:Multiplicity', + class => "multiplicity", + multiplicity => "1", + }, + ], +}; + +$spec12->{multiplicity} = { + name => "multiplicity", + plural => "multiplicities", + default_path => '//UML:Multiplicity[@xmi.id]', + attrib_data => [qw//], + path_data => [ + { + name => "rangeLower", + path => 'xmiDeref(UML:Multiplicity.range/UML:MultiplicityRange)/@lower', + }, + { + name => "rangeUpper", + path => 'xmiDeref(UML:Multiplicity.range/UML:MultiplicityRange)/@upper', + }, ], }; # Set the spec and have the get_* methods generated __PACKAGE__->XmiSpec($spec12); -#----------------------------------------------------------------------------- - -# Test override -# sub get_classes { -# print "HELLO 1.2\n"; -# shift->SUPER::get_classes(@_); -# } 1; #===========================================================================