# Platform Module

## Method Overview

Method | Description
--- | ---
adapt() | Adapt object to target type.
executeCommand() | Execute a command from the command framework.
getService() | Get a platform service.
getSystemProperty() | Get a system property value
postEvent() | Post an event on the event broker.
readPreferences() | Read a preferences value.
runProcess() | Run an external process.
waitForEvent() | Wait for a given event on the event bus.
writePreferences() | Set a preferences value.

## Methods

### adapt

java.lang.Object adapt(java.lang.Object source, java.lang.Class target)

Adapt object to target type. Try to get an adapter for an object.

Parameter | Type | Description
--- | --- | ---
source | java.lang.Object | object to adapt
target | java.lang.Class | target class to adapt to

Returns:java.lang.Object ... adapted object or `null`

### executeCommand

void executeCommand(java.lang.String commandId, [java.util.Map parameters])

Execute a command from the command framework. As we have no UI available, we do not pass a control to the command. Hence HandlerUtil.getActive... commands will very likely fail.

Parameter | Type | Description
--- | --- | ---
commandId | java.lang.String | full id of the command to execute
parameters | java.util.Map | command parameters Optional: defaults to <null>.

### getService

java.lang.Object getService(java.lang.Class type)

Get a platform service.

Parameter | Type | Description
--- | --- | ---
type | java.lang.Class | service type

Returns:java.lang.Object ... service instance or `null`

### getSystemProperty

java.lang.String getSystemProperty(java.lang.String key)

Get a system property value

Parameter | Type | Description
--- | --- | ---
key | java.lang.String | key to query

Returns:java.lang.String ... system property for key

### postEvent

void postEvent(java.lang.String topic, [java.lang.Object data], [long delay])

Post an event on the event broker. If delay is set, the event will be posted after the given amount of time asynchronously. In any case this method returns immediately.

Parameter | Type | Description
--- | --- | ---
topic | java.lang.String | topic to post
data | java.lang.Object | topic data Optional: defaults to <null>.
delay | long | delay to post this even in [ms] Optional: defaults to <0>.

### readPreferences

java.lang.Object readPreferences(java.lang.String node, java.lang.String key, [java.lang.Object defaultValue])

Read a preferences value. The defaultValue is optional, but contains type information if used. Provide instances of Boolean, Integer, Double, Float, Long, byte[], or String to get the appropriate return value of same type.

Parameter | Type | Description
--- | --- | ---
node | java.lang.String | node to read from
key | java.lang.String | key name to read from
defaultValue | java.lang.Object | default value to use, if value is not set Optional: defaults to <"">.

Returns:java.lang.Object ...

### runProcess

org.eclipse.ease.modules.platform.Future runProcess(java.lang.String name, [java.lang.String args])

Run an external process. The process is started in the background and a Future object is returned. Query the result for finished state, output and error streams of the executed process.

Parameter | Type | Description
--- | --- | ---
name | java.lang.String | program to run (with full path if necessary)
args | java.lang.String | program arguments Optional: defaults to <null>.

Returns:org.eclipse.ease.modules.platform.Future ... Future object tracking the program

### waitForEvent

org.osgi.service.event.Event waitForEvent(java.lang.String topic, [long timeout])

Wait for a given event on the event bus.

Parameter | Type | Description
--- | --- | ---
topic | java.lang.String | topic to subscribe for
timeout | long | maximum time to wait for event in [ms]. Use 0 to wait without timeout. Optional: defaults to <0>.

Returns:org.osgi.service.event.Event ... posted event or `null` in case of a timeout

### writePreferences

void writePreferences(java.lang.String node, java.lang.String key, java.lang.Object value)

Set a preferences value. Valid types for value are: Boolean, Integer, Double, Float, Long, byte[], and String.

Parameter | Type | Description
--- | --- | ---
node | java.lang.String | node to write to
key | java.lang.String | key to store to
value | java.lang.Object | value to store