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

#pragma once

#include "ISCW_UEnum.h"
#include "ISCW_UK2Node_ForEachElementInEnum.h"
#include "SCW_UK2Node.h"

class UK2Node_ForEachElementInEnum;

namespace Sourcify
{
	class SCW_UK2Node_ForEachElementInEnum : public SCW_UK2Node, public virtual ISCW_UK2Node_ForEachElementInEnum
	{
	public:
		SCW_UK2Node_ForEachElementInEnum(UK2Node_ForEachElementInEnum* InK2Node_ForEachElementInEnum);

		ISCW_UEnumPtr GetEnum() const override;

		void ReloadEnum(ISCW_UEnumPtr InEnum) override;

		UK2Node_ForEachElementInEnum* ToUK2Node_ForEachElementInEnum() const;

		ISCW_UK2Node_ForEachElementInEnumPtr ToUK2Node_ForEachElementInEnumPtr() override;
		ISCW_UK2Node_ForEachElementInEnumConstPtr ToUK2Node_ForEachElementInEnumPtr() const override;

	protected:
		UK2Node_ForEachElementInEnum* K2Node_ForEachElementInEnum;
	};
} // namespace Sourcify