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

#pragma once

#include "ISCW_FEdGraphTerminalType.h"
#include "SCW_Base.h"

struct FEdGraphTerminalType;;

namespace Sourcify
{
	class SCW_FEdGraphTerminalType : public SCW_Base, public virtual ISCW_FEdGraphTerminalType
	{
	public:
		SCW_FEdGraphTerminalType(FEdGraphTerminalType* InEdGraphTerminalType);

		bool ISCW_Equals(ISCW_FEdGraphTerminalTypeConstPtr Other) const override;

		ISCW_UObjectPtr GetTerminalSubCategoryObject() const override;
		void SetTerminalSubCategoryObject(ISCW_UObjectPtr InObjectPtr) const override;

		FEdGraphTerminalType* ToFEdGraphTerminalType() const;

		ISCW_FEdGraphTerminalTypePtr ToFEdGraphTerminalTypePtr() override;
		ISCW_FEdGraphTerminalTypeConstPtr ToFEdGraphTerminalTypePtr() const override;

	protected:
		FEdGraphTerminalType* EdGraphTerminalType;
	};
} // namespace Sourcify