org.apache.lucene.benchmark.byTask.utils

## Class Config

- java.lang.Object
- - org.apache.lucene.benchmark.byTask.utils.Config

    public class Config
    extends Object

Perf run configuration properties.

Numeric property containing ":", e.g. "10:100:5" is interpreted as array of numeric values. It is extracted once, on first use, and maintain a round number to return the appropriate value.

The config property "work.dir" tells where is the root of docs data dirs and indexes dirs. It is set to either of:

- value supplied for it in the alg file;
- otherwise, value of System property "benchmark.work.dir";
- otherwise, "work".

### Constructor Summary

Constructors
Constructor and Description
`Config(Properties props)` Create config without algorithm - useful for a programmatic perf test.
`Config(Reader algReader)` Read both algorithm and config properties.

### Method Summary

Methods
`boolean` `get(String name, boolean dflt)` Return a boolean property.
`double` `get(String name, double dflt)` Return a double property.
`int` `get(String name, int dflt)` Return an int property.
`String` `get(String name, String dflt)` Return a string property.
`String` `getAlgorithmText()`
`String` `getColsNamesForValsByRound()`
`String` `getColsValuesForValsByRound(int roundNum)`
`int` `getRoundNumber()`
`int` `newRound()` Increment the round number, for config values that are extracted by round number.
`void` `set(String name, String value)` Set a property.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### Config

    public Config(Reader algReader)
           throws IOException

Read both algorithm and config properties.

Parameters:
  `algReader` - from where to read algorithm and config properties.
Throws:
  `IOException` - If there is a low-level I/O error.

#### Config

    public Config(Properties props)

Create config without algorithm - useful for a programmatic perf test.

Parameters:
  `props` - - configuration properties.

### Method Detail

#### get

    public String get(String name,
             String dflt)

Return a string property.

Parameters:
  `name` - name of property.
  `dflt` - default value.
Returns:
  a string property.

#### set

    public void set(String name,
           String value)
             throws Exception

Set a property. Note: once a multiple values property is set, it can no longer be modified.

Parameters:
  `name` - name of property.
  `value` - either single or multiple property value (multiple values are separated by ":")
Throws:
  `Exception`

#### get

    public int get(String name,
          int dflt)

Return an int property. If the property contain ":", e.g. "10:100:5", it is interpreted as array of ints. It is extracted once, on first call to get() it, and a by-round-value is returned.

Parameters:
  `name` - name of property
  `dflt` - default value
Returns:
  a int property.

#### get

    public double get(String name,
             double dflt)

Return a double property. If the property contain ":", e.g. "10:100:5", it is interpreted as array of doubles. It is extracted once, on first call to get() it, and a by-round-value is returned.

Parameters:
  `name` - name of property
  `dflt` - default value
Returns:
  a double property.

#### get

    public boolean get(String name,
              boolean dflt)

Return a boolean property. If the property contain ":", e.g. "true.true.false", it is interpreted as array of booleans. It is extracted once, on first call to get() it, and a by-round-value is returned.

Parameters:
  `name` - name of property
  `dflt` - default value
Returns:
  a int property.

#### newRound

    public int newRound()

Increment the round number, for config values that are extracted by round number.

Returns:
  the new round number.

#### getColsNamesForValsByRound

    public String getColsNamesForValsByRound()

Returns:
  names of params set by round, for reports title

#### getColsValuesForValsByRound

    public String getColsValuesForValsByRound(int roundNum)

Returns:
  values of params set by round, for reports lines.

#### getRoundNumber

    public int getRoundNumber()

Returns:
  the round number.

#### getAlgorithmText

    public String getAlgorithmText()

Returns:
  Returns the algorithmText.