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

#pragma once

#include "ISCW_EngineVersionComparison.h"

// UMetaData is deprecated as of 5.6, use FMetaData instead.
#if ISCW_UE_VERSION_OLDER_THAN(5, 6, 0)

#include "ISCW_UMetaData.h"
#include "SCW_UObject.h"

class UMetaData;

namespace Sourcify
{
	class SCW_UMetaData : public SCW_UObject, public virtual ISCW_UMetaData
	{
	public:
		SCW_UMetaData(UMetaData* InMetaData);

		UMetaData* ToUMetaData() const;

		ISCW_UMetaDataPtr ToUMetaDataPtr() override;
		ISCW_UMetaDataConstPtr ToUMetaDataConstPtr() const override;

		wstring GetValue(ISCW_UObjectConstPtr Object, const wstring& Key) const override;

		void SetValue(ISCW_UObjectPtr Object, const wstring& Key, const wstring& Value) override;

	protected:
		UMetaData* MetaData;
	};
} // namespace Sourcify

#endif // #if ISCW_UE_VERSION_OLDER_THAN(5, 6)
