#ifndef NAMEABLECONTAINER_HPP_INCLUDED
#define NAMEABLECONTAINER_HPP_INCLUDED

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

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

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

            static Class GetClass();

            std::vector<Nameable> GetNameables() const;
            Nameable GetNameables(std::int32_t I) const;
            std::int32_t GetSize() const;

    };
}

#endif // NAMEABLECONTAINER_HPP_INCLUDED
