#ifndef MESSAGENODE_HPP_INCLUDED
#define MESSAGENODE_HPP_INCLUDED

#include "CacheableNode.hpp"
#include "../JavaClass/Class.hpp"
#include <cstdint>
#include <string>
#include "NamePair.hpp"

namespace Internal
{
    class MessageNode : public CacheableNode
    {
        public:
            MessageNode(const void* Obj);

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

            static Class GetClass();

            std::int32_t GetID() const;
            std::string GetName() const;
            NamePair GetNamePair() const;
            std::string GetSender() const;
            std::string GetText() const;
            std::int32_t GetTick() const;
            std::int32_t GetType() const;

    };
}

#endif // MESSAGENODE_HPP_INCLUDED
