net.sf.cpsolver.ifs.util

## Class ToolBox

- java.lang.Object
- - net.sf.cpsolver.ifs.util.ToolBox

-     public class ToolBox
      extends Object

  Several auxiliary static methods.
  Version:
    IFS 1.2 (Iterative Forward Search)
    Copyright (C) 2006 - 2010 Tomáš Müller
    muller@unitime.org
    http://muller.unitime.org
    This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
    This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    You should have received a copy of the GNU Lesser General Public License along with this library; if not see http://www.gnu.org/licenses/.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ToolBox()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static String` | `col2string(Collection<?> col, int tab)` Multiline representation of a colection
    `static void` | `configureLogging()` Configurates log4j loging
    `static String` | `configureLogging(String logDir, Properties properties)` Configurates log4j loging
    `static String` | `configureLogging(String logDir, Properties properties, boolean timeInFileName)`
    `static String` | `configureLogging(String logDir, Properties properties, boolean timeInFileName, boolean includeSystemOuts)` Configurates log4j loging
    `static <K,V> String` | `dict2string(Map<K,V> dict, int tab)` Multiline representation of a dictionary
    `static boolean` | `equals(Object o1, Object o2)`
    `static Random` | `getRandom()` Gets random number generator
    `static long` | `getSeed()` Gets current seed
    `static <E> List<E>` | `intersect(Collection<E> source1, Collection<E> source2)` Returns intersection of two collections
    `static DataProperties` | `loadProperties(File propertyFile)` Loads data properties.
    `static <E> void` | `merge(List<E> target, Collection<E> source)` Merge source with target
    `static double` | `random()` Generates random double number
    `static <E> E` | `random(Collection<E> set)` Returns random element from the given set of elements
    `static int` | `random(int limit)` Returns random number (int) from the set 0 .. limit - 1
    `static double` | `rms(int n, double x, double x2)` Root mean square
    `static void` | `setSeed(long seed)` Sets seeds for `getRandom()` and `random()` methods.
    `static <E> Collection<E>` | `subSet(Collection<E> set, double part)` Returns a randomly generated subset of the given set
    `static <E> Collection<E>` | `subSet(Collection<E> set, double part, int minSize)` Returns a randomly generated subset of the given set
    `static <E> List<E>` | `toList(E... obj)`
    `static String` | `trim(String s, int length)` Trim a string to have given length

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

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

- - ### Constructor Detail

    - #### ToolBox

          public ToolBox()

  - ### Method Detail

    - #### random

          public static int random(int limit)

      Returns random number (int) from the set 0 .. limit - 1

    - #### random

          public static <E> E random(Collection<E> set)

      Returns random element from the given set of elements

    - #### subSet

          public static <E> Collection<E> subSet(Collection<E> set,
                                                 double part)

      Returns a randomly generated subset of the given set
      Parameters:
        `set` - set
        `part` - probability of selection of an element into the resultant subset

    - #### subSet

          public static <E> Collection<E> subSet(Collection<E> set,
                                                 double part,
                                                 int minSize)

      Returns a randomly generated subset of the given set
      Parameters:
        `set` - set
        `part` - probability of selection of an element into the resultant subset
        `minSize` - minimal size of the returned subset

    - #### trim

          public static String trim(String s,
                                    int length)

      Trim a string to have given length

    - #### col2string

          public static String col2string(Collection<?> col,
                                          int tab)

      Multiline representation of a colection

    - #### dict2string

          public static <K,V> String dict2string(Map<K,V> dict,
                                                 int tab)

      Multiline representation of a dictionary

    - #### rms

          public static double rms(int n,
                                   double x,
                                   double x2)

      Root mean square
      Parameters:
        `n` - number of tests
        `x` - total value of all tests
        `x2` - total value^2 of all tests

    - #### merge

          public static <E> void merge(List<E> target,
                                       Collection<E> source)

      Merge source with target

    - #### intersect

          public static <E> List<E> intersect(Collection<E> source1,
                                              Collection<E> source2)

      Returns intersection of two collections

    - #### setSeed

          public static void setSeed(long seed)

      Sets seeds for `getRandom()` and `random()` methods.

    - #### getSeed

          public static long getSeed()

      Gets current seed

    - #### getRandom

          public static Random getRandom()

      Gets random number generator

    - #### random

          public static double random()

      Generates random double number

    - #### configureLogging

          public static void configureLogging()

      Configurates log4j loging

    - #### configureLogging

          public static String configureLogging(String logDir,
                                                Properties properties)

      Configurates log4j loging
      Parameters:
        `logDir` - output folder
        `properties` - some other log4j properties

    - #### configureLogging

          public static String configureLogging(String logDir,
                                                Properties properties,
                                                boolean timeInFileName)

    - #### configureLogging

          public static String configureLogging(String logDir,
                                                Properties properties,
                                                boolean timeInFileName,
                                                boolean includeSystemOuts)

      Configurates log4j loging
      Parameters:
        `logDir` - output folder
        `properties` - some other log4j properties
        `timeInFileName` - if true log file is named debug_yyyy-MM-dd_(HH.mm.ss).log, it is named debug.log otherwise

    - #### loadProperties

          public static DataProperties loadProperties(File propertyFile)

      Loads data properties. If there is INCLUDE property available, it is interpreted as semi-colon separated list of porperty files which should be also loaded (works recursively).

    - #### equals

          public static boolean equals(Object o1,
                                       Object o2)

    - #### toList

          public static <E> List<E> toList(E... obj)