Revert "Use integers to store major / minor versions for FQName."
This reverts commit 1faabf1e3fa71fc2cb57bd0e0489487a0a43a7b7.
Change-Id: I2749a72ff857193c65001efcbea8f0506c56da53
diff --git a/utils/FQName.cpp b/utils/FQName.cpp
index dd29f48..79d16a1 100644
--- a/utils/FQName.cpp
+++ b/utils/FQName.cpp
@@ -19,7 +19,6 @@
#include "StringHelper.h"
#include <android-base/logging.h>
-#include <android-base/parseint.h>
#include <iostream>
#include <regex>
#include <sstream>
@@ -115,8 +114,9 @@
}
bool FQName::setTo(const std::string &s) {
- clearVersion();
mPackage.clear();
+ mMajor.clear();
+ mMinor.clear();
mName.clear();
mValid = true;
@@ -126,18 +126,21 @@
CHECK_EQ(match.size(), 5u);
mPackage = match.str(1);
- parseVersion(match.str(2), match.str(3));
+ mMajor = match.str(2);
+ mMinor = match.str(3);
mName = match.str(4);
} else if (std::regex_match(s, match, kRE2)) {
CHECK_EQ(match.size(), 4u);
- parseVersion(match.str(1), match.str(2));
+ mMajor = match.str(1);
+ mMinor = match.str(2);
mName = match.str(3);
} else if (std::regex_match(s, match, kRE3)) {
CHECK_EQ(match.size(), 4u);
mPackage = match.str(1);
- parseVersion(match.str(2), match.str(3));
+ mMajor = match.str(2);
+ mMinor = match.str(3);
} else if (std::regex_match(s, match, kRE4)) {
mName = match.str(0);
} else if (std::regex_match(s, match, kRE5)) {
@@ -147,13 +150,15 @@
CHECK_EQ(match.size(), 6u);
mPackage = match.str(1);
- parseVersion(match.str(2), match.str(3));
+ mMajor = match.str(2);
+ mMinor = match.str(3);
mName = match.str(4);
mValueName = match.str(5);
} else if (std::regex_match(s, match, kRE7)) {
CHECK_EQ(match.size(), 5u);
- parseVersion(match.str(1), match.str(2));
+ mMajor = match.str(1);
+ mMinor = match.str(2);
mName = match.str(3);
mValueName = match.str(4);
} else if (std::regex_match(s, match, kRE8)) {
@@ -179,17 +184,19 @@
}
std::string FQName::version() const {
- if (!hasVersion()) {
+ CHECK(mMajor.empty() == mMinor.empty());
+ if (mMajor.empty() && mMinor.empty()) {
return "";
}
- return std::to_string(mMajor) + "." + std::to_string(mMinor);
+ return mMajor + "." + mMinor;
}
std::string FQName::sanitizedVersion() const {
- if (!hasVersion()) {
+ CHECK(mMajor.empty() == mMinor.empty());
+ if (mMajor.empty() && mMinor.empty()) {
return "";
}
- return "V" + std::to_string(mMajor) + "_" + std::to_string(mMinor);
+ return "V" + mMajor + "_" + mMinor;
}
std::string FQName::atVersion() const {
@@ -199,33 +206,21 @@
void FQName::setVersion(const std::string &v) {
if (v.empty()) {
- clearVersion();
+ mMajor.clear();
+ mMinor.clear();
return;
}
std::smatch match;
if (std::regex_match(v, match, kREVer)) {
CHECK_EQ(match.size(), 3u);
- parseVersion(match.str(1), match.str(2));
+ mMajor = match.str(1);
+ mMinor = match.str(2);
} else {
mValid = false;
}
}
-void FQName::clearVersion() {
- mMajor = mMinor = 0;
-}
-
-void FQName::parseVersion(const std::string &majorStr, const std::string &minorStr) {
- bool versionParseSuccess =
- ::android::base::ParseUint(majorStr, &mMajor) &&
- ::android::base::ParseUint(minorStr, &mMinor);
- if (!versionParseSuccess) {
- LOG(ERROR) << "numbers in " << majorStr << "." << minorStr << " are out of range.";
- mValid = false;
- }
-}
-
std::string FQName::name() const {
return mName;
}
@@ -431,33 +426,20 @@
bool cpp_compatible) const {
getPackageComponents(components);
- if (!hasVersion()) {
- LOG(WARNING) << "FQName: getPackageAndVersionComponents expects version.";
- return;
- }
-
if (!cpp_compatible) {
- components->push_back(std::to_string(getPackageMajorVersion()) +
- "." + std::to_string(getPackageMinorVersion()));
+ components->push_back(getPackageMajorVersion() +
+ "." + getPackageMinorVersion());
return;
}
components->push_back(sanitizedVersion());
}
-bool FQName::hasVersion() const {
- return mMajor > 0;
-}
-
-size_t FQName::getPackageMajorVersion() const {
- CHECK(hasVersion()) << "FQName: No version exists at getPackageMajorVersion(). "
- << "Did you check hasVersion()?";
+std::string FQName::getPackageMajorVersion() const {
return mMajor;
}
-size_t FQName::getPackageMinorVersion() const {
- CHECK(hasVersion()) << "FQName: No version exists at getPackageMinorVersion(). "
- << "Did you check hasVersion()?";
+std::string FQName::getPackageMinorVersion() const {
return mMinor;
}