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

#include "SCW_FInterfaceProperty.h"
#include "ISCW_UClass.h"
#include "SourcifyCoreUEWrapperModule.h"
#include "UObject/UnrealType.h"

using namespace Sourcify;

SCW_FInterfaceProperty::SCW_FInterfaceProperty(FInterfaceProperty* InInterfaceProperty) : SCW_FProperty(InInterfaceProperty), InterfaceProperty(InInterfaceProperty)
{

}

FInterfaceProperty* SCW_FInterfaceProperty::ToFInterfaceProperty() const
{
	return InterfaceProperty;
}

ISCW_FInterfacePropertyPtr SCW_FInterfaceProperty::ToFInterfacePropertyPtr()
{
	return GetSharedThisAs<SCW_FInterfaceProperty>();
}

ISCW_FInterfacePropertyConstPtr SCW_FInterfaceProperty::ToFInterfacePropertyPtr() const
{
	return GetSharedThisAs<SCW_FInterfaceProperty>();
}

ISCW_UClassPtr SCW_FInterfaceProperty::GetInterfaceClass() const
{
	return FSourcifyCoreUEWrapper::Get().Wrap(*InterfaceProperty->InterfaceClass.Get());
}