/*
* Copyright [1999-2015] Wellcome Trust Sanger Institute and the EMBL-European Bioinformatics Institute
* Copyright [2016-2017] EMBL-European Bioinformatics Institute
*
* Licensed 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.ensembl.healthcheck.configuration;
import uk.co.flamingpenguin.jewel.cli.Option;
/**
* <p>
* Defines command line interface options for configuring the tests to be
* run. This interface style of configuring is from the jewel project:
* </p>
*
* <p>
* http://jewelcli.sourceforge.net/examples.html
* </p>
*
* <p>
* This interface extends several other interface classes. The advantage of
* this is that later the ConfigurationUserParameters can be cast into one
* of these interfaces in order to limit the information a part of the program
* has access to and thereby decoupling code from configuration information.
* </p>
*
* <p>
* ATTENTION: Don't set any defaults for command line options! Doing so will
* make jewel provide the default value, if none is given. The cascading
* configuration object will then think that the user provided this value and
* not look any further in other configuration files. Default values should be
* set in a properties file which is always read and put in last in the
* hierarchy.
* </p>
*
*/
public interface ConfigurationUserParameters
extends
ConfigureHost,
ConfigureDatabases,
ConfigureTestGroups,
ConfigureConfiguration,
ConfigureTestRunner,
ConfigureHealthcheckDatabase,
ConfigureCompareSchema,
ConfigureMiscProperties {
@Option(helpRequest = true, description = "display help", shortName = "h")
boolean getHelp();
}