Package org.h2.util

# Class Tool

java.lang.Object
org.h2.util.Tool

Direct Known Subclasses:
  `Backup`, `ChangeFileEncryption`, `Console`, `ConvertTraceFile`, `CreateCluster`, `DeleteDbFiles`, `FileShell`, `FileViewer`, `FtpServer`, `Recover`, `Restore`, `RunScript`, `Script`, `Server`, `Shell`

public abstract class Tool extends Object
Command line tools implement the tool interface so that they can be used in the H2 Console.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected PrintStream`
`out`
The output stream where this tool writes to.

## Constructor Summary

Constructors
Constructor
Description
`Tool()`

## Method Summary

Modifier and Type
Method
Description
`protected String`
`getMainClassName()`
Returns main class name of the tool.
`static boolean`
`isOption(String arg, String option)`
Check if the argument matches the option.
`protected void`
`printNoDatabaseFilesFound(String dir, String db)`
Print to the output stream that no database files have been found.
`abstract void`
`runTool(String... args)`
Run the tool with the given output stream and arguments.
`void`
`setOut(PrintStream out)`
Sets the standard output stream.
`protected void`
`showUsage()`
Print the usage of the tool.
`protected SQLException`
`showUsageAndThrowUnsupportedOption(String option)`
Throw a SQLException saying this command line option is not supported.
`protected SQLException`
`throwUnsupportedOption(String option)`
Throw a SQLException saying this command line option is not supported.

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

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

## Field Details

### out

protected PrintStream out
The output stream where this tool writes to.

## Constructor Details

### Tool

public Tool()

## Method Details

### setOut

public void setOut(PrintStream out)
Sets the standard output stream.

Parameters:
  `out` - the new standard output stream

### runTool

public abstract void runTool(String... args) throws SQLException
Run the tool with the given output stream and arguments.

Parameters:
  `args` - the argument list
Throws:
  `SQLException` - on failure

### showUsageAndThrowUnsupportedOption

protected SQLException showUsageAndThrowUnsupportedOption(String option) throws SQLException
Throw a SQLException saying this command line option is not supported.

Parameters:
  `option` - the unsupported option
Returns:
  this method never returns normally
Throws:
  `SQLException` - on failure

### throwUnsupportedOption

protected SQLException throwUnsupportedOption(String option) throws SQLException
Throw a SQLException saying this command line option is not supported.

Parameters:
  `option` - the unsupported option
Returns:
  this method never returns normally
Throws:
  `SQLException` - on failure

### printNoDatabaseFilesFound

protected void printNoDatabaseFilesFound(String dir, String db)
Print to the output stream that no database files have been found.

Parameters:
  `dir` - the directory or null
  `db` - the database name or null

### showUsage

protected void showUsage()
Print the usage of the tool. This method reads the description from the resource file.

### getMainClassName

protected String getMainClassName()
Returns main class name of the tool.

Returns:
  the name of the main class

### isOption

public static boolean isOption(String arg, String option)
Check if the argument matches the option. If the argument starts with this option, but doesn't match, then an exception is thrown.

Parameters:
  `arg` - the argument
  `option` - the command line option
Returns:
  true if it matches