Package org.jboss.classfilewriter.code

# Class LookupSwitchBuilder

java.lang.Object
org.jboss.classfilewriter.code.LookupSwitchBuilder

public class LookupSwitchBuilder extends Object
builder class used to build a lookupswitch statement.

Author:
  Stuart Douglas

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`LookupSwitchBuilder.ValuePair`

## Constructor Summary

Constructors
Constructor
Description
`LookupSwitchBuilder()`
Builds a lookup switch statement with no specified default location.
`LookupSwitchBuilder(CodeLocation defaultLocation)`
Builds a lookup switch statement, specifying the default location

## Method Summary

Modifier and Type
Method
Description
`AtomicReference<BranchEnd>`
`add(int value)`
Adds a value to the table that is at a location yet to be written.
`LookupSwitchBuilder`
`add(int value, CodeLocation location)`
Adds a value to the table
`AtomicReference<BranchEnd>`
`getDefaultBranchEnd()`
`CodeLocation`
`getDefaultLocation()`
`List<LookupSwitchBuilder.ValuePair>`
`getValues()`

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

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

## Constructor Details

### LookupSwitchBuilder

public LookupSwitchBuilder()
Builds a lookup switch statement with no specified default location. When the lookup switch is added to the code attribute a `BranchEnd` will be returned that can be used to set the location.

### LookupSwitchBuilder

public LookupSwitchBuilder(CodeLocation defaultLocation)
Builds a lookup switch statement, specifying the default location

Parameters:
  `defaultLocation` - The default location

## Method Details

### add

public AtomicReference<BranchEnd> add(int value)
Adds a value to the table that is at a location yet to be written. After this lookup switch has been written then the BranchEnd can be retrieved from the returned reference.

Parameters:
  `value` - The value to add to the lookup table
Returns:
  A reference to the BranchEnd that will be created.

### add

public LookupSwitchBuilder add(int value, CodeLocation location)
Adds a value to the table

Parameters:
  `value` - The value to add to the lookup table

### getDefaultLocation

public CodeLocation getDefaultLocation()

### getDefaultBranchEnd

public AtomicReference<BranchEnd> getDefaultBranchEnd()

### getValues

public List<LookupSwitchBuilder.ValuePair> getValues()