#pragma once

#include "BaseVersion.h"
#include "JavaVersion.h"

struct JavaInstall : public BaseVersion
{
	JavaInstall(){}
	JavaInstall(QString id, QString arch, QString path)
	: id(id), arch(arch), path(path)
	{
	}
	virtual QString descriptor()
	{
		return id.toString();
	}

	virtual QString name()
	{
		return id.toString();
	}

	virtual QString typeString() const
	{
		return arch;
	}

	bool operator<(const JavaInstall & rhs);
	bool operator==(const JavaInstall & rhs);
	bool operator>(const JavaInstall & rhs);

	JavaVersion id;
	QString arch;
	QString path;
	bool recommended = false;
};

typedef std::shared_ptr<JavaInstall> JavaInstallPtr;