All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.drill.exec.server.options.OptionManager Maven / Gradle / Ivy

/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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.
 */
package org.apache.drill.exec.server.options;

import javax.validation.constraints.NotNull;

/**
 * Manager for Drill {@link OptionValue options}. Implementations must be case-insensitive to the name of an option.
 *
 * The options governed by an {@link OptionManager} fall into various categories. These categories are described below.
 *
 * 
    *
  • * Local: Local options are options who have a value stored in this {@link OptionManager}. Whether an option is Local to an {@link OptionManager} or not should * be irrelevant to the user. *
  • *
  • * Public: Public options are options that are visible to end users in all the standard tables and rest endpoints. *
  • *
  • * Internal: Internal options are options that are only visible to end users if they check special tables and rest endpoints that are not documented. These options * are not intended to be modified by users and should only be modified by support during debugging. Internal options are also not gauranteed to be consistent accross * patch, minor, or major releases. *
  • *
* */ public interface OptionManager extends OptionSet, Iterable { /** * Sets a boolean option on the {@link OptionManager}. * @param name The name of the option. * @param value The value of the option. */ void setLocalOption(String name, boolean value); /** * Sets a long option on the {@link OptionManager}. * @param name The name of the option. * @param value The value of the option. */ void setLocalOption(String name, long value); /** * Sets a double option on the {@link OptionManager}. * @param name The name of the option. * @param value The value of the option. */ void setLocalOption(String name, double value); /** * Sets a String option on the {@link OptionManager}. * @param name The name of the option. * @param value The value of the option. */ void setLocalOption(String name, String value); /** * Sets an option on the {@link OptionManager}. * @param name The name of the option. * @param value The value of the option. */ void setLocalOption(String name, Object value); /** * Sets an option of the specified {@link OptionValue.Kind} on the {@link OptionManager}. * @param kind The kind of the option. * @param name The name of the option. * @param value The value of the option. */ void setLocalOption(OptionValue.Kind kind, String name, String value); /** * Deletes the option. * * If the option name is valid (exists in the set of validators produced by {@link SystemOptionManager#createDefaultOptionDefinitions()}), * but the option was not set within this manager, calling this method should be a no-op. * * @param name option name * @throws org.apache.drill.common.exceptions.UserException message to describe error with value */ void deleteLocalOption(String name); /** * Deletes all options. * * If no options are set, calling this method should be no-op. * * @throws org.apache.drill.common.exceptions.UserException message to describe error with value */ void deleteAllLocalOptions(); /** * Get the option definition corresponding to the given option name. * @param name The name of the option to retrieve a validator for. * @return The option validator corresponding to the given option name. * @throws UserException - if the definition is not found */ @NotNull OptionDefinition getOptionDefinition(String name); /** * Gets the list of options managed this manager. * * @return the list of options */ OptionList getOptionList(); /** * Returns all the internal options contained in this option manager. * * @return All the internal options contained in this option manager. */ @NotNull OptionList getInternalOptionList(); /** * Returns all the public options contained in this option manager. * * @return All the public options contained in this option manager. */ @NotNull OptionList getPublicOptionList(); }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy