src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionDescriptors.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionDescriptors.java Mon Jun 26 15:43:54 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionDescriptors.java Mon Jun 26 15:43:54 2017
*** 25,34 ****
--- 25,37 ----
package org.graalvm.options;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
+ import java.util.LinkedHashMap;
+ import java.util.List;
+ import java.util.Map;
import java.util.NoSuchElementException;
/**
* An interface to a set of {@link OptionDescriptor}s.
*
*** 74,83 ****
--- 77,121 ----
return descriptors[0];
} else {
return new UnionOptionDescriptors(descriptors);
}
}
+
+ /**
+ * Create an {@link OptionDescriptors} instance from a list. The option descriptors
+ * implementation is backed by a {@link LinkedHashMap} that preserves ordering.
+ *
+ * @since 1.0
+ */
+ static OptionDescriptors create(List<OptionDescriptor> descriptors) {
+ if (descriptors == null || descriptors.isEmpty()) {
+ return EMPTY;
+ }
+ return new OptionDescriptorsMap(descriptors);
+ }
+ }
+
+ class OptionDescriptorsMap implements OptionDescriptors {
+
+ final Map<String, OptionDescriptor> descriptors = new LinkedHashMap<>();
+
+ OptionDescriptorsMap(List<OptionDescriptor> descriptorList) {
+ for (OptionDescriptor descriptor : descriptorList) {
+ descriptors.put(descriptor.getName(), descriptor);
+ }
+ }
+
+ @Override
+ public OptionDescriptor get(String optionName) {
+ return descriptors.get(optionName);
+ }
+
+ @Override
+ public Iterator<OptionDescriptor> iterator() {
+ return descriptors.values().iterator();
+ }
+
}
final class UnionOptionDescriptors implements OptionDescriptors {
final OptionDescriptors[] descriptorsList;
src/jdk.internal.vm.compiler/share/classes/org.graalvm.options/src/org/graalvm/options/OptionDescriptors.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File