package Statistics::Covid::Version::IO;
use 5.006;
use strict;
use warnings;
# this class has all the functionality, like inserting to db etc.
# however, it expects that the 'dual' object which holds the data
# to insert into db (and also instantiate when selecting a db row)
# must adhere to some blueprint and have certain subs implemented,
# for example primary_key() or newer_than()
use parent 'Statistics::Covid::IO::Base';
use Statistics::Covid::Utils;
use Statistics::Covid::Version;
# this file contains the table schema
use Statistics::Covid::Version::Table;
use Statistics::Covid::Schema;
our $VERSION = '0.23';
# new method inherited but here we will create one
# to be used as a factory
sub new {
my ($class, $params) = @_;
$params = {} unless defined $params;
# anything to add to the params? do it here
# $params->{'newthing'} = xxx
# now call our parent's constructor
my $self = $class->SUPER::new(
'Statistics::Covid::Schema',
'Statistics::Covid::Version',
$params
);
if( ! defined $self ){ warn "error, call to $class->new() has failed."; return undef }
# this will now be Version/IO obj (not generic)
return $self
}
1;