The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package Iodef::Pb::Simple::Plugin::Relatedactivity;
use base 'Iodef::Pb::Simple::Plugin';

use strict;
use warnings;

use Iodef::Pb::Simple qw/iodef_normalize_restriction/;

sub process {
    my $self = shift;
    my $data = shift;
    my $iodef = shift;
  
    my $altid = $data->{'RelatedActivity'} || $data->{'relatedid'};
    return unless($altid);
    
    my $restriction = iodef_normalize_restriction($data->{'relatedid_restriction'}) || RestrictionType::restriction_type_private();
    
    unless(ref($altid) eq 'RelatedActivityType' || ref($altid) eq 'ARRAY'){
        $altid = RelatedActivityType->new({
            IncidentID  => [
                IncidentIDType->new({
                    content     => $altid,
                    instance    => '',
                    name        => '',
                    restriction => $restriction,
                }),
            ],
            restriction => $restriction,
        });
    }
    
    my $incident = @{$iodef->get_Incident()}[0];
    $incident->set_RelatedActivity($altid);
}

1;