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

#pragma once

#include "ISCW_FBPInterfaceDescription.h"
#include "SCW_Base.h"

struct FBPInterfaceDescription;

namespace Sourcify
{
	class SCW_FBPInterfaceDescription : public SCW_Base, public ISCW_FBPInterfaceDescription
	{
	public:
		SCW_FBPInterfaceDescription(FBPInterfaceDescription* InBPInterfaceDescription);

		vector<ISCW_UEdGraphPtr> GetGraphs() const override;

		ISCW_UClassPtr GetInterface() const override;
		void SetInterface(ISCW_UClassConstPtr InInterface) override;
		
		FBPInterfaceDescription* ToFBPInterfaceDescription() const;

		ISCW_FBPInterfaceDescriptionPtr ToFBPInterfaceDescriptionPtr() override;
		ISCW_FBPInterfaceDescriptionConstPtr ToFBPInterfaceDescriptionPtr() const override;

	protected:
		FBPInterfaceDescription* BPInterfaceDescription;
	};
} // namespace Sourcify