aboutsummaryrefslogtreecommitdiff
path: root/api/logic/java/JavaVersion.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/java/JavaVersion.cpp')
-rw-r--r--api/logic/java/JavaVersion.cpp121
1 files changed, 0 insertions, 121 deletions
diff --git a/api/logic/java/JavaVersion.cpp b/api/logic/java/JavaVersion.cpp
deleted file mode 100644
index 179ccd8d..00000000
--- a/api/logic/java/JavaVersion.cpp
+++ /dev/null
@@ -1,121 +0,0 @@
-#include "JavaVersion.h"
-#include <MMCStrings.h>
-
-#include <QRegularExpression>
-#include <QString>
-
-JavaVersion & JavaVersion::operator=(const QString & javaVersionString)
-{
- m_string = javaVersionString;
-
- auto getCapturedInteger = [](const QRegularExpressionMatch & match, const QString &what) -> int
- {
- auto str = match.captured(what);
- if(str.isEmpty())
- {
- return 0;
- }
- return str.toInt();
- };
-
- QRegularExpression pattern;
- if(javaVersionString.startsWith("1."))
- {
- pattern = QRegularExpression ("1[.](?<major>[0-9]+)([.](?<minor>[0-9]+))?(_(?<security>[0-9]+)?)?(-(?<prerelease>[a-zA-Z0-9]+))?");
- }
- else
- {
- pattern = QRegularExpression("(?<major>[0-9]+)([.](?<minor>[0-9]+))?([.](?<security>[0-9]+))?(-(?<prerelease>[a-zA-Z0-9]+))?");
- }
-
- auto match = pattern.match(m_string);
- m_parseable = match.hasMatch();
- m_major = getCapturedInteger(match, "major");
- m_minor = getCapturedInteger(match, "minor");
- m_security = getCapturedInteger(match, "security");
- m_prerelease = match.captured("prerelease");
- return *this;
-}
-
-JavaVersion::JavaVersion(const QString &rhs)
-{
- operator=(rhs);
-}
-
-QString JavaVersion::toString()
-{
- return m_string;
-}
-
-bool JavaVersion::requiresPermGen()
-{
- if(m_parseable)
- {
- return m_major < 8;
- }
- return true;
-}
-
-bool JavaVersion::operator<(const JavaVersion &rhs)
-{
- if(m_parseable && rhs.m_parseable)
- {
- auto major = m_major;
- auto rmajor = rhs.m_major;
-
- // HACK: discourage using java 9
- if(major > 8)
- major = -major;
- if(rmajor > 8)
- rmajor = -rmajor;
-
- if(major < rmajor)
- return true;
- if(major > rmajor)
- return false;
- if(m_minor < rhs.m_minor)
- return true;
- if(m_minor > rhs.m_minor)
- return false;
- if(m_security < rhs.m_security)
- return true;
- if(m_security > rhs.m_security)
- return false;
-
- // everything else being equal, consider prerelease status
- bool thisPre = !m_prerelease.isEmpty();
- bool rhsPre = !rhs.m_prerelease.isEmpty();
- if(thisPre && !rhsPre)
- {
- // this is a prerelease and the other one isn't -> lesser
- return true;
- }
- else if(!thisPre && rhsPre)
- {
- // this isn't a prerelease and the other one is -> greater
- return false;
- }
- else if(thisPre && rhsPre)
- {
- // both are prereleases - use natural compare...
- return Strings::naturalCompare(m_prerelease, rhs.m_prerelease, Qt::CaseSensitive) < 0;
- }
- // neither is prerelease, so they are the same -> this cannot be less than rhs
- return false;
- }
- else return Strings::naturalCompare(m_string, rhs.m_string, Qt::CaseSensitive) < 0;
-}
-
-bool JavaVersion::operator==(const JavaVersion &rhs)
-{
- if(m_parseable && rhs.m_parseable)
- {
- return m_major == rhs.m_major && m_minor == rhs.m_minor && m_security == rhs.m_security && m_prerelease == rhs.m_prerelease;
- }
- return m_string == rhs.m_string;
-}
-
-bool JavaVersion::operator>(const JavaVersion &rhs)
-{
- return (!operator<(rhs)) && (!operator==(rhs));
-}