// Copyright (c) 2024 Codemongous LLC. All Rights Reserved.

#include "SCW_UK2Node_Variable.h"

#include "K2Node_Variable.h"
#include "SCW_UEdGraphNode.h"
#include "SourcifyCoreUEWrapperModule.h"

using namespace Sourcify;

SCW_UK2Node_Variable::SCW_UK2Node_Variable(UK2Node_Variable* InK2Node_Variable) : SCW_UK2Node(InK2Node_Variable), K2Node_Variable(InK2Node_Variable)
{

}

ISCW_FPropertyPtr SCW_UK2Node_Variable::GetPropertyForVariable() const
{
	return FSourcifyCoreUEWrapper::Get().Wrap(*K2Node_Variable->GetPropertyForVariable());
}

ISCW_FMemberReferencePtr SCW_UK2Node_Variable::GetVariableReference() const
{
	return FSourcifyCoreUEWrapper::Get().Wrap(K2Node_Variable->VariableReference);
}

wstring SCW_UK2Node_Variable::GetVarName() const
{
	return *K2Node_Variable->GetVarNameString();
}

UK2Node_Variable* SCW_UK2Node_Variable::ToUK2Node_Variable() const
{
	return K2Node_Variable;
}

ISCW_UK2Node_VariablePtr SCW_UK2Node_Variable::ToUK2Node_VariablePtr()
{
	return GetSharedThisAs<SCW_UK2Node_Variable>();
}

ISCW_UK2Node_VariableConstPtr SCW_UK2Node_Variable::ToUK2Node_VariablePtr() const
{
	return GetSharedThisAs<SCW_UK2Node_Variable>();
}