#ifndef ITERABLEHASHTABLE_HPP_INCLUDED
#define ITERABLEHASHTABLE_HPP_INCLUDED

#include "../JavaClass/Object.hpp"
#include "../JavaClass/Class.hpp"
#include <vector>
#include "Node.hpp"
#include <cstdint>

namespace Internal
{
    class IterableHashTable : public Object
    {
        public:
            IterableHashTable(const void* Obj);

            IterableHashTable() = default;
            IterableHashTable(IterableHashTable&& Obj) = default;
            IterableHashTable(const IterableHashTable& Obj) = default;
            IterableHashTable& operator=(IterableHashTable&& Obj) = default;
            IterableHashTable& operator=(const IterableHashTable& Obj) = default;

            static Class GetClass();

            std::vector<Node> GetBuckets() const;
            Node GetBuckets(std::int32_t I) const;
            std::int32_t GetIndex() const;
            std::int32_t GetSize() const;

    };
}

#endif // ITERABLEHASHTABLE_HPP_INCLUDED
