/*
 * This file is part of the UCSDMath package.
 *
 * (c) 2015-2018 UCSD Mathematics | Math Computing Support <mathhelp@math.ucsd.edu>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/*jshint globalstrict: true, esversion: 6 */

'use strict';

import {AbstractPunchcardCollection} from "AbstractPunchcardCollection";

/**
 * PunchcardCollection is the default implementation of {@link PunchcardCollectionInterface} which
 * provides routine PunchcardCollection methods that are commonly used in the framework.
 *
 * {@link AbstractPunchcardCollection} is basically a base class for various methods/routines
 * which this class extends. Please look to the Abstract Class for more information.
 *
 * Method list: (+) @api, (-) protected or private visibility.
 *
 * (+) {Object} constructor();
 * (+) {void}   setConstants();
 * (+) {void}   setProperties();
 *
 * @author Daryl Eisner <deisner@ucsd.edu>
 */
class PunchcardCollection extends AbstractPunchcardCollection
{
    /**
     * Constants.
     *
     * @var {string}  version The version number
     *
     * @api
     */
    setConstants()
    {
        this.version = '2.5.0';
    }

    //--------------------------------------------------------------------------

    /**
     * Properties.
     */
    setProperties()
    {
    }

    //--------------------------------------------------------------------------

    /**
     * Constructor.
     *
     * @api
     */
    constructor()
    {
        /* Initialize Parent */
        super();
        super.setConstants();
        super.setProperties();

        /* Initialize Child */
        this.setConstants();
        console.log('Class instance was created for: ' + this.constructor.name);
    }

    //--------------------------------------------------------------------------
}

export default PunchcardCollection;
