#---------------------------------------------------------------
# ____                   _ _         ____  _
#|  _ \ ___  _   _  __ _| | |_ _   _/ ___|| |__   __ _ _ __ ___
#| |_) / _ \| | | |/ _` | | __| | | \___ \| '_ \ / _` | '__/ _ \
#|  _ < (_) | |_| | (_| | | |_| |_| |___) | | | | (_| | | |  __/
#|_| \_\___/ \__, |\__,_|_|\__|\__, |____/|_| |_|\__,_|_|  \___|
#            |___/             |___/
#
# Copyright (C) 2011 RoyaltyShare, Inc.   All Rights Reserved
#---------------------------------------------------------------

package RPS::Report::Dynamic::Factory;
use strict;
use warnings;

use lib '/app/tools/common/lib';
use lib '/app/tools/report/lib';
use lib '/app/tools/rps/lib';

use base 'Report::Dynamic::Factory';
use Common::Assert;
use Common::Exception;


# So, we are going to have classes 'register' with the Factory.
# Basically, there will be a virtual class method that must be overridden, which
# will be a list of class package names.
#
sub _Classes
{
    return [
#        'RPS::Report::Dynamic::Catalog::Albums',
#        'RPS::Report::Dynamic::Catalog::Albums::WithTracks',
        'RPS::Report::Dynamic::Catalog::Products',
        'RPS::Report::Dynamic::Catalog::Products::WithTracks',
        'RPS::Report::Dynamic::Contract::Artist',
        'RPS::Report::Dynamic::Contract::Label',
        'RPS::Report::Dynamic::Payee::Publishers::CA',
        'RPS::Report::Dynamic::Payee::Publishers::US',
        'RPS::Report::Dynamic::Payee::Artist',
        'RPS::Report::Dynamic::Payee::Label',
        'RPS::Report::Dynamic::Sales::Digital',
        'RPS::Report::Dynamic::Sales::Physical',
        'RPS::Report::Dynamic::Sales::DigitalAndPhysical',
        'RPS::Report::Dynamic::Licenses::US',
        'RPS::Report::Dynamic::Licenses::CA',
        'RPS::Report::Dynamic::Licenses::UK',
        'RPS::Report::Dynamic::Expense::Base',
        'RPS::Report::Dynamic::Transactions::ArtistProducer',
        'RPS::Report::Dynamic::Transactions::Label',
        'RPS::Report::Dynamic::Transactions::USPublisher',
        'RPS::Report::Dynamic::Transactions::CAPublisher',
        'RPS::Report::Dynamic::Transactions::USLicense',
        'RPS::Report::Dynamic::Transactions::CALicense',
        'RPS::Report::Dynamic::LicenseIncome::Base',
    ];
}

1;
