< prev index next >
src/jdk.incubator.jpackage/share/native/libapplauncher/OrderedMap.h
Print this page
@@ -87,20 +87,25 @@
FAllowDuplicates = false;
}
OrderedMap(const OrderedMap<key_type, mapped_type> &Value) {
Append(Value);
+ FAllowDuplicates = Value.GetAllowDuplicates();
}
~OrderedMap() {
Clear();
}
void SetAllowDuplicates(bool Value) {
FAllowDuplicates = Value;
}
+ bool GetAllowDuplicates() const {
+ return FAllowDuplicates;
+ }
+
iterator begin() {
return FList.begin();
}
const_iterator begin() const {
@@ -212,10 +217,36 @@
}
return result;
}
+ bool GetKey(int index, key_type &Value) {
+ if (index < 0 || index >= (int)FList.size()) {
+ return false;
+ }
+ container_type *item = FList.at(index);
+ if (item != NULL) {
+ Value = item->first;
+ return true;
+ }
+
+ return false;
+ }
+
+ bool GetValue(int index, mapped_type &Value) {
+ if (index < 0 || index >= (int)FList.size()) {
+ return false;
+ }
+ container_type *item = FList.at(index);
+ if (item != NULL) {
+ Value = item->second;
+ return true;
+ }
+
+ return false;
+ }
+
mapped_type &operator[](key_type Key) {
container_type* item = FMap[Key];
assert(item != NULL);
if (item != NULL) {
@@ -225,10 +256,11 @@
throw std::invalid_argument("Key not found");
}
OrderedMap& operator= (OrderedMap &Value) {
Clear();
+ FAllowDuplicates = Value.GetAllowDuplicates();
Append(Value);
return *this;
}
size_t Count() {
< prev index next >