airbug/bugcore

View on GitHub
libraries/bugcore/js/src/core/interfaces/IIndexValueIterator.js

Summary

Maintainability
B
6 hrs
Test Coverage
/*
 * Copyright (c) 2016 airbug Inc. http://airbug.com
 *
 * bugcore may be freely distributed under the MIT license.
 */


//-------------------------------------------------------------------------------
// Annotations
//-------------------------------------------------------------------------------

//@Export('IIndexValueIterator')

//@Require('IIterator')
//@Require('Interface')


//-------------------------------------------------------------------------------
// Context
//-------------------------------------------------------------------------------

require('bugpack').context("*", function(bugpack) {

    //-------------------------------------------------------------------------------
    // BugPack
    //-------------------------------------------------------------------------------

    var IIterator   = bugpack.require('IIterator');
    var Interface   = bugpack.require('Interface');


    //-------------------------------------------------------------------------------
    // Declare Interface
    //-------------------------------------------------------------------------------

    /**
     * @interface
     * @extends {IIterator.<V>}
     * @template V
     */
    var IIndexValueIterator = Interface.extend(IIterator, {

        _name: "IIndexValueIterator",


        //-------------------------------------------------------------------------------
        // Interface Methods
        //-------------------------------------------------------------------------------

        /**
         * @return {boolean}
         */
        hasNext: function() {},

        /**
         * @return {number}
         */
        nextIndex: function() {},

        /**
         * @return {{
         *      index: number
         *      value: V
         * }}
         */
        nextIndexValuePair: function() {},

        /**
         * @return {V}
         */
        nextValue: function() {}
    });


    //-------------------------------------------------------------------------------
    // Exports
    //-------------------------------------------------------------------------------

    bugpack.export('IIndexValueIterator', IIndexValueIterator);
});