/*
* Author:          Patrick-Christopher Mattulat
 * Co-Author:       Claude Sonnet 4.6 (LLM)
* Company:         Lynar Studios
* E-Mail:          webmaster@lynarstudios.com
* Created:         2023-04-08
* Changed:         2026-06-23
*
* */

#include <ls-std/core/evaluator/EmptyStringArgumentEvaluator.hpp>
#include <ls-std/core/jni/JniMethod.hpp>

using ls::standard::core::EmptyStringArgumentEvaluator;
using ls::standard::core::experimental::JniMethod;
using std::string;
using std::string_view;

JniMethod::JniMethod(const string &_methodIdentifier, const string &_methodSignature) : methodIdentifier(_methodIdentifier), methodSignature(_methodSignature)
{
  EmptyStringArgumentEvaluator{_methodIdentifier, "no method identifier has been provided!"}.evaluate();
  EmptyStringArgumentEvaluator{_methodSignature, "no method signature has been provided!"}.evaluate();
}

JniMethod::~JniMethod() = default;

jmethodID JniMethod::getMethodId()
{
  return this->methodId;
}

string JniMethod::getMethodIdentifier() const
{
  return this->methodIdentifier;
}

string JniMethod::getMethodSignature() const
{
  return this->methodSignature;
}

void JniMethod::setMethodId(jmethodID _methodId)
{
  this->methodId = _methodId;
}

void JniMethod::setMethodIdentifier(string_view _methodIdentifier)
{
  this->methodIdentifier = _methodIdentifier;
}

void JniMethod::setMethodSignature(string_view _methodSignature)
{
  this->methodSignature = _methodSignature;
}
