19808faf78deb962e7cced3d1abf517b0bb5ac9fcDamien Martin-Guillerez// Copyright 2014 The Bazel Authors. All rights reserved. 2e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// 3e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// Licensed under the Apache License, Version 2.0 (the "License"); 4e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// you may not use this file except in compliance with the License. 5e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// You may obtain a copy of the License at 6e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// 7e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// http://www.apache.org/licenses/LICENSE-2.0 8e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// 9e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// Unless required by applicable law or agreed to in writing, software 10e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// distributed under the License is distributed on an "AS IS" BASIS, 11e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// See the License for the specific language governing permissions and 13e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez// limitations under the License. 14e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerezpackage com.google.devtools.common.options; 15e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez 16e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez/** 17e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * The priority of option values, in order of increasing priority. 18e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * 19e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * <p>In general, new values for options can only override values with a lower or 20e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * equal priority. Option values provided in annotations in an options class are 21e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * implicitly at the priority {@code DEFAULT}. 22e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * 23e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * <p>The ordering of the priorities is the source-code order. This is consistent 24e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * with the automatically generated {@code compareTo} method as specified by the 25e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * Java Language Specification. DO NOT change the source-code order of these 26e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * values, or you will break code that relies on the ordering. 27e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez */ 28e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerezpublic enum OptionPriority { 29e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez 30e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez /** 31e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * The priority of values specified in the {@link Option} annotation. This 32e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * should never be specified in calls to {@link OptionsParser#parse}. 33e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez */ 34e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez DEFAULT, 35e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez 36e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez /** 37e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * Overrides default options at runtime, while still allowing the values to be 38e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * overridden manually. 39e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez */ 40e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez COMPUTED_DEFAULT, 41e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez 42e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez /** 43e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * For options coming from a configuration file or rc file. 44e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez */ 45e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez RC_FILE, 46e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez 47e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez /** 48e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * For options coming from the command line. 49e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez */ 50e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez COMMAND_LINE, 51e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez 52e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez /** 53639ceefbac67dceb84cc1df1199f848ed167fea0Alex Humesky * For options coming from invocation policy. 54639ceefbac67dceb84cc1df1199f848ed167fea0Alex Humesky */ 55639ceefbac67dceb84cc1df1199f848ed167fea0Alex Humesky INVOCATION_POLICY, 56639ceefbac67dceb84cc1df1199f848ed167fea0Alex Humesky 57639ceefbac67dceb84cc1df1199f848ed167fea0Alex Humesky /** 58e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * This priority can be used to unconditionally override any user-provided options. 59e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez * This should be used rarely and with caution! 60e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez */ 61e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez SOFTWARE_REQUIREMENT; 62e3f722934d1544379bd385e3053d515d3763095cDamien Martin-Guillerez} 63