Package org.jcsp.lang

# Class InlineAlternative

java.lang.Object
org.jcsp.lang.Guard
org.jcsp.lang.InlineAlternative

public class InlineAlternative extends Guard
This class is experimental (i.e. not properly documented yet). It is intended to allow `Alternative`s to be nested.

Author:
  Quickstone Technologies Limited

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`MODE_ARBITRARY`
Flags to control behaviour of this ALT if used as a guard.
`static final int`
`MODE_FAIR`
Flags to control behaviour of this ALT if used as a guard.
`static final int`
`MODE_PRI`
Flags to control behaviour of this ALT if used as a guard.

## Constructor Summary

Constructors
Constructor
Description
`InlineAlternative(Guard[] guards)`
Creates a new one
`InlineAlternative(Guard[] guards, int mode)`
Creates a new one

## Method Summary

Modifier and Type
Method
Description
`int`
`fairSelect()`
Creates an Alternative (if needed) and delegates the call to it.
`Guard`
`getGuardByIndex(int index)`
Returns the guard object at a given index.
`int`
`getSelected()`
Returns the index of the guard obtained by a call to select() or if this guard became ready within its parent ALT.
`Guard`
`getSelectedGuard()`
Returns the actual guard object corresponding to the selected guard.
`int`
`priSelect()`
Creates an Alternative (if needed) and delegates the call to it.
`int`
`select()`
Creates an Alternative (if needed) and delegates the call to it.
`void`
`setPreconditionByIndex(int index, boolean on)`
Alters the precondition on a guard.
`void`
`setPreconditions(boolean[] precons)`
Establishes a precondition array that will be used by default in calls to select().

### Methods inherited from class org.jcsp.lang.Guard

`schedule`

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

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

## Field Details

### MODE_ARBITRARY

public static final int MODE_ARBITRARY
Flags to control behaviour of this ALT if used as a guard.

See Also:
  - Constant Field Values

### MODE_FAIR

public static final int MODE_FAIR
Flags to control behaviour of this ALT if used as a guard.

See Also:
  - Constant Field Values

### MODE_PRI

public static final int MODE_PRI
Flags to control behaviour of this ALT if used as a guard.

See Also:
  - Constant Field Values

## Constructor Details

### InlineAlternative

public InlineAlternative(Guard[] guards)
Creates a new one

### InlineAlternative

public InlineAlternative(Guard[] guards, int mode)
Creates a new one

## Method Details

### getSelected

public int getSelected()
Returns the index of the guard obtained by a call to select() or if this guard became ready within its parent ALT.

### setPreconditions

public void setPreconditions(boolean[] precons)
Establishes a precondition array that will be used by default in calls to select(). This is useful when the ALT is used as a guard within another ALT.

### setPreconditionByIndex

public void setPreconditionByIndex(int index, boolean on)
Alters the precondition on a guard.

### getSelectedGuard

public Guard getSelectedGuard()
Returns the actual guard object corresponding to the selected guard. For example it can return the channel or the ALT object.

### getGuardByIndex

public Guard getGuardByIndex(int index)
Returns the guard object at a given index. For example to obtain a channel or ALT object.

### select

public int select()
Creates an Alternative (if needed) and delegates the call to it.

### priSelect

public int priSelect()
Creates an Alternative (if needed) and delegates the call to it.

### fairSelect

public int fairSelect()
Creates an Alternative (if needed) and delegates the call to it.