## org.klomp.snark.bencode
Class BEValue

    java.lang.Object
      org.klomp.snark.bencode.BEValue

    public class BEValue

extends Object

Holds different types that a bencoded byte array can represent. You need to call the correct get method to get the correct java type object. If the BEValue wasn't actually of the requested type you will get a InvalidBEncodingException.

Author:
  Mark Wielaard (mark@klomp.org)

Constructor Summary
`BEValue(byte[] value)`
`BEValue(List value)`
`BEValue(Map value)`
`BEValue(Number value)`

Method Summary
`byte[]` `getBytes()` Returns this BEValue as a byte[].
`int` `getInt()` Returns this BEValue as int.
`List<BEValue>` `getList()` Returns this BEValue as a List of BEValues.
`long` `getLong()` Returns this BEValue as long.
`Map<String,BEValue>` `getMap()` Returns this BEValue as a Map of BEValue keys and BEValue values.
`Number` `getNumber()` Returns this BEValue as a Number.
`String` `getString()` Returns this BEValue as a String.
`Object` `getValue()` return the untyped value
`String` `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### BEValue

    public BEValue(byte[] value)

### BEValue

    public BEValue(Number value)

### BEValue

    public BEValue(List value)

### BEValue

    public BEValue(Map value)

Method Detail

### getString

    public String getString()
                     throws InvalidBEncodingException

  Returns this BEValue as a String. This operation only succeeds when the BEValue is a byte[], otherwise it will throw a InvalidBEncodingException. The byte[] will be interpreted as UTF-8 encoded characters.

  Throws:
    `InvalidBEncodingException`

### getBytes

    public byte[] getBytes()
                    throws InvalidBEncodingException

  Returns this BEValue as a byte[]. This operation only succeeds when the BEValue is actually a byte[], otherwise it will throw a InvalidBEncodingException.

  Throws:
    `InvalidBEncodingException`

### getNumber

    public Number getNumber()
                     throws InvalidBEncodingException

  Returns this BEValue as a Number. This operation only succeeds when the BEValue is actually a Number, otherwise it will throw a InvalidBEncodingException.

  Throws:
    `InvalidBEncodingException`

### getInt

    public int getInt()
               throws InvalidBEncodingException

  Returns this BEValue as int. This operation only succeeds when the BEValue is actually a Number, otherwise it will throw a InvalidBEncodingException. The returned int is the result of `Number.intValue()`.

  Throws:
    `InvalidBEncodingException`

### getLong

    public long getLong()
                 throws InvalidBEncodingException

  Returns this BEValue as long. This operation only succeeds when the BEValue is actually a Number, otherwise it will throw a InvalidBEncodingException. The returned long is the result of `Number.longValue()`.

  Throws:
    `InvalidBEncodingException`

### getList

    public List<BEValue> getList()
                          throws InvalidBEncodingException

  Returns this BEValue as a List of BEValues. This operation only succeeds when the BEValue is actually a List, otherwise it will throw a InvalidBEncodingException.

  Throws:
    `InvalidBEncodingException`

### getMap

    public Map<String,BEValue> getMap()
                               throws InvalidBEncodingException

  Returns this BEValue as a Map of BEValue keys and BEValue values. This operation only succeeds when the BEValue is actually a Map, otherwise it will throw a InvalidBEncodingException.

  Throws:
    `InvalidBEncodingException`

### getValue

    public Object getValue()

  return the untyped value

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`