aboutsummaryrefslogtreecommitdiff
path: root/find_java2/src/JavaPath.h
diff options
context:
space:
mode:
Diffstat (limited to 'find_java2/src/JavaPath.h')
-rwxr-xr-xfind_java2/src/JavaPath.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/find_java2/src/JavaPath.h b/find_java2/src/JavaPath.h
new file mode 100755
index 000000000..b7f40a5f7
--- /dev/null
+++ b/find_java2/src/JavaPath.h
@@ -0,0 +1,57 @@
+/*
+* Copyright (C) 2014 The Android Open Source Project
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#pragma once
+
+#include <atlpath.h> // ATL CPath
+
+
+// Transforms a Java major.minor number (e.g. "1.7") to internal int value (1007)
+#define JAVA_VERS_TO_INT(major, minor) ((major) * 1000 + (minor))
+// Extracts the major part from the internal int major.minor number
+#define JAVA_MAJOR(majorMinor) ((majorMinor) / 1000)
+// Extracts the minor part from the internal int major.minor number
+#define JAVA_MINOR(majorMinor) ((majorMinor) % 1000)
+
+
+struct CJavaPath {
+ int mVersion;
+ CPath mPath;
+
+ // Static empty path that can be returned as a reference.
+ static const CJavaPath sEmpty;
+
+ CJavaPath() : mVersion(0) {}
+ CJavaPath(int version, CPath path);
+ void set(int version, CPath path);
+
+ // Returns true if path/version is empty/0
+ bool isEmpty() const;
+
+ // Clears path and version to 0
+ void clear();
+
+ // Converts the internal path into a short DOS path.
+ // Returns true if this was possible and false if the conversion failed.
+ bool toShortPath();
+
+ // Returns the version formatted as a string (e.g. "1.7" instead of 1007.)
+ CString getVersion() const;
+
+ // Operators < and == for this to be suitable in an ordered std::set
+ bool operator< (const CJavaPath& rhs) const;
+ bool operator== (const CJavaPath& rhs) const;
+};