# Class TABLESWITCH

java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.BranchInstruction
org.apache.bcel.generic.Select
org.apache.bcel.generic.TABLESWITCH

All Implemented Interfaces:
  `Cloneable, InstructionTargeter, StackConsumer, StackProducer, VariableLengthInstruction`

public class TABLESWITCH extends Select
TABLESWITCH - Switch within given range of values, that is, low..high

See Also:
  - `SWITCH`

- ## Field Summary

  ### Fields inherited from class Select

  `fixed_length, indices, match, match_length, padding, targets`

  ### Fields inherited from class BranchInstruction

  `index, position, target`

  ### Fields inherited from class Instruction

  `length, opcode`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TABLESWITCH(int[] match, InstructionHandle[] targets, InstructionHandle defaultTarget)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `accept(Visitor v)`
  Call corresponding visitor method(s).
  `void`
  `dump(DataOutputStream out)`
  Dumps instruction as byte code to stream out.
  `protected void`
  `initFromFile(ByteSequence bytes, boolean wide)`
  Reads needed data (for example index) from file.

  ### Methods inherited from class Select

  `clone, containsTarget, getIndices, getMatchs, getTargets, setTarget, toString, updatePosition, updateTarget`

  ### Methods inherited from class BranchInstruction

  `getIndex, getPosition, getTarget, getTargetOffset, getTargetOffset, setIndex, setPosition, setTarget`

  ### Methods inherited from class Instruction

  `consumeStack, copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, produceStack, readInstruction, setComparator, toString, toString`

  ### Methods inherited from class Object

  `finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface StackConsumer

  `consumeStack`

  ### Methods inherited from interface StackProducer

  `produceStack`

- ## Constructor Details

  - ### TABLESWITCH

    public TABLESWITCH(int[] match, InstructionHandle[] targets, InstructionHandle defaultTarget)
    Parameters:
      `match` - sorted array of match values, match[0] must be low value, match[match_length - 1] high value.
      `targets` - where to branch for matched values.
      `defaultTarget` - default branch.

- ## Method Details

  - ### accept

    public void accept(Visitor v)
    Call corresponding visitor method(s). The order is: Call visitor methods of implemented interfaces first, then call methods according to the class hierarchy in descending order, that is, the most specific visitXXX() call comes last.
    Specified by:
      `accept` in class `Instruction`
    Parameters:
      `v` - Visitor object.

  - ### dump

    public void dump(DataOutputStream out) throws IOException
    Dumps instruction as byte code to stream out.
    Overrides:
      `dump` in class `Select`
    Parameters:
      `out` - Output stream.
    Throws:
      `IOException` - Thrown when an I/O exception of some sort has occurred.

  - ### initFromFile

    protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
    Reads needed data (for example index) from file.
    Overrides:
      `initFromFile` in class `Select`
    Parameters:
      `bytes` - input stream.
      `wide` - wide prefix?
    Throws:
      `IOException` - may be thrown if the implementation needs to read data from the file
    See Also:
      - `InstructionList`