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

#pragma once

#include "ISCW_FMapProperty.h"
#include "SCW_FProperty.h"

class FMapProperty;

namespace Sourcify
{
	class SCW_FMapProperty : public SCW_FProperty, public virtual ISCW_FMapProperty
	{
	public:
		SCW_FMapProperty(FMapProperty* InMapProperty);

		wstring GetCPPTypeCustom(wstring* ExtendedTypeText, SCW_EPropertyExportCPPFlags CPPExportFlags, const wstring& KeyTypeText, const wstring& InKeyExtendedTypeText, const wstring& ValueTypeText, const wstring& InValueExtendedTypeText) const override;

		ISCW_FPropertyPtr GetKeyProperty() const override;

		ISCW_FPropertyPtr GetValueProperty() const override;

		FMapProperty* ToFMapProperty() const;

	protected:
		FMapProperty* MapProperty;
	};
} // namespace Sourcify