Move XMI stuff to branches/xmi since no one has worked on them and the tests have...
[dbsrgits/SQL-Translator.git] / lib / SQL / Translator / XMI / Parser / V12.pm
diff --git a/lib/SQL/Translator/XMI/Parser/V12.pm b/lib/SQL/Translator/XMI/Parser/V12.pm
deleted file mode 100644 (file)
index 634b07b..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-package SQL::Translator::XMI::Parser::V12;
-
-# -------------------------------------------------------------------
-# $Id$
-# -------------------------------------------------------------------
-# Copyright (C) 2003 Mark Addison <mark.addison@itn.co.uk>,
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; version 2.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307  USA
-# -------------------------------------------------------------------
-
-=pod
-
-=head1 NAME
-
-SQL::Translator::XMI::Parser::V12 - Version 1.2 parser.
-
-=cut
-
-use strict;
-use 5.006_001;
-
-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",
-       isRoot  => 1,
-    default_path => '//UML:Class[@xmi.id]',
-    attrib_data => 
-        [qw/name visibility isSpecification isRoot isLeaf isAbstract isActive/],
-    path_data => [
-        { 
-            name  => "stereotype",
-            path  => 'xmiDeref(UML:ModelElement.stereotype/UML:Stereotype)/@name',
-            default => "",
-        },
-    ],
-    kids => [
-        { 
-            name  => "attributes",
-            # name in data returned
-            path  => "UML:Classifier.feature/UML:Attribute",
-            class => "attribute", 
-            # Points to class in spec. get_attributes() called to parse it and
-            # adds filter_attributes to the args for get_classes().
-            multiplicity => "*",
-            # How many we get back. Use '1' for 1 and '*' for lots.
-                       # TODO If not set then decide depening on the return?
-        },
-        {
-            name  => "operations",
-            path  => "UML:Classifier.feature/UML:Operation",
-            class => "operation", 
-            multiplicity => "*",
-        },
-        {
-            name  => "taggedValues",
-            path  => 'UML:ModelElement.taggedValue/UML:TaggedValue',
-            class => "taggedValue",
-            multiplicity => "*",
-                       map => "name",
-               # Add a _map_taggedValues to the data. Its a hash of the name data
-                       # which refs the normal list of kids
-               },
-               {
-            name  => "associationEnds",
-                       path  => '//UML:AssociationEnd.participant/UML:Class[@xmi.idref="${xmi.id}"]/../..',
-                       # ${xmi.id} is a variable sub from the data defined for this thing.
-                       # Not standard XPath! Done in the get sub
-                       class => "AssociationEnd",
-            multiplicity => "*",
-        },
-    ],
-};
-
-$spec12->{attribute} = {
-    name => "attribute",
-    plural => "attributes",
-    default_path => '//UML:Classifier.feature/UML:Attribute[@xmi.id]',
-    attrib_data => 
-        [qw/name visibility isSpecification ownerScope/],
-    path_data => [
-        { 
-            name  => "stereotype",
-            path  => 'xmiDeref(UML:ModelElement.stereotype/UML:Stereotype)/@name',
-            default => "",
-        },
-        { 
-            name  => "initialValue",
-            path  => 'UML:Attribute.initialValue/UML:Expression/@body',
-        },
-    ],
-    kids => [
-        { 
-            name  => "taggedValues",
-            path  => 'UML:ModelElement.taggedValue/UML:TaggedValue',
-            class => "taggedValue", 
-            multiplicity => "*",
-                       map => "name",
-        },
-        { 
-            name  => "dataType",
-            path  => 'xmiDeref(UML:StructuralFeature.type/UML:DataType)',
-            class => "dataType", 
-            multiplicity => "1",
-        },
-    ],
-};
-
-$spec12->{dataType} = {
-    name   => "datatype",
-    plural => "datatypes",
-       isRoot => 1,
-    default_path => '//UML:DataType[@xmi.id]',
-    attrib_data  =>
-        [qw/name visibility isSpecification isRoot isLeaf isAbstract/],
-    path_data => [
-        { 
-            name  => "stereotype",
-            path  => 'xmiDeref(UML:ModelElement.stereotype/UML:Stereotype)/@name',
-            default => "",
-        },
-    ],
-    kids => [
-        { 
-            name  => "taggedValues",
-            path  => 'UML:ModelElement.taggedValue/UML:TaggedValue',
-            class => "taggedValue", 
-            multiplicity => "*",
-                       map => "name",
-        },
-    ],
-};
-
-
-
-$spec12->{operation} = {
-    name => "operation",
-    plural => "operations",
-    default_path => '//UML:Classifier.feature/UML:Operation[@xmi.id]',
-    attrib_data => 
-        [qw/name visibility isSpecification ownerScope isQuery
-            concurrency isRoot isLeaf isAbstract/],
-    path_data => [
-        { 
-            name  => "stereotype",
-            path  => 'xmiDeref(UML:ModelElement.stereotype/UML:Stereotype)/@name',
-            default => "",
-        },
-    ],
-    kids => [
-        { 
-            name  => "parameters",
-            path  => "UML:BehavioralFeature.parameter/UML:Parameter",
-            class => "parameter", 
-            multiplicity => "*",
-        },
-        { 
-            name  => "taggedValues",
-            path  => 'UML:ModelElement.taggedValue/UML:TaggedValue',
-            class => "taggedValue", 
-            multiplicity => "*",
-                       map => "name",
-        },
-    ],
-};
-
-$spec12->{parameter} = {
-    name   => "parameter",
-    plural => "parameters",
-    default_path => '//UML:Parameter[@xmi.id]',
-    attrib_data  => [qw/name isSpecification kind/],
-    path_data => [
-        { 
-            name  => "stereotype",
-            path  => 'xmiDeref(UML:ModelElement.stereotype/UML:Stereotype)/@name',
-            default => "",
-        },
-        { 
-            name  => "datatype",
-            path  => 'xmiDeref(UML:StructuralFeature.type/UML:DataType)/@name',
-        },
-    ],
-};
-
-$spec12->{association} = {
-    name   => "association",
-    plural => "associations",
-       isRoot => 1,
-    default_path => '//UML:Association[@xmi.id]',
-    attrib_data  => [qw/name visibility isSpecification isNavigable ordering aggregation targetScope changeability/],
-    path_data => [
-        {
-            name  => "stereotype",
-            path  => 'xmiDeref(UML:ModelElement.stereotype/UML:Stereotype)/@name',
-            default => "",
-        },
-       ],
-       kids => [
-        {
-            name  => "associationEnds",
-            path  => "UML:Association.connection/UML:AssociationEnd",
-            class => "AssociationEnd", 
-            multiplicity => "*",
-        },
-    ],
-};
-
-$spec12->{AssociationEnd} = {
-    name   => "End",
-    plural => "Ends",
-    default_path => '//UML:AssociationEnd',
-    attrib_data  => [qw/name visibility isSpecification isNavigable ordering aggregation targetScope changeability/],
-    path_data => [
-        {
-            name  => "stereotype",
-            path  => 'xmiDeref(UML:ModelElement.stereotype/UML:Stereotype)/@name',
-            default => "",
-        },
-        {
-            name  => "className",
-            path  => 'xmiDeref(UML:AssociationEnd.participant/UML:Class)/@name',
-            default => "",
-        },
-       ],
-    kids => [
-               {
-            name  => "association",
-            path  => "../..",
-            class => "association", 
-            multiplicity => "1",
-        },
-        {
-            name  => "participant",
-            path  => "xmiDeref(UML:AssociationEnd.participant/UML:Class)",
-            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);
-
-
-1; #===========================================================================
-
-__END__
-
-=head1 SYNOPSIS
-
-=head1 DESCRIPTION
-
-=head1 SEE ALSO
-
-perl(1).
-
-=head1 TODO
-
-=head1 BUGS
-
-=head1 VERSION HISTORY
-
-=head1 AUTHOR
-
-grommit <mark.addison@itn.co.uk>
-
-=cut