Package org.jcsp.plugNplay

# Class Printer

java.lang.Object
org.jcsp.plugNplay.Printer

All Implemented Interfaces:
  `CSProcess`

public class Printer extends Object implements CSProcess
Prints each `Object` from its input channel to a `PrintStream`.

## Process Diagram

## Description

`Printer` is a process for printing each object from its `in` channel to a `PrintStream` object (by default, `System.out`).

For convenience, `Printer` may be configured with prefix and postfix strings with which to decorate its output.

## Channel Protocols

Input Channels
in | java.lang.Object | The in Channel can accept data of any Class.

## Example

See the example in `Merge`.

Author:
  P.H. Welch and P.D. Austin
See Also:
  - `Parallel`

## Constructor Summary

Constructors
Constructor
Description
`Printer(ChannelInput in)`
Construct a new `Printer` with `System.out` as its `PrintStream` and empty prefix and postfix strings.
`Printer(ChannelInput in, PrintStream printStream)`
Construct a new `Printer` with empty prefix and postfix strings.
`Printer(ChannelInput in, PrintStream printStream, String prefix, String postfix)`
Construct a new `Printer`.
`Printer(ChannelInput in, String prefix, String postfix)`
Construct a new `Printer` with `System.out` as its `PrintStream`.

## Method Summary

Modifier and Type
Method
Description
`void`
`run()`
The main body of this process.

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

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

## Constructor Details

### Printer

public Printer(ChannelInput in)
Construct a new `Printer` with `System.out` as its `PrintStream` and empty prefix and postfix strings.

Parameters:
  `in` - the channel from which to read

### Printer

public Printer(ChannelInput in, String prefix, String postfix)
Construct a new `Printer` with `System.out` as its `PrintStream`.

Parameters:
  `in` - the channel from which to read
  `prefix` - the string to write in front of each object
  `postfix` - the string to write after each object

### Printer

public Printer(ChannelInput in, PrintStream printStream)
Construct a new `Printer` with empty prefix and postfix strings.

Parameters:
  `in` - the channel from which to read
  `printStream` - the stream to which to write

### Printer

public Printer(ChannelInput in, PrintStream printStream, String prefix, String postfix)
Construct a new `Printer`.

Parameters:
  `in` - he channel from which to read
  `printStream` - the stream to which to write
  `prefix` - the string to write in front of each object
  `postfix` - the string to write after each object

## Method Details

### run

public void run()
The main body of this process.

Specified by:
  `run` in interface `CSProcess`