< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.options/src/org/graalvm/compiler/options/OptionDescriptor.java

Print this page




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 
  25 package org.graalvm.compiler.options;
  26 
  27 import java.util.Arrays;
  28 import java.util.Collections;
  29 import java.util.List;
  30 
  31 /**
  32  * Describes the attributes of a static field {@linkplain Option option} and provides access to its
  33  * {@linkplain OptionKey value}.
  34  */
  35 public final class OptionDescriptor {
  36 
  37     protected final String name;
  38     protected final OptionType optionType;
  39     protected final Class<?> optionValueType;
  40     protected final String help;
  41     protected final List<String> extraHelp;
  42     protected final OptionKey<?> optionKey;
  43     protected final Class<?> declaringClass;
  44     protected final String fieldName;
  45 
  46     private static final String[] NO_EXTRA_HELP = {};
  47 
  48     public static OptionDescriptor create(String name, OptionType optionType, Class<?> optionValueType, String help, Class<?> declaringClass, String fieldName, OptionKey<?> option) {
  49         return create(name, optionType, optionValueType, help, NO_EXTRA_HELP, declaringClass, fieldName, option);
  50     }
  51 
  52     public static OptionDescriptor create(String name, OptionType optionType, Class<?> optionValueType, String help, String[] extraHelp, Class<?> declaringClass, String fieldName,
  53                     OptionKey<?> option) {
  54         assert option != null : declaringClass + "." + fieldName;
  55         OptionDescriptor result = option.getDescriptor();
  56         if (result == null) {
  57             List<String> extraHelpList = extraHelp == null || extraHelp.length == 0 ? Collections.emptyList() : Collections.unmodifiableList(Arrays.asList(extraHelp));
  58             result = new OptionDescriptor(name, optionType, optionValueType, help, extraHelpList, declaringClass, fieldName, option);
  59             option.setDescriptor(result);
  60         }
  61         assert result.name.equals(name) && result.optionValueType == optionValueType && result.declaringClass == declaringClass && result.fieldName.equals(fieldName) && result.optionKey == option;
  62         return result;
  63     }
  64 




  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  */
  23 
  24 
  25 package org.graalvm.compiler.options;
  26 
  27 import java.util.Arrays;
  28 import java.util.Collections;
  29 import java.util.List;
  30 
  31 /**
  32  * Describes the attributes of a static field {@linkplain Option option} and provides access to its
  33  * {@linkplain OptionKey value}.
  34  */
  35 public final class OptionDescriptor {
  36 
  37     private final String name;
  38     private final OptionType optionType;
  39     private final Class<?> optionValueType;
  40     private final String help;
  41     private final List<String> extraHelp;
  42     private final OptionKey<?> optionKey;
  43     private final Class<?> declaringClass;
  44     private final String fieldName;
  45 
  46     private static final String[] NO_EXTRA_HELP = {};
  47 
  48     public static OptionDescriptor create(String name, OptionType optionType, Class<?> optionValueType, String help, Class<?> declaringClass, String fieldName, OptionKey<?> option) {
  49         return create(name, optionType, optionValueType, help, NO_EXTRA_HELP, declaringClass, fieldName, option);
  50     }
  51 
  52     public static OptionDescriptor create(String name, OptionType optionType, Class<?> optionValueType, String help, String[] extraHelp, Class<?> declaringClass, String fieldName,
  53                     OptionKey<?> option) {
  54         assert option != null : declaringClass + "." + fieldName;
  55         OptionDescriptor result = option.getDescriptor();
  56         if (result == null) {
  57             List<String> extraHelpList = extraHelp == null || extraHelp.length == 0 ? Collections.emptyList() : Collections.unmodifiableList(Arrays.asList(extraHelp));
  58             result = new OptionDescriptor(name, optionType, optionValueType, help, extraHelpList, declaringClass, fieldName, option);
  59             option.setDescriptor(result);
  60         }
  61         assert result.name.equals(name) && result.optionValueType == optionValueType && result.declaringClass == declaringClass && result.fieldName.equals(fieldName) && result.optionKey == option;
  62         return result;
  63     }
  64 


< prev index next >