# ------------------------------------------------------------------------------------------ package CaCORE::CaDSR::UMLProject::UMLGeneralizationMetadata; use 5.005; #use strict; use warnings; require Exporter; use XML::DOM; ## begin import objects ## use CaCORE::ApplicationService; ## end import objects ## $VERSION = '3.2'; @ISA = qw(CaCORE::DomainObjectI); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # create an instance of the UMLGeneralizationMetadata object # returns: a UMLGeneralizationMetadata object sub new { my $class = shift; my $self = {}; bless($self, $class); #print "new UMLGeneralizationMetadata\n"; return $self; } # Construct the specific section of the WSDL request corresponding # to this UMLGeneralizationMetadata intance # returns: XML in string format sub toWebserviceXML { my $self = shift; my $result = shift; my $assigned_id = shift; my $current_id = shift; my $l = shift; my %worklist = %$l; # prefix portion of the xml $result .= ""; my $tmpstr = ""; $current_id ++; ## begin attribute to XML ## # id; if( defined( $self->getId ) ) { $tmpstr = "" . $self->getId . ""; } else { $tmpstr = ""; } $result .= $tmpstr; ## end attribute to XML ## ## begin association to XML ## ## end association to XML ## # add trailing close tags $result .= ""; return ($result, $current_id, %worklist); } # parse a given webservice response xml, construct a list of UMLGeneralizationMetadata objects # param: xml doc # returns: list of UMLGeneralizationMetadata objects sub fromWebserviceXML { my $self = shift; my $parser = new XML::DOM::Parser; my $docnode = $parser->parse(shift); my $root = $docnode->getFirstChild->getFirstChild->getFirstChild->getFirstChild; return $self->fromWSXMLListNode($root); } # parse a given xml node, construct a list of UMLGeneralizationMetadata objects # param: xml node # returns: a list of UMLGeneralizationMetadata objects sub fromWSXMLListNode { my $self = shift; my $listNode = shift; my @obj_list = (); # get all children for this node for my $childrenNode ($listNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { my $newobj = $self->fromWSXMLNode($childrenNode); push @obj_list, $newobj; } } return @obj_list; } # parse a given xml node, construct one UMLGeneralizationMetadata object # param: xml node # returns: one UMLGeneralizationMetadata object sub fromWSXMLNode { my $UMLGeneralizationMetadataNode = $_[1]; ## begin ELEMENT_NODE children ## my $id; ## end ELEMENT_NODE children ## # get all children for this node for my $childrenNode ($UMLGeneralizationMetadataNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { if( ! defined($childrenNode->getFirstChild) ){ next; }; my $textNode = $childrenNode->getFirstChild; ## begin iterate ELEMENT_NODE ## if (0) { # do nothing, just a place holder for "if" component } elsif ($childrenNode->getNodeName eq "id") { $id=$textNode->getNodeValue; } ## end iterate ELEMENT_NODE ## } } my $newobj = new CaCORE::CaDSR::UMLProject::UMLGeneralizationMetadata; ## begin set attr ## $newobj->setId($id); ## end set attr ## return $newobj; } ## begin getters and setters ## sub getId { my $self = shift; return $self->{id}; } sub setId { my $self = shift; $self->{id} = shift; } ## end getters and setters ## ## begin bean association methods ## sub getObjectClassRelationship { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::ObjectClassRelationship", $self); return $results[0]; } sub getSuperUMLClassMetadata { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLClassMetadata", $self); return $results[0]; } ## end bean association methods ## 1; #end # ------------------------------------------------------------------------------------------ package CaCORE::CaDSR::UMLProject::Project; use 5.005; #use strict; use warnings; require Exporter; use XML::DOM; ## begin import objects ## use CaCORE::ApplicationService; ## end import objects ## @ISA = qw(CaCORE::DomainObjectI); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # create an instance of the Project object # returns: a Project object sub new { my $class = shift; my $self = {}; bless($self, $class); #print "new Project\n"; return $self; } # Construct the specific section of the WSDL request corresponding # to this Project intance # returns: XML in string format sub toWebserviceXML { my $self = shift; my $result = shift; my $assigned_id = shift; my $current_id = shift; my $l = shift; my %worklist = %$l; # prefix portion of the xml $result .= ""; my $tmpstr = ""; $current_id ++; ## begin attribute to XML ## # description; if( defined( $self->getDescription ) ) { $tmpstr = "" . $self->getDescription . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # id; if( defined( $self->getId ) ) { $tmpstr = "" . $self->getId . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # longName; if( defined( $self->getLongName ) ) { $tmpstr = "" . $self->getLongName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # shortName; if( defined( $self->getShortName ) ) { $tmpstr = "" . $self->getShortName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # version; if( defined( $self->getVersion ) ) { $tmpstr = "" . $self->getVersion . ""; } else { $tmpstr = ""; } $result .= $tmpstr; ## end attribute to XML ## ## begin association to XML ## ## end association to XML ## # add trailing close tags $result .= ""; return ($result, $current_id, %worklist); } # parse a given webservice response xml, construct a list of Project objects # param: xml doc # returns: list of Project objects sub fromWebserviceXML { my $self = shift; my $parser = new XML::DOM::Parser; my $docnode = $parser->parse(shift); my $root = $docnode->getFirstChild->getFirstChild->getFirstChild->getFirstChild; return $self->fromWSXMLListNode($root); } # parse a given xml node, construct a list of Project objects # param: xml node # returns: a list of Project objects sub fromWSXMLListNode { my $self = shift; my $listNode = shift; my @obj_list = (); # get all children for this node for my $childrenNode ($listNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { my $newobj = $self->fromWSXMLNode($childrenNode); push @obj_list, $newobj; } } return @obj_list; } # parse a given xml node, construct one Project object # param: xml node # returns: one Project object sub fromWSXMLNode { my $ProjectNode = $_[1]; ## begin ELEMENT_NODE children ## my $description; my $id; my $longName; my $shortName; my $version; ## end ELEMENT_NODE children ## # get all children for this node for my $childrenNode ($ProjectNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { if( ! defined($childrenNode->getFirstChild) ){ next; }; my $textNode = $childrenNode->getFirstChild; ## begin iterate ELEMENT_NODE ## if (0) { # do nothing, just a place holder for "if" component } elsif ($childrenNode->getNodeName eq "description") { $description=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "id") { $id=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "longName") { $longName=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "shortName") { $shortName=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "version") { $version=$textNode->getNodeValue; } ## end iterate ELEMENT_NODE ## } } my $newobj = new CaCORE::CaDSR::UMLProject::Project; ## begin set attr ## $newobj->setDescription($description); $newobj->setId($id); $newobj->setLongName($longName); $newobj->setShortName($shortName); $newobj->setVersion($version); ## end set attr ## return $newobj; } ## begin getters and setters ## sub getDescription { my $self = shift; return $self->{description}; } sub setDescription { my $self = shift; $self->{description} = shift; } sub getId { my $self = shift; return $self->{id}; } sub setId { my $self = shift; $self->{id} = shift; } sub getLongName { my $self = shift; return $self->{longName}; } sub setLongName { my $self = shift; $self->{longName} = shift; } sub getShortName { my $self = shift; return $self->{shortName}; } sub setShortName { my $self = shift; $self->{shortName} = shift; } sub getVersion { my $self = shift; return $self->{version}; } sub setVersion { my $self = shift; $self->{version} = shift; } ## end getters and setters ## ## begin bean association methods ## sub getUMLAssociationMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLAssociationMetadata", $self); return @results; } sub getUMLAttributeMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLAttributeMetadata", $self); return @results; } sub getUMLClassMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLClassMetadata", $self); return @results; } sub getUMLPackageMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLPackageMetadata", $self); return @results; } sub getClassificationScheme { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::ClassificationScheme", $self); return $results[0]; } sub getSubProjectCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::SubProject", $self); return @results; } ## end bean association methods ## 1; #end # ------------------------------------------------------------------------------------------ package CaCORE::CaDSR::UMLProject::SubProject; use 5.005; #use strict; use warnings; require Exporter; use XML::DOM; ## begin import objects ## use CaCORE::ApplicationService; ## end import objects ## @ISA = qw(CaCORE::DomainObjectI); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # create an instance of the SubProject object # returns: a SubProject object sub new { my $class = shift; my $self = {}; bless($self, $class); #print "new SubProject\n"; return $self; } # Construct the specific section of the WSDL request corresponding # to this SubProject intance # returns: XML in string format sub toWebserviceXML { my $self = shift; my $result = shift; my $assigned_id = shift; my $current_id = shift; my $l = shift; my %worklist = %$l; # prefix portion of the xml $result .= ""; my $tmpstr = ""; $current_id ++; ## begin attribute to XML ## # description; if( defined( $self->getDescription ) ) { $tmpstr = "" . $self->getDescription . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # id; if( defined( $self->getId ) ) { $tmpstr = "" . $self->getId . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # name; if( defined( $self->getName ) ) { $tmpstr = "" . $self->getName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; ## end attribute to XML ## ## begin association to XML ## ## end association to XML ## # add trailing close tags $result .= ""; return ($result, $current_id, %worklist); } # parse a given webservice response xml, construct a list of SubProject objects # param: xml doc # returns: list of SubProject objects sub fromWebserviceXML { my $self = shift; my $parser = new XML::DOM::Parser; my $docnode = $parser->parse(shift); my $root = $docnode->getFirstChild->getFirstChild->getFirstChild->getFirstChild; return $self->fromWSXMLListNode($root); } # parse a given xml node, construct a list of SubProject objects # param: xml node # returns: a list of SubProject objects sub fromWSXMLListNode { my $self = shift; my $listNode = shift; my @obj_list = (); # get all children for this node for my $childrenNode ($listNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { my $newobj = $self->fromWSXMLNode($childrenNode); push @obj_list, $newobj; } } return @obj_list; } # parse a given xml node, construct one SubProject object # param: xml node # returns: one SubProject object sub fromWSXMLNode { my $SubProjectNode = $_[1]; ## begin ELEMENT_NODE children ## my $description; my $id; my $name; ## end ELEMENT_NODE children ## # get all children for this node for my $childrenNode ($SubProjectNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { if( ! defined($childrenNode->getFirstChild) ){ next; }; my $textNode = $childrenNode->getFirstChild; ## begin iterate ELEMENT_NODE ## if (0) { # do nothing, just a place holder for "if" component } elsif ($childrenNode->getNodeName eq "description") { $description=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "id") { $id=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "name") { $name=$textNode->getNodeValue; } ## end iterate ELEMENT_NODE ## } } my $newobj = new CaCORE::CaDSR::UMLProject::SubProject; ## begin set attr ## $newobj->setDescription($description); $newobj->setId($id); $newobj->setName($name); ## end set attr ## return $newobj; } ## begin getters and setters ## sub getDescription { my $self = shift; return $self->{description}; } sub setDescription { my $self = shift; $self->{description} = shift; } sub getId { my $self = shift; return $self->{id}; } sub setId { my $self = shift; $self->{id} = shift; } sub getName { my $self = shift; return $self->{name}; } sub setName { my $self = shift; $self->{name} = shift; } ## end getters and setters ## ## begin bean association methods ## sub getUMLPackageMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLPackageMetadata", $self); return @results; } sub getClassSchemeClassSchemeItem { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::ClassSchemeClassSchemeItem", $self); return $results[0]; } sub getProject { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::Project", $self); return $results[0]; } ## end bean association methods ## 1; #end # ------------------------------------------------------------------------------------------ package CaCORE::CaDSR::UMLProject::UMLPackageMetadata; use 5.005; #use strict; use warnings; require Exporter; use XML::DOM; ## begin import objects ## use CaCORE::ApplicationService; ## end import objects ## @ISA = qw(CaCORE::DomainObjectI); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # create an instance of the UMLPackageMetadata object # returns: a UMLPackageMetadata object sub new { my $class = shift; my $self = {}; bless($self, $class); #print "new UMLPackageMetadata\n"; return $self; } # Construct the specific section of the WSDL request corresponding # to this UMLPackageMetadata intance # returns: XML in string format sub toWebserviceXML { my $self = shift; my $result = shift; my $assigned_id = shift; my $current_id = shift; my $l = shift; my %worklist = %$l; # prefix portion of the xml $result .= ""; my $tmpstr = ""; $current_id ++; ## begin attribute to XML ## # description; if( defined( $self->getDescription ) ) { $tmpstr = "" . $self->getDescription . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # id; if( defined( $self->getId ) ) { $tmpstr = "" . $self->getId . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # name; if( defined( $self->getName ) ) { $tmpstr = "" . $self->getName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; ## end attribute to XML ## ## begin association to XML ## ## end association to XML ## # add trailing close tags $result .= ""; return ($result, $current_id, %worklist); } # parse a given webservice response xml, construct a list of UMLPackageMetadata objects # param: xml doc # returns: list of UMLPackageMetadata objects sub fromWebserviceXML { my $self = shift; my $parser = new XML::DOM::Parser; my $docnode = $parser->parse(shift); my $root = $docnode->getFirstChild->getFirstChild->getFirstChild->getFirstChild; return $self->fromWSXMLListNode($root); } # parse a given xml node, construct a list of UMLPackageMetadata objects # param: xml node # returns: a list of UMLPackageMetadata objects sub fromWSXMLListNode { my $self = shift; my $listNode = shift; my @obj_list = (); # get all children for this node for my $childrenNode ($listNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { my $newobj = $self->fromWSXMLNode($childrenNode); push @obj_list, $newobj; } } return @obj_list; } # parse a given xml node, construct one UMLPackageMetadata object # param: xml node # returns: one UMLPackageMetadata object sub fromWSXMLNode { my $UMLPackageMetadataNode = $_[1]; ## begin ELEMENT_NODE children ## my $description; my $id; my $name; ## end ELEMENT_NODE children ## # get all children for this node for my $childrenNode ($UMLPackageMetadataNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { if( ! defined($childrenNode->getFirstChild) ){ next; }; my $textNode = $childrenNode->getFirstChild; ## begin iterate ELEMENT_NODE ## if (0) { # do nothing, just a place holder for "if" component } elsif ($childrenNode->getNodeName eq "description") { $description=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "id") { $id=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "name") { $name=$textNode->getNodeValue; } ## end iterate ELEMENT_NODE ## } } my $newobj = new CaCORE::CaDSR::UMLProject::UMLPackageMetadata; ## begin set attr ## $newobj->setDescription($description); $newobj->setId($id); $newobj->setName($name); ## end set attr ## return $newobj; } ## begin getters and setters ## sub getDescription { my $self = shift; return $self->{description}; } sub setDescription { my $self = shift; $self->{description} = shift; } sub getId { my $self = shift; return $self->{id}; } sub setId { my $self = shift; $self->{id} = shift; } sub getName { my $self = shift; return $self->{name}; } sub setName { my $self = shift; $self->{name} = shift; } ## end getters and setters ## ## begin bean association methods ## sub getUMLClassMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLClassMetadata", $self); return @results; } sub getClassSchemeClassSchemeItem { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::ClassSchemeClassSchemeItem", $self); return $results[0]; } sub getProject { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::Project", $self); return $results[0]; } sub getSubProject { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::SubProject", $self); return $results[0]; } ## end bean association methods ## 1; #end # ------------------------------------------------------------------------------------------ package CaCORE::CaDSR::UMLProject::UMLClassMetadata; use 5.005; #use strict; use warnings; require Exporter; use XML::DOM; ## begin import objects ## use CaCORE::ApplicationService; ## end import objects ## @ISA = qw(CaCORE::DomainObjectI); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # create an instance of the UMLClassMetadata object # returns: a UMLClassMetadata object sub new { my $class = shift; my $self = {}; bless($self, $class); #print "new UMLClassMetadata\n"; return $self; } # Construct the specific section of the WSDL request corresponding # to this UMLClassMetadata intance # returns: XML in string format sub toWebserviceXML { my $self = shift; my $result = shift; my $assigned_id = shift; my $current_id = shift; my $l = shift; my %worklist = %$l; # prefix portion of the xml $result .= ""; my $tmpstr = ""; $current_id ++; ## begin attribute to XML ## # description; if( defined( $self->getDescription ) ) { $tmpstr = "" . $self->getDescription . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # fullyQualifiedName; if( defined( $self->getFullyQualifiedName ) ) { $tmpstr = "" . $self->getFullyQualifiedName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # id; if( defined( $self->getId ) ) { $tmpstr = "" . $self->getId . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # name; if( defined( $self->getName ) ) { $tmpstr = "" . $self->getName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; ## end attribute to XML ## ## begin association to XML ## ## end association to XML ## # add trailing close tags $result .= ""; return ($result, $current_id, %worklist); } # parse a given webservice response xml, construct a list of UMLClassMetadata objects # param: xml doc # returns: list of UMLClassMetadata objects sub fromWebserviceXML { my $self = shift; my $parser = new XML::DOM::Parser; my $docnode = $parser->parse(shift); my $root = $docnode->getFirstChild->getFirstChild->getFirstChild->getFirstChild; return $self->fromWSXMLListNode($root); } # parse a given xml node, construct a list of UMLClassMetadata objects # param: xml node # returns: a list of UMLClassMetadata objects sub fromWSXMLListNode { my $self = shift; my $listNode = shift; my @obj_list = (); # get all children for this node for my $childrenNode ($listNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { my $newobj = $self->fromWSXMLNode($childrenNode); push @obj_list, $newobj; } } return @obj_list; } # parse a given xml node, construct one UMLClassMetadata object # param: xml node # returns: one UMLClassMetadata object sub fromWSXMLNode { my $UMLClassMetadataNode = $_[1]; ## begin ELEMENT_NODE children ## my $description; my $fullyQualifiedName; my $id; my $name; ## end ELEMENT_NODE children ## # get all children for this node for my $childrenNode ($UMLClassMetadataNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { if( ! defined($childrenNode->getFirstChild) ){ next; }; my $textNode = $childrenNode->getFirstChild; ## begin iterate ELEMENT_NODE ## if (0) { # do nothing, just a place holder for "if" component } elsif ($childrenNode->getNodeName eq "description") { $description=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "fullyQualifiedName") { $fullyQualifiedName=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "id") { $id=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "name") { $name=$textNode->getNodeValue; } ## end iterate ELEMENT_NODE ## } } my $newobj = new CaCORE::CaDSR::UMLProject::UMLClassMetadata; ## begin set attr ## $newobj->setDescription($description); $newobj->setFullyQualifiedName($fullyQualifiedName); $newobj->setId($id); $newobj->setName($name); ## end set attr ## return $newobj; } ## begin getters and setters ## sub getDescription { my $self = shift; return $self->{description}; } sub setDescription { my $self = shift; $self->{description} = shift; } sub getFullyQualifiedName { my $self = shift; return $self->{fullyQualifiedName}; } sub setFullyQualifiedName { my $self = shift; $self->{fullyQualifiedName} = shift; } sub getId { my $self = shift; return $self->{id}; } sub setId { my $self = shift; $self->{id} = shift; } sub getName { my $self = shift; return $self->{name}; } sub setName { my $self = shift; $self->{name} = shift; } ## end getters and setters ## ## begin bean association methods ## sub getUMLAssociationMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLAssociationMetadata", $self); return @results; } sub getUMLAttributeMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLAttributeMetadata", $self); return @results; } sub getUMLGeneralizationMetadata { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLGeneralizationMetadata", $self); return $results[0]; } sub getUMLPackageMetadata { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLPackageMetadata", $self); return $results[0]; } sub getObjectClass { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::ObjectClass", $self); return $results[0]; } sub getProject { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::Project", $self); return $results[0]; } sub getSemanticMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::SemanticMetadata", $self); return @results; } ## end bean association methods ## 1; #end # ------------------------------------------------------------------------------------------ package CaCORE::CaDSR::UMLProject::AttributeTypeMetadata; use 5.005; #use strict; use warnings; require Exporter; use XML::DOM; ## begin import objects ## use CaCORE::ApplicationService; ## end import objects ## @ISA = qw(CaCORE::DomainObjectI); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # create an instance of the AttributeTypeMetadata object # returns: a AttributeTypeMetadata object sub new { my $class = shift; my $self = {}; bless($self, $class); #print "new AttributeTypeMetadata\n"; return $self; } # Construct the specific section of the WSDL request corresponding # to this AttributeTypeMetadata intance # returns: XML in string format sub toWebserviceXML { my $self = shift; my $result = shift; my $assigned_id = shift; my $current_id = shift; my $l = shift; my %worklist = %$l; # prefix portion of the xml $result .= ""; my $tmpstr = ""; $current_id ++; ## begin attribute to XML ## # id; if( defined( $self->getId ) ) { $tmpstr = "" . $self->getId . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # valueDomainDataType; if( defined( $self->getValueDomainDataType ) ) { $tmpstr = "" . $self->getValueDomainDataType . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # valueDomainLongName; if( defined( $self->getValueDomainLongName ) ) { $tmpstr = "" . $self->getValueDomainLongName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; ## end attribute to XML ## ## begin association to XML ## ## end association to XML ## # add trailing close tags $result .= ""; return ($result, $current_id, %worklist); } # parse a given webservice response xml, construct a list of AttributeTypeMetadata objects # param: xml doc # returns: list of AttributeTypeMetadata objects sub fromWebserviceXML { my $self = shift; my $parser = new XML::DOM::Parser; my $docnode = $parser->parse(shift); my $root = $docnode->getFirstChild->getFirstChild->getFirstChild->getFirstChild; return $self->fromWSXMLListNode($root); } # parse a given xml node, construct a list of AttributeTypeMetadata objects # param: xml node # returns: a list of AttributeTypeMetadata objects sub fromWSXMLListNode { my $self = shift; my $listNode = shift; my @obj_list = (); # get all children for this node for my $childrenNode ($listNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { my $newobj = $self->fromWSXMLNode($childrenNode); push @obj_list, $newobj; } } return @obj_list; } # parse a given xml node, construct one AttributeTypeMetadata object # param: xml node # returns: one AttributeTypeMetadata object sub fromWSXMLNode { my $AttributeTypeMetadataNode = $_[1]; ## begin ELEMENT_NODE children ## my $id; my $valueDomainDataType; my $valueDomainLongName; ## end ELEMENT_NODE children ## # get all children for this node for my $childrenNode ($AttributeTypeMetadataNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { if( ! defined($childrenNode->getFirstChild) ){ next; }; my $textNode = $childrenNode->getFirstChild; ## begin iterate ELEMENT_NODE ## if (0) { # do nothing, just a place holder for "if" component } elsif ($childrenNode->getNodeName eq "id") { $id=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "valueDomainDataType") { $valueDomainDataType=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "valueDomainLongName") { $valueDomainLongName=$textNode->getNodeValue; } ## end iterate ELEMENT_NODE ## } } my $newobj = new CaCORE::CaDSR::UMLProject::AttributeTypeMetadata; ## begin set attr ## $newobj->setId($id); $newobj->setValueDomainDataType($valueDomainDataType); $newobj->setValueDomainLongName($valueDomainLongName); ## end set attr ## return $newobj; } ## begin getters and setters ## sub getId { my $self = shift; return $self->{id}; } sub setId { my $self = shift; $self->{id} = shift; } sub getValueDomainDataType { my $self = shift; return $self->{valueDomainDataType}; } sub setValueDomainDataType { my $self = shift; $self->{valueDomainDataType} = shift; } sub getValueDomainLongName { my $self = shift; return $self->{valueDomainLongName}; } sub setValueDomainLongName { my $self = shift; $self->{valueDomainLongName} = shift; } ## end getters and setters ## ## begin bean association methods ## sub getSemanticMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::SemanticMetadata", $self); return @results; } sub getTypeEnumerationCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::TypeEnumerationMetadata", $self); return @results; } sub getValueDomain { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::ValueDomain", $self); return $results[0]; } ## end bean association methods ## 1; #end # ------------------------------------------------------------------------------------------ package CaCORE::CaDSR::UMLProject::UMLAttributeMetadata; use 5.005; #use strict; use warnings; require Exporter; use XML::DOM; ## begin import objects ## use CaCORE::ApplicationService; ## end import objects ## @ISA = qw(CaCORE::DomainObjectI); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # create an instance of the UMLAttributeMetadata object # returns: a UMLAttributeMetadata object sub new { my $class = shift; my $self = {}; bless($self, $class); #print "new UMLAttributeMetadata\n"; return $self; } # Construct the specific section of the WSDL request corresponding # to this UMLAttributeMetadata intance # returns: XML in string format sub toWebserviceXML { my $self = shift; my $result = shift; my $assigned_id = shift; my $current_id = shift; my $l = shift; my %worklist = %$l; # prefix portion of the xml $result .= ""; my $tmpstr = ""; $current_id ++; ## begin attribute to XML ## # description; if( defined( $self->getDescription ) ) { $tmpstr = "" . $self->getDescription . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # fullyQualifiedName; if( defined( $self->getFullyQualifiedName ) ) { $tmpstr = "" . $self->getFullyQualifiedName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # id; if( defined( $self->getId ) ) { $tmpstr = "" . $self->getId . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # name; if( defined( $self->getName ) ) { $tmpstr = "" . $self->getName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; ## end attribute to XML ## ## begin association to XML ## ## end association to XML ## # add trailing close tags $result .= ""; return ($result, $current_id, %worklist); } # parse a given webservice response xml, construct a list of UMLAttributeMetadata objects # param: xml doc # returns: list of UMLAttributeMetadata objects sub fromWebserviceXML { my $self = shift; my $parser = new XML::DOM::Parser; my $docnode = $parser->parse(shift); my $root = $docnode->getFirstChild->getFirstChild->getFirstChild->getFirstChild; return $self->fromWSXMLListNode($root); } # parse a given xml node, construct a list of UMLAttributeMetadata objects # param: xml node # returns: a list of UMLAttributeMetadata objects sub fromWSXMLListNode { my $self = shift; my $listNode = shift; my @obj_list = (); # get all children for this node for my $childrenNode ($listNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { my $newobj = $self->fromWSXMLNode($childrenNode); push @obj_list, $newobj; } } return @obj_list; } # parse a given xml node, construct one UMLAttributeMetadata object # param: xml node # returns: one UMLAttributeMetadata object sub fromWSXMLNode { my $UMLAttributeMetadataNode = $_[1]; ## begin ELEMENT_NODE children ## my $description; my $fullyQualifiedName; my $id; my $name; ## end ELEMENT_NODE children ## # get all children for this node for my $childrenNode ($UMLAttributeMetadataNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { if( ! defined($childrenNode->getFirstChild) ){ next; }; my $textNode = $childrenNode->getFirstChild; ## begin iterate ELEMENT_NODE ## if (0) { # do nothing, just a place holder for "if" component } elsif ($childrenNode->getNodeName eq "description") { $description=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "fullyQualifiedName") { $fullyQualifiedName=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "id") { $id=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "name") { $name=$textNode->getNodeValue; } ## end iterate ELEMENT_NODE ## } } my $newobj = new CaCORE::CaDSR::UMLProject::UMLAttributeMetadata; ## begin set attr ## $newobj->setDescription($description); $newobj->setFullyQualifiedName($fullyQualifiedName); $newobj->setId($id); $newobj->setName($name); ## end set attr ## return $newobj; } ## begin getters and setters ## sub getDescription { my $self = shift; return $self->{description}; } sub setDescription { my $self = shift; $self->{description} = shift; } sub getFullyQualifiedName { my $self = shift; return $self->{fullyQualifiedName}; } sub setFullyQualifiedName { my $self = shift; $self->{fullyQualifiedName} = shift; } sub getId { my $self = shift; return $self->{id}; } sub setId { my $self = shift; $self->{id} = shift; } sub getName { my $self = shift; return $self->{name}; } sub setName { my $self = shift; $self->{name} = shift; } ## end getters and setters ## ## begin bean association methods ## sub getUMLClassMetadata { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLClassMetadata", $self); return $results[0]; } sub getAttributeTypeMetadata { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::AttributeTypeMetadata", $self); return $results[0]; } sub getDataElement { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::DataElement", $self); return $results[0]; } sub getProject { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::Project", $self); return $results[0]; } sub getSemanticMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::SemanticMetadata", $self); return @results; } ## end bean association methods ## 1; #end # ------------------------------------------------------------------------------------------ package CaCORE::CaDSR::UMLProject::UMLAssociationMetadata; use 5.005; #use strict; use warnings; require Exporter; use XML::DOM; ## begin import objects ## use CaCORE::ApplicationService; ## end import objects ## @ISA = qw(CaCORE::DomainObjectI); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # create an instance of the UMLAssociationMetadata object # returns: a UMLAssociationMetadata object sub new { my $class = shift; my $self = {}; bless($self, $class); #print "new UMLAssociationMetadata\n"; return $self; } # Construct the specific section of the WSDL request corresponding # to this UMLAssociationMetadata intance # returns: XML in string format sub toWebserviceXML { my $self = shift; my $result = shift; my $assigned_id = shift; my $current_id = shift; my $l = shift; my %worklist = %$l; # prefix portion of the xml $result .= ""; my $tmpstr = ""; $current_id ++; ## begin attribute to XML ## # id; if( defined( $self->getId ) ) { $tmpstr = "" . $self->getId . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # isBidirectional; if( defined( $self->getIsBidirectional ) ) { $tmpstr = "" . $self->getIsBidirectional . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # sourceHighCardinality; if( defined( $self->getSourceHighCardinality ) ) { $tmpstr = "" . $self->getSourceHighCardinality . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # sourceLowCardinality; if( defined( $self->getSourceLowCardinality ) ) { $tmpstr = "" . $self->getSourceLowCardinality . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # sourceRoleName; if( defined( $self->getSourceRoleName ) ) { $tmpstr = "" . $self->getSourceRoleName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # targetHighCardinality; if( defined( $self->getTargetHighCardinality ) ) { $tmpstr = "" . $self->getTargetHighCardinality . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # targetLowCardinality; if( defined( $self->getTargetLowCardinality ) ) { $tmpstr = "" . $self->getTargetLowCardinality . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # targetRoleName; if( defined( $self->getTargetRoleName ) ) { $tmpstr = "" . $self->getTargetRoleName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; ## end attribute to XML ## ## begin association to XML ## ## end association to XML ## # add trailing close tags $result .= ""; return ($result, $current_id, %worklist); } # parse a given webservice response xml, construct a list of UMLAssociationMetadata objects # param: xml doc # returns: list of UMLAssociationMetadata objects sub fromWebserviceXML { my $self = shift; my $parser = new XML::DOM::Parser; my $docnode = $parser->parse(shift); my $root = $docnode->getFirstChild->getFirstChild->getFirstChild->getFirstChild; return $self->fromWSXMLListNode($root); } # parse a given xml node, construct a list of UMLAssociationMetadata objects # param: xml node # returns: a list of UMLAssociationMetadata objects sub fromWSXMLListNode { my $self = shift; my $listNode = shift; my @obj_list = (); # get all children for this node for my $childrenNode ($listNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { my $newobj = $self->fromWSXMLNode($childrenNode); push @obj_list, $newobj; } } return @obj_list; } # parse a given xml node, construct one UMLAssociationMetadata object # param: xml node # returns: one UMLAssociationMetadata object sub fromWSXMLNode { my $UMLAssociationMetadataNode = $_[1]; ## begin ELEMENT_NODE children ## my $id; my $isBidirectional; my $sourceHighCardinality; my $sourceLowCardinality; my $sourceRoleName; my $targetHighCardinality; my $targetLowCardinality; my $targetRoleName; ## end ELEMENT_NODE children ## # get all children for this node for my $childrenNode ($UMLAssociationMetadataNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { if( ! defined($childrenNode->getFirstChild) ){ next; }; my $textNode = $childrenNode->getFirstChild; ## begin iterate ELEMENT_NODE ## if (0) { # do nothing, just a place holder for "if" component } elsif ($childrenNode->getNodeName eq "id") { $id=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "isBidirectional") { $isBidirectional=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "sourceHighCardinality") { $sourceHighCardinality=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "sourceLowCardinality") { $sourceLowCardinality=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "sourceRoleName") { $sourceRoleName=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "targetHighCardinality") { $targetHighCardinality=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "targetLowCardinality") { $targetLowCardinality=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "targetRoleName") { $targetRoleName=$textNode->getNodeValue; } ## end iterate ELEMENT_NODE ## } } my $newobj = new CaCORE::CaDSR::UMLProject::UMLAssociationMetadata; ## begin set attr ## $newobj->setId($id); $newobj->setIsBidirectional($isBidirectional); $newobj->setSourceHighCardinality($sourceHighCardinality); $newobj->setSourceLowCardinality($sourceLowCardinality); $newobj->setSourceRoleName($sourceRoleName); $newobj->setTargetHighCardinality($targetHighCardinality); $newobj->setTargetLowCardinality($targetLowCardinality); $newobj->setTargetRoleName($targetRoleName); ## end set attr ## return $newobj; } ## begin getters and setters ## sub getId { my $self = shift; return $self->{id}; } sub setId { my $self = shift; $self->{id} = shift; } sub getIsBidirectional { my $self = shift; return $self->{isBidirectional}; } sub setIsBidirectional { my $self = shift; $self->{isBidirectional} = shift; } sub getSourceHighCardinality { my $self = shift; return $self->{sourceHighCardinality}; } sub setSourceHighCardinality { my $self = shift; $self->{sourceHighCardinality} = shift; } sub getSourceLowCardinality { my $self = shift; return $self->{sourceLowCardinality}; } sub setSourceLowCardinality { my $self = shift; $self->{sourceLowCardinality} = shift; } sub getSourceRoleName { my $self = shift; return $self->{sourceRoleName}; } sub setSourceRoleName { my $self = shift; $self->{sourceRoleName} = shift; } sub getTargetHighCardinality { my $self = shift; return $self->{targetHighCardinality}; } sub setTargetHighCardinality { my $self = shift; $self->{targetHighCardinality} = shift; } sub getTargetLowCardinality { my $self = shift; return $self->{targetLowCardinality}; } sub setTargetLowCardinality { my $self = shift; $self->{targetLowCardinality} = shift; } sub getTargetRoleName { my $self = shift; return $self->{targetRoleName}; } sub setTargetRoleName { my $self = shift; $self->{targetRoleName} = shift; } ## end getters and setters ## ## begin bean association methods ## sub getObjectClassRelationship { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::ObjectClassRelationship", $self); return $results[0]; } sub getProject { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::Project", $self); return $results[0]; } sub getSemanticMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::SemanticMetadata", $self); return @results; } sub getSourceUMLClassMetadata { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLClassMetadata", $self); return $results[0]; } sub getTargetUMLClassMetadata { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::UMLClassMetadata", $self); return $results[0]; } ## end bean association methods ## 1; #end # ------------------------------------------------------------------------------------------ package CaCORE::CaDSR::UMLProject::SemanticMetadata; use 5.005; #use strict; use warnings; require Exporter; use XML::DOM; ## begin import objects ## use CaCORE::ApplicationService; ## end import objects ## @ISA = qw(CaCORE::DomainObjectI); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # create an instance of the SemanticMetadata object # returns: a SemanticMetadata object sub new { my $class = shift; my $self = {}; bless($self, $class); #print "new SemanticMetadata\n"; return $self; } # Construct the specific section of the WSDL request corresponding # to this SemanticMetadata intance # returns: XML in string format sub toWebserviceXML { my $self = shift; my $result = shift; my $assigned_id = shift; my $current_id = shift; my $l = shift; my %worklist = %$l; # prefix portion of the xml $result .= ""; my $tmpstr = ""; $current_id ++; ## begin attribute to XML ## # conceptCode; if( defined( $self->getConceptCode ) ) { $tmpstr = "" . $self->getConceptCode . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # conceptDefinition; if( defined( $self->getConceptDefinition ) ) { $tmpstr = "" . $self->getConceptDefinition . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # conceptName; if( defined( $self->getConceptName ) ) { $tmpstr = "" . $self->getConceptName . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # id; if( defined( $self->getId ) ) { $tmpstr = "" . $self->getId . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # isPrimaryConcept; if( defined( $self->getIsPrimaryConcept ) ) { $tmpstr = "" . $self->getIsPrimaryConcept . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # order; if( defined( $self->getOrder ) ) { $tmpstr = "" . $self->getOrder . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # orderLevel; if( defined( $self->getOrderLevel ) ) { $tmpstr = "" . $self->getOrderLevel . ""; } else { $tmpstr = ""; } $result .= $tmpstr; ## end attribute to XML ## ## begin association to XML ## ## end association to XML ## # add trailing close tags $result .= ""; return ($result, $current_id, %worklist); } # parse a given webservice response xml, construct a list of SemanticMetadata objects # param: xml doc # returns: list of SemanticMetadata objects sub fromWebserviceXML { my $self = shift; my $parser = new XML::DOM::Parser; my $docnode = $parser->parse(shift); my $root = $docnode->getFirstChild->getFirstChild->getFirstChild->getFirstChild; return $self->fromWSXMLListNode($root); } # parse a given xml node, construct a list of SemanticMetadata objects # param: xml node # returns: a list of SemanticMetadata objects sub fromWSXMLListNode { my $self = shift; my $listNode = shift; my @obj_list = (); # get all children for this node for my $childrenNode ($listNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { my $newobj = $self->fromWSXMLNode($childrenNode); push @obj_list, $newobj; } } return @obj_list; } # parse a given xml node, construct one SemanticMetadata object # param: xml node # returns: one SemanticMetadata object sub fromWSXMLNode { my $SemanticMetadataNode = $_[1]; ## begin ELEMENT_NODE children ## my $conceptCode; my $conceptDefinition; my $conceptName; my $id; my $isPrimaryConcept; my $order; my $orderLevel; ## end ELEMENT_NODE children ## # get all children for this node for my $childrenNode ($SemanticMetadataNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { if( ! defined($childrenNode->getFirstChild) ){ next; }; my $textNode = $childrenNode->getFirstChild; ## begin iterate ELEMENT_NODE ## if (0) { # do nothing, just a place holder for "if" component } elsif ($childrenNode->getNodeName eq "conceptCode") { $conceptCode=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "conceptDefinition") { $conceptDefinition=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "conceptName") { $conceptName=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "id") { $id=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "isPrimaryConcept") { $isPrimaryConcept=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "order") { $order=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "orderLevel") { $orderLevel=$textNode->getNodeValue; } ## end iterate ELEMENT_NODE ## } } my $newobj = new CaCORE::CaDSR::UMLProject::SemanticMetadata; ## begin set attr ## $newobj->setConceptCode($conceptCode); $newobj->setConceptDefinition($conceptDefinition); $newobj->setConceptName($conceptName); $newobj->setId($id); $newobj->setIsPrimaryConcept($isPrimaryConcept); $newobj->setOrder($order); $newobj->setOrderLevel($orderLevel); ## end set attr ## return $newobj; } ## begin getters and setters ## sub getConceptCode { my $self = shift; return $self->{conceptCode}; } sub setConceptCode { my $self = shift; $self->{conceptCode} = shift; } sub getConceptDefinition { my $self = shift; return $self->{conceptDefinition}; } sub setConceptDefinition { my $self = shift; $self->{conceptDefinition} = shift; } sub getConceptName { my $self = shift; return $self->{conceptName}; } sub setConceptName { my $self = shift; $self->{conceptName} = shift; } sub getId { my $self = shift; return $self->{id}; } sub setId { my $self = shift; $self->{id} = shift; } sub getIsPrimaryConcept { my $self = shift; return $self->{isPrimaryConcept}; } sub setIsPrimaryConcept { my $self = shift; $self->{isPrimaryConcept} = shift; } sub getOrder { my $self = shift; return $self->{order}; } sub setOrder { my $self = shift; $self->{order} = shift; } sub getOrderLevel { my $self = shift; return $self->{orderLevel}; } sub setOrderLevel { my $self = shift; $self->{orderLevel} = shift; } ## end getters and setters ## ## begin bean association methods ## sub getConcept { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::Concept", $self); return $results[0]; } ## end bean association methods ## 1; #end # ------------------------------------------------------------------------------------------ package CaCORE::CaDSR::UMLProject::TypeEnumerationMetadata; use 5.005; #use strict; use warnings; require Exporter; use XML::DOM; ## begin import objects ## use CaCORE::ApplicationService; ## end import objects ## @ISA = qw(CaCORE::DomainObjectI); our %EXPORT_TAGS = ( 'all' => [ qw( ) ] ); our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } ); our @EXPORT = qw( ); # create an instance of the TypeEnumerationMetadata object # returns: a TypeEnumerationMetadata object sub new { my $class = shift; my $self = {}; bless($self, $class); #print "new TypeEnumerationMetadata\n"; return $self; } # Construct the specific section of the WSDL request corresponding # to this TypeEnumerationMetadata intance # returns: XML in string format sub toWebserviceXML { my $self = shift; my $result = shift; my $assigned_id = shift; my $current_id = shift; my $l = shift; my %worklist = %$l; # prefix portion of the xml $result .= ""; my $tmpstr = ""; $current_id ++; ## begin attribute to XML ## # id; if( defined( $self->getId ) ) { $tmpstr = "" . $self->getId . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # permissibleValue; if( defined( $self->getPermissibleValue ) ) { $tmpstr = "" . $self->getPermissibleValue . ""; } else { $tmpstr = ""; } $result .= $tmpstr; # valueMeaning; if( defined( $self->getValueMeaning ) ) { $tmpstr = "" . $self->getValueMeaning . ""; } else { $tmpstr = ""; } $result .= $tmpstr; ## end attribute to XML ## ## begin association to XML ## ## end association to XML ## # add trailing close tags $result .= ""; return ($result, $current_id, %worklist); } # parse a given webservice response xml, construct a list of TypeEnumerationMetadata objects # param: xml doc # returns: list of TypeEnumerationMetadata objects sub fromWebserviceXML { my $self = shift; my $parser = new XML::DOM::Parser; my $docnode = $parser->parse(shift); my $root = $docnode->getFirstChild->getFirstChild->getFirstChild->getFirstChild; return $self->fromWSXMLListNode($root); } # parse a given xml node, construct a list of TypeEnumerationMetadata objects # param: xml node # returns: a list of TypeEnumerationMetadata objects sub fromWSXMLListNode { my $self = shift; my $listNode = shift; my @obj_list = (); # get all children for this node for my $childrenNode ($listNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { my $newobj = $self->fromWSXMLNode($childrenNode); push @obj_list, $newobj; } } return @obj_list; } # parse a given xml node, construct one TypeEnumerationMetadata object # param: xml node # returns: one TypeEnumerationMetadata object sub fromWSXMLNode { my $TypeEnumerationMetadataNode = $_[1]; ## begin ELEMENT_NODE children ## my $id; my $permissibleValue; my $valueMeaning; ## end ELEMENT_NODE children ## # get all children for this node for my $childrenNode ($TypeEnumerationMetadataNode->getChildNodes) { if ($childrenNode->getNodeType == XML::DOM::ELEMENT_NODE()) { if( ! defined($childrenNode->getFirstChild) ){ next; }; my $textNode = $childrenNode->getFirstChild; ## begin iterate ELEMENT_NODE ## if (0) { # do nothing, just a place holder for "if" component } elsif ($childrenNode->getNodeName eq "id") { $id=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "permissibleValue") { $permissibleValue=$textNode->getNodeValue; } elsif ($childrenNode->getNodeName eq "valueMeaning") { $valueMeaning=$textNode->getNodeValue; } ## end iterate ELEMENT_NODE ## } } my $newobj = new CaCORE::CaDSR::UMLProject::TypeEnumerationMetadata; ## begin set attr ## $newobj->setId($id); $newobj->setPermissibleValue($permissibleValue); $newobj->setValueMeaning($valueMeaning); ## end set attr ## return $newobj; } ## begin getters and setters ## sub getId { my $self = shift; return $self->{id}; } sub setId { my $self = shift; $self->{id} = shift; } sub getPermissibleValue { my $self = shift; return $self->{permissibleValue}; } sub setPermissibleValue { my $self = shift; $self->{permissibleValue} = shift; } sub getValueMeaning { my $self = shift; return $self->{valueMeaning}; } sub setValueMeaning { my $self = shift; $self->{valueMeaning} = shift; } ## end getters and setters ## ## begin bean association methods ## sub getSemanticMetadataCollection { my $self = shift; my $appSvc = CaCORE::ApplicationService->instance(); my @results = $appSvc->queryObject("CaCORE::CaDSR::UMLProject::SemanticMetadata", $self); return @results; } ## end bean association methods ## 1; #end # Below is module documentation for AttributeTypeMetadata =pod =head1 AttributeTypeMetadata CaCORE::CaDSR::UMLProject::AttributeTypeMetadata - Perl extension for AttributeTypeMetadata. =head2 ABSTRACT The CaCORE::CaDSR::UMLProject::AttributeTypeMetadata is a Perl object representation of the CaCORE AttributeTypeMetadata object. =head2 SYNOPSIS See L. =head2 DESCRIPTION =head2 ATTRIBUTES of AttributeTypeMetadata The following are all the attributes of the AttributeTypeMetadata object and their data types: =over 4 =item id data type: C =item valueDomainDataType data type: C =item valueDomainLongName data type: C =back Note: Although you can also use the corresponding setter methods to set the attribute values, it is not recommended to do so unless you absolutely have to change the object's attributes. =head2 ASSOCIATIONS of AttributeTypeMetadata The following are all the objects that are associated with the AttributeTypeMetadata: =over 4 =item Instance of L: One to many assoication, use C to get a collection of associated SemanticMetadata. =item Instance of L: One to many assoication, use C to get a collection of associated TypeEnumeration. =item Collection of L: Many to one assoication, use C to get the associated ValueDomain. =back =cut # Below is module documentation for Project =pod =head1 Project CaCORE::CaDSR::UMLProject::Project - Perl extension for Project. =head2 ABSTRACT The CaCORE::CaDSR::UMLProject::Project is a Perl object representation of the CaCORE Project object. =head2 SYNOPSIS See L. =head2 DESCRIPTION =head2 ATTRIBUTES of Project The following are all the attributes of the Project object and their data types: =over 4 =item description data type: C =item id data type: C =item longName data type: C =item shortName data type: C =item version data type: C =back Note: Although you can also use the corresponding setter methods to set the attribute values, it is not recommended to do so unless you absolutely have to change the object's attributes. =head2 ASSOCIATIONS of Project The following are all the objects that are associated with the Project: =over 4 =item Instance of L: One to many assoication, use C to get a collection of associated UMLAssociationMetadata. =item Instance of L: One to many assoication, use C to get a collection of associated UMLAttributeMetadata. =item Instance of L: One to many assoication, use C to get a collection of associated UMLClassMetadata. =item Instance of L: One to many assoication, use C to get a collection of associated UMLPackageMetadata. =item Collection of L: Many to one assoication, use C to get the associated ClassificationScheme. =item Instance of L: One to many assoication, use C to get a collection of associated SubProject. =back =cut # Below is module documentation for SemanticMetadata =pod =head1 SemanticMetadata CaCORE::CaDSR::UMLProject::SemanticMetadata - Perl extension for SemanticMetadata. =head2 ABSTRACT The CaCORE::CaDSR::UMLProject::SemanticMetadata is a Perl object representation of the CaCORE SemanticMetadata object. =head2 SYNOPSIS See L. =head2 DESCRIPTION =head2 ATTRIBUTES of SemanticMetadata The following are all the attributes of the SemanticMetadata object and their data types: =over 4 =item conceptCode data type: C =item conceptDefinition data type: C =item conceptName data type: C =item id data type: C =item isPrimaryConcept data type: C =item order data type: C =item orderLevel data type: C =back Note: Although you can also use the corresponding setter methods to set the attribute values, it is not recommended to do so unless you absolutely have to change the object's attributes. =head2 ASSOCIATIONS of SemanticMetadata The following are all the objects that are associated with the SemanticMetadata: =over 4 =item Collection of L: Many to one assoication, use C to get the associated Concept. =back =cut # Below is module documentation for SubProject =pod =head1 SubProject CaCORE::CaDSR::UMLProject::SubProject - Perl extension for SubProject. =head2 ABSTRACT The CaCORE::CaDSR::UMLProject::SubProject is a Perl object representation of the CaCORE SubProject object. =head2 SYNOPSIS See L. =head2 DESCRIPTION =head2 ATTRIBUTES of SubProject The following are all the attributes of the SubProject object and their data types: =over 4 =item description data type: C =item id data type: C =item name data type: C =back Note: Although you can also use the corresponding setter methods to set the attribute values, it is not recommended to do so unless you absolutely have to change the object's attributes. =head2 ASSOCIATIONS of SubProject The following are all the objects that are associated with the SubProject: =over 4 =item Instance of L: One to many assoication, use C to get a collection of associated UMLPackageMetadata. =item Collection of L: Many to one assoication, use C to get the associated ClassSchemeClassSchemeItem. =item Collection of L: Many to one assoication, use C to get the associated Project. =back =cut # Below is module documentation for TypeEnumerationMetadata =pod =head1 TypeEnumerationMetadata CaCORE::CaDSR::UMLProject::TypeEnumerationMetadata - Perl extension for TypeEnumerationMetadata. =head2 ABSTRACT The CaCORE::CaDSR::UMLProject::TypeEnumerationMetadata is a Perl object representation of the CaCORE TypeEnumerationMetadata object. =head2 SYNOPSIS See L. =head2 DESCRIPTION =head2 ATTRIBUTES of TypeEnumerationMetadata The following are all the attributes of the TypeEnumerationMetadata object and their data types: =over 4 =item id data type: C =item permissibleValue data type: C =item valueMeaning data type: C =back Note: Although you can also use the corresponding setter methods to set the attribute values, it is not recommended to do so unless you absolutely have to change the object's attributes. =head2 ASSOCIATIONS of TypeEnumerationMetadata The following are all the objects that are associated with the TypeEnumerationMetadata: =over 4 =item Instance of L: One to many assoication, use C to get a collection of associated SemanticMetadata. =back =cut # Below is module documentation for UMLAssociationMetadata =pod =head1 UMLAssociationMetadata CaCORE::CaDSR::UMLProject::UMLAssociationMetadata - Perl extension for UMLAssociationMetadata. =head2 ABSTRACT The CaCORE::CaDSR::UMLProject::UMLAssociationMetadata is a Perl object representation of the CaCORE UMLAssociationMetadata object. =head2 SYNOPSIS See L. =head2 DESCRIPTION =head2 ATTRIBUTES of UMLAssociationMetadata The following are all the attributes of the UMLAssociationMetadata object and their data types: =over 4 =item id data type: C =item isBidirectional data type: C =item sourceHighCardinality data type: C =item sourceLowCardinality data type: C =item sourceRoleName data type: C =item targetHighCardinality data type: C =item targetLowCardinality data type: C =item targetRoleName data type: C =back Note: Although you can also use the corresponding setter methods to set the attribute values, it is not recommended to do so unless you absolutely have to change the object's attributes. =head2 ASSOCIATIONS of UMLAssociationMetadata The following are all the objects that are associated with the UMLAssociationMetadata: =over 4 =item Collection of L: Many to one assoication, use C to get the associated ObjectClassRelationship. =item Collection of L: Many to one assoication, use C to get the associated Project. =item Instance of L: One to many assoication, use C to get a collection of associated SemanticMetadata. =item Collection of L: Many to one assoication, use C to get the associated SourceUMLClassMetadata. =item Collection of L: Many to one assoication, use C to get the associated TargetUMLClassMetadata. =back =cut # Below is module documentation for UMLAttributeMetadata =pod =head1 UMLAttributeMetadata CaCORE::CaDSR::UMLProject::UMLAttributeMetadata - Perl extension for UMLAttributeMetadata. =head2 ABSTRACT The CaCORE::CaDSR::UMLProject::UMLAttributeMetadata is a Perl object representation of the CaCORE UMLAttributeMetadata object. =head2 SYNOPSIS See L. =head2 DESCRIPTION =head2 ATTRIBUTES of UMLAttributeMetadata The following are all the attributes of the UMLAttributeMetadata object and their data types: =over 4 =item description data type: C =item fullyQualifiedName data type: C =item id data type: C =item name data type: C =back Note: Although you can also use the corresponding setter methods to set the attribute values, it is not recommended to do so unless you absolutely have to change the object's attributes. =head2 ASSOCIATIONS of UMLAttributeMetadata The following are all the objects that are associated with the UMLAttributeMetadata: =over 4 =item Collection of L: Many to one assoication, use C to get the associated UMLClassMetadata. =item Collection of L: Many to one assoication, use C to get the associated AttributeTypeMetadata. =item Collection of L: Many to one assoication, use C to get the associated DataElement. =item Collection of L: Many to one assoication, use C to get the associated Project. =item Instance of L: One to many assoication, use C to get a collection of associated SemanticMetadata. =back =cut # Below is module documentation for UMLClassMetadata =pod =head1 UMLClassMetadata CaCORE::CaDSR::UMLProject::UMLClassMetadata - Perl extension for UMLClassMetadata. =head2 ABSTRACT The CaCORE::CaDSR::UMLProject::UMLClassMetadata is a Perl object representation of the CaCORE UMLClassMetadata object. =head2 SYNOPSIS See L. =head2 DESCRIPTION =head2 ATTRIBUTES of UMLClassMetadata The following are all the attributes of the UMLClassMetadata object and their data types: =over 4 =item description data type: C =item fullyQualifiedName data type: C =item id data type: C =item name data type: C =back Note: Although you can also use the corresponding setter methods to set the attribute values, it is not recommended to do so unless you absolutely have to change the object's attributes. =head2 ASSOCIATIONS of UMLClassMetadata The following are all the objects that are associated with the UMLClassMetadata: =over 4 =item Instance of L: One to many assoication, use C to get a collection of associated UMLAssociationMetadata. =item Instance of L: One to many assoication, use C to get a collection of associated UMLAttributeMetadata. =item Collection of L: Many to one assoication, use C to get the associated UMLGeneralizationMetadata. =item Collection of L: Many to one assoication, use C to get the associated UMLPackageMetadata. =item Collection of L: Many to one assoication, use C to get the associated ObjectClass. =item Collection of L: Many to one assoication, use C to get the associated Project. =item Instance of L: One to many assoication, use C to get a collection of associated SemanticMetadata. =back =cut # Below is module documentation for UMLGeneralizationMetadata =pod =head1 UMLGeneralizationMetadata CaCORE::CaDSR::UMLProject::UMLGeneralizationMetadata - Perl extension for UMLGeneralizationMetadata. =head2 ABSTRACT The CaCORE::CaDSR::UMLProject::UMLGeneralizationMetadata is a Perl object representation of the CaCORE UMLGeneralizationMetadata object. =head2 SYNOPSIS See L. =head2 DESCRIPTION =head2 ATTRIBUTES of UMLGeneralizationMetadata The following are all the attributes of the UMLGeneralizationMetadata object and their data types: =over 4 =item id data type: C =back Note: Although you can also use the corresponding setter methods to set the attribute values, it is not recommended to do so unless you absolutely have to change the object's attributes. =head2 ASSOCIATIONS of UMLGeneralizationMetadata The following are all the objects that are associated with the UMLGeneralizationMetadata: =over 4 =item Collection of L: Many to one assoication, use C to get the associated ObjectClassRelationship. =item Collection of L: Many to one assoication, use C to get the associated SuperUMLClassMetadata. =back =cut # Below is module documentation for UMLPackageMetadata =pod =head1 UMLPackageMetadata CaCORE::CaDSR::UMLProject::UMLPackageMetadata - Perl extension for UMLPackageMetadata. =head2 ABSTRACT The CaCORE::CaDSR::UMLProject::UMLPackageMetadata is a Perl object representation of the CaCORE UMLPackageMetadata object. =head2 SYNOPSIS See L. =head2 DESCRIPTION =head2 ATTRIBUTES of UMLPackageMetadata The following are all the attributes of the UMLPackageMetadata object and their data types: =over 4 =item description data type: C =item id data type: C =item name data type: C =back Note: Although you can also use the corresponding setter methods to set the attribute values, it is not recommended to do so unless you absolutely have to change the object's attributes. =head2 ASSOCIATIONS of UMLPackageMetadata The following are all the objects that are associated with the UMLPackageMetadata: =over 4 =item Instance of L: One to many assoication, use C to get a collection of associated UMLClassMetadata. =item Collection of L: Many to one assoication, use C to get the associated ClassSchemeClassSchemeItem. =item Collection of L: Many to one assoication, use C to get the associated Project. =item Collection of L: Many to one assoication, use C to get the associated SubProject. =back =cut =pod =head1 SUPPORT Please do not contact author directly. Send email to ncicb@pop.nci.nih.gov to request support or report a bug. =head1 AUTHOR Shan Jiang =head1 COPYRIGHT AND LICENSE The CaCORE Software License, Version 1.0 Copyright 2001-2005 SAIC. This software was developed in conjunction with the National Cancer Institute, and so to the extent government employees are co-authors, any rights in such works shall be subject to Title 17 of the United States Code, section 105. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: =over 1 =item 1 Redistributions of source code must retain the above copyright notice, this list of conditions and the disclaimer of Article 5, below. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the disclaimer of Article 5 in the documentation and/or other materials provided with the distribution. =item 2 The end-user documentation included with the redistribution, if any, must include the following acknowledgment: "This product includes software developed by SAIC and the National Cancer Institute." If no such end-user documentation is to be included, this acknowledgment shall appear in the software itself, wherever such third-party acknowledgments normally appear. =item 3 The names "The National Cancer Institute", "NCI" and "SAIC" must not be used to endorse or promote products derived from this software. This license does not authorize the licensee to use any trademarks owned by either NCI or SAIC. =item 4 This license does not authorize or prohibit the incorporation of this software into any third party proprietary programs. Licensee is expressly made responsible for obtaining any permission required to incorporate this software into third party proprietary programs and for informing licensee's end-users of their obligation to secure any required permissions before incorporating this software into third party proprietary software programs. =item 5 THIS SOFTWARE IS PROVIDED "AS IS," AND ANY EXPRESSED OR IMPLIED WARRANTIES, (INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE) ARE DISCLAIMED. IN NO EVENT SHALL THE NATIONAL CANCER INSTITUTE, SAIC, OR THEIR AFFILIATES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. =back =cut