BPM-Engine
view release on metacpan or search on metacpan
lib/BPM/Engine/Store/ResultSet/Package.pm view on Meta::CPAN
package BPM::Engine::Store::ResultSet::Package;
BEGIN {
$BPM::Engine::Store::ResultSet::Package::VERSION = '0.01';
$BPM::Engine::Store::ResultSet::Package::AUTHORITY = 'cpan:SITETECH';
}
use namespace::autoclean;
use Moose;
use MooseX::NonMoose;
use Scalar::Util qw/blessed/;
use BPM::Engine::Util::XPDL ':all';
use BPM::Engine::Exceptions qw/throw_model throw_store/;
extends 'DBIx::Class::ResultSet';
my %APPMAP = ();
sub debug {
#my @caller = caller(0); warn $_[0] . ' at line ' . $caller[2] . "\n";
}
sub create_from_xml {
my ($self, $arg) = @_;
$arg = xml_hash($arg) unless(ref($arg) eq 'HASH');
return $self->_create_from_hash($arg);
}
sub create_from_xpdl {
my ($self, $arg) = @_;
$arg = xpdl_hash($arg) unless(ref($arg) eq 'HASH');
return $self->_create_from_hash($arg);
}
sub _create_from_hash {
my ($self, $args) = @_;
%APPMAP = ();
my $schema = $self->result_source->schema;
my $create_txn = sub {
#-- main element: Package
my $entry = $self->create( {
package_uid => $args->{Id},
version => '1.0',
});
$entry->package_name($args->{Name}) if($args->{Name});
#-- element: PackageHeader (required)
_import_packhead($entry, $args->{PackageHeader})
if $args->{PackageHeader};
#-- element: RedefinableHeader
_import_redefhead($entry, $args->{RedefinableHeader})
if $args->{RedefinableHeader};
#-- element: ConformanceClass
$entry->graph_conformance($args->{ConformanceClass}->{GraphConformance})
if ($args->{ConformanceClass});
#-- element: Script
#-- element: ExternalPackages
#-- element: TypeDeclarations
#-- element: Participants
_import_participants($entry, $args->{Participants}->{Participant})
if $args->{Participants};
#-- element: Applications
_import_applications($entry, $args->{Applications}->{Application})
if $args->{Applications};
#-- elements: DataFields, ExtendedAttributes, Formal/ActualParameters
if($args->{Artifacts} && $args->{Artifacts}->{seq_Artifact}) {
$args->{Artifacts}->{Artifact} = [
map { $_->{Artifact} }
( run in 0.579 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )