Package org.eclipse.ui.console

# Class IOConsole

java.lang.Object
org.eclipse.ui.console.AbstractConsole
org.eclipse.ui.console.TextConsole
org.eclipse.ui.console.IOConsole

All Implemented Interfaces:
  `IConsole`

Direct Known Subclasses:
  `MessageConsole`

public class IOConsole extends TextConsole
A console that displays text from I/O streams. An I/O console can have multiple output streams connected to it and provides one input stream connected to the keyboard.

Clients may instantiate and subclass this class.

Since:
  3.1

## Constructor Summary

Constructors
Constructor
Description
`IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor)`
Constructs a console with the given name, type, and image with the workbench's default encoding.
`IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor, boolean autoLifecycle)`
Constructs a console with the given name, type, image, and lifecycle, with the workbench's default encoding.
`IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor, String encoding, boolean autoLifecycle)`
Constructs a console with the given name, type, image, encoding and lifecycle.
`IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor, Charset charset, boolean autoLifecycle)`
Constructs a console with the given name, type, image, encoding and lifecycle.
`IOConsole(String name, ImageDescriptor imageDescriptor)`
Constructs a console with the given name and image.

## Method Summary

Modifier and Type
Method
Description
`void`
`clearConsole()`
Clears the console.
`IPageBookViewPage`
`createPage(IConsoleView view)`
Creates and returns a new page for this console.
`protected void`
`dispose()`
Disposes this console.
`Charset`
`getCharset()`
Returns the Charset for this console.
`String`
`getEncoding()`
Returns the encoding for this console.
`int`
`getHighWaterMark()`
Returns the maximum number of characters that the console will display at once.
`IOConsoleInputStream`
`getInputStream()`
Returns the input stream connected to the keyboard.
`int`
`getLowWaterMark()`
Returns the number of characters that will remain in this console when its high water mark is exceeded.
`protected IConsoleDocumentPartitioner`
`getPartitioner()`
Returns this console's document partitioner.
`boolean`
`isCarriageReturnAsControlCharacter()`
Check if carriage returns (`\r`) in console output are interpreted as control characters.
`boolean`
`isHandleControlCharacters()`
Check if console currently interprets ASCII control characters.
`IOConsoleOutputStream`
`newOutputStream()`
Creates and returns a new output stream which may be used to write to this console.
`void`
`setCarriageReturnAsControlCharacter(boolean carriageReturnAsControlCharacter)`
If control characters in console output are interpreted by this console carriage returns (`\r`) are either ignored (`false`) and usually handled as line break by connected console document or if `true` interpreted with there control character meaning.
`void`
`setHandleControlCharacters(boolean handleControlCharacters)`
Enable or disable interpretation of ASCII control characters like backspace (`\b`).
`void`
`setInputStream(InputStream inputStream)`
Sets the new input stream.
`void`
`setWaterMarks(int low, int high)`
Sets the text buffer size for this console.

### Methods inherited from class org.eclipse.ui.console.TextConsole

`addHyperlink, addPatternMatchListener, getAttribute, getBackground, getConsoleWidth, getDocument, getFont, getHyperlink, getHyperlinks, getRegion, getSchedulingRule, getTabWidth, init, isConsoleAutoScrollLock, matcherFinished, partitionerFinished, removePatternMatchListener, setAttribute, setBackgrond, setBackground, setConsoleAutoScrollLock, setConsoleWidth, setFont, setTabWidth`

### Methods inherited from class org.eclipse.ui.console.AbstractConsole

`activate, addPropertyChangeListener, destroy, firePropertyChange, getHelpContextId, getImageDescriptor, getName, getType, initialize, removePropertyChangeListener, setImageDescriptor, setName, setType`

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

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

## Constructor Details

### IOConsole

public IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor, boolean autoLifecycle)
Constructs a console with the given name, type, image, and lifecycle, with the workbench's default encoding.

Parameters:
  `name` - name to display for this console
  `consoleType` - console type identifier or `null`
  `imageDescriptor` - image to display for this console or `null`
  `autoLifecycle` - whether lifecycle methods should be called automatically when this console is added/removed from the console manager

### IOConsole

public IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor, String encoding, boolean autoLifecycle)
Constructs a console with the given name, type, image, encoding and lifecycle.

Parameters:
  `name` - name to display for this console
  `consoleType` - console type identifier or `null`
  `imageDescriptor` - image to display for this console or `null`
  `encoding` - the encoding that should be used to render the text, or `null` if the system default encoding should be used
  `autoLifecycle` - whether lifecycle methods should be called automatically when this console is added/removed from the console manager

### IOConsole

public IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor, Charset charset, boolean autoLifecycle)
Constructs a console with the given name, type, image, encoding and lifecycle.

Parameters:
  `name` - name to display for this console
  `consoleType` - console type identifier or `null`
  `imageDescriptor` - image to display for this console or `null`
  `charset` - the encoding that should be used to render the text, must not be `null`
  `autoLifecycle` - whether lifecycle methods should be called automatically when this console is added/removed from the console manager
Since:
  3.7

### IOConsole

public IOConsole(String name, String consoleType, ImageDescriptor imageDescriptor)
Constructs a console with the given name, type, and image with the workbench's default encoding. Lifecycle methods will be called when this console is added/removed from the console manager.

Parameters:
  `name` - name to display for this console
  `consoleType` - console type identifier or `null`
  `imageDescriptor` - image to display for this console or `null`

### IOConsole

public IOConsole(String name, ImageDescriptor imageDescriptor)
Constructs a console with the given name and image. Lifecycle methods will be called when this console is added/removed from the console manager. This console will have an unspecified (`null`) type.

Parameters:
  `name` - name to display for this console
  `imageDescriptor` - image to display for this console or `null`

## Method Details

### createPage

public IPageBookViewPage createPage(IConsoleView view)
Description copied from interface: `IConsole`
Creates and returns a new page for this console. The page is displayed for this console in the console given view.

Specified by:
  `createPage` in interface `IConsole`
Overrides:
  `createPage` in class `TextConsole`
Parameters:
  `view` - the view in which the page is to be created
Returns:
  a page book view page representation of this console

### newOutputStream

public IOConsoleOutputStream newOutputStream()
Creates and returns a new output stream which may be used to write to this console. A console may be connected to more than one output stream at once. Clients are responsible for closing any output streams created on this console.

Clients should avoid writing large amounts of output to this stream in the UI thread. The console needs to process the output in the UI thread and if the client hogs the UI thread writing output to the console, the console will not be able to process the output.

Returns:
  a new output stream connected to this console

### getInputStream

public IOConsoleInputStream getInputStream()
Returns the input stream connected to the keyboard.

Note: It returns the stream connected to keyboard. There is no guarantee to get the stream last set with `setInputStream(InputStream)`. The return value might be `null` if the current input stream is not connected to the keyboard.

Returns:
  the input stream connected to the keyboard.

### setInputStream

public void setInputStream(InputStream inputStream)
Sets the new input stream.

Parameters:
  `inputStream` - the input stream
Since:
  3.6

### getPartitioner

protected IConsoleDocumentPartitioner getPartitioner()
Returns this console's document partitioner.

Specified by:
  `getPartitioner` in class `TextConsole`
Returns:
  this console's document partitioner

### getHighWaterMark

public int getHighWaterMark()
Returns the maximum number of characters that the console will display at once. This is analogous to the size of the text buffer this console maintains.

Returns:
  the maximum number of characters that the console will display

### getLowWaterMark

public int getLowWaterMark()
Returns the number of characters that will remain in this console when its high water mark is exceeded.

Returns:
  the number of characters that will remain in this console when its high water mark is exceeded

### setWaterMarks

public void setWaterMarks(int low, int high)
Sets the text buffer size for this console. The high water mark indicates the maximum number of characters stored in the buffer. The low water mark indicates the number of characters remaining in the buffer when the high water mark is exceeded.

Parameters:
  `low` - the number of characters remaining in the buffer when the high water mark is exceeded (if -1 the console does not limit output)
  `high` - the maximum number of characters this console will cache in its text buffer (if -1 the console does not limit output)
Throws:
  `IllegalArgumentException` - if low >= high & low != -1

### clearConsole

public void clearConsole()
Description copied from class: `TextConsole`
Clears the console.

Since a console may or may not support direct manipulation of its document's contents, this method should be called to clear a text console's document. The default implementation sets this console's document content to the empty string directly. Subclasses should override as required.

Overrides:
  `clearConsole` in class `TextConsole`

### dispose

protected void dispose()
Disposes this console.

Overrides:
  `dispose` in class `TextConsole`

### getEncoding

public String getEncoding()
Returns the encoding for this console.

Returns:
  the encoding set for this console
Since:
  3.3

### getCharset

public Charset getCharset()
Returns the Charset for this console.

Returns:
  the Charset for this console
Since:
  3.7

### isHandleControlCharacters

public boolean isHandleControlCharacters()
Check if console currently interprets ASCII control characters.

Returns:
  `true` if console interprets ASCII control characters
Since:
  3.9

### setHandleControlCharacters

public void setHandleControlCharacters(boolean handleControlCharacters)
Enable or disable interpretation of ASCII control characters like backspace (`\b`).

Parameters:
  `handleControlCharacters` - interpret control characters if `true`
Since:
  3.9

### isCarriageReturnAsControlCharacter

public boolean isCarriageReturnAsControlCharacter()
Check if carriage returns (`\r`) in console output are interpreted as control characters. They are also not interpreted if general control character handling is disabled.

Returns:
  if `true` carriage returns are interpreted as control characters.
Since:
  3.9
See Also:
  - `isHandleControlCharacters()`

### setCarriageReturnAsControlCharacter

public void setCarriageReturnAsControlCharacter(boolean carriageReturnAsControlCharacter)
If control characters in console output are interpreted by this console carriage returns (`\r`) are either ignored (`false`) and usually handled as line break by connected console document or if `true` interpreted with there control character meaning.

Note: this option has no effect if control character interpretation is disabled in general.

Parameters:
  `carriageReturnAsControlCharacter` - set `false` to exclude carriage return from control character interpretation
Since:
  3.9
See Also:
  - `setHandleControlCharacters(boolean)`