org.gudy.azureus2.core3.util
Class BDecoder

java.lang.Object
  extended by org.gudy.azureus2.core3.util.BDecoder

public class BDecoder
extends java.lang.Object

A set of utility methods to decode a bencoded array of byte into a Map. integer are represented as Long, String as byte[], dictionnaries as Map, and list as List.

Author:
TdC_VgA

Field Summary
static int MAX_BYTE_ARRAY_SIZE
           
 
Constructor Summary
BDecoder()
           
 
Method Summary
static java.util.Map<java.lang.String,java.lang.Object> decode(java.io.BufferedInputStream is)
           
static java.util.Map<java.lang.String,java.lang.Object> decode(byte[] data)
           
static java.util.Map<java.lang.String,java.lang.Object> decode(byte[] data, int offset, int length)
           
 java.util.Map<java.lang.String,java.lang.Object> decodeByteArray(byte[] data)
           
 java.util.Map<java.lang.String,java.lang.Object> decodeByteArray(byte[] data, int offset, int length)
           
 java.util.Map<java.lang.String,java.lang.Object> decodeByteArray(byte[] data, int offset, int length, boolean internKeys)
           
 java.util.Map<java.lang.String,java.lang.Object> decodeByteBuffer(java.nio.ByteBuffer buffer, boolean internKeys)
           
static java.util.Map decodeFromJSON(java.lang.String json)
           
static java.util.List decodeFromJSONArray(java.util.List j_list)
           
static java.util.Map decodeFromJSONObject(java.util.Map<java.lang.Object,java.lang.Object> j_map)
           
 java.util.Map<java.lang.String,java.lang.Object> decodeStream(java.io.BufferedInputStream data)
           
 java.util.Map<java.lang.String,java.lang.Object> decodeStream(java.io.BufferedInputStream data, boolean internKeys)
           
static java.util.List decodeStrings(java.util.List list)
          Decodes byte arrays into strings.
static java.util.Map decodeStrings(java.util.Map map)
          Converts any byte[] entries into UTF-8 strings.
static void main(java.lang.String[] args)
           
static long parseLong(char[] chars, int start, int length)
           
static void print(java.lang.Object obj)
           
static void print(java.io.PrintWriter writer, java.lang.Object obj)
           
 void setRecoveryMode(boolean r)
           
 void setVerifyMapOrder(boolean b)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_BYTE_ARRAY_SIZE

public static final int MAX_BYTE_ARRAY_SIZE
See Also:
Constant Field Values
Constructor Detail

BDecoder

public BDecoder()
Method Detail

decode

public static java.util.Map<java.lang.String,java.lang.Object> decode(byte[] data)
                                                               throws java.io.IOException
Throws:
java.io.IOException

decode

public static java.util.Map<java.lang.String,java.lang.Object> decode(byte[] data,
                                                                      int offset,
                                                                      int length)
                                                               throws java.io.IOException
Throws:
java.io.IOException

decode

public static java.util.Map<java.lang.String,java.lang.Object> decode(java.io.BufferedInputStream is)
                                                               throws java.io.IOException
Throws:
java.io.IOException

decodeByteArray

public java.util.Map<java.lang.String,java.lang.Object> decodeByteArray(byte[] data)
                                                                 throws java.io.IOException
Throws:
java.io.IOException

decodeByteArray

public java.util.Map<java.lang.String,java.lang.Object> decodeByteArray(byte[] data,
                                                                        int offset,
                                                                        int length)
                                                                 throws java.io.IOException
Throws:
java.io.IOException

decodeByteArray

public java.util.Map<java.lang.String,java.lang.Object> decodeByteArray(byte[] data,
                                                                        int offset,
                                                                        int length,
                                                                        boolean internKeys)
                                                                 throws java.io.IOException
Throws:
java.io.IOException

decodeByteBuffer

public java.util.Map<java.lang.String,java.lang.Object> decodeByteBuffer(java.nio.ByteBuffer buffer,
                                                                         boolean internKeys)
                                                                  throws java.io.IOException
Throws:
java.io.IOException

decodeStream

public java.util.Map<java.lang.String,java.lang.Object> decodeStream(java.io.BufferedInputStream data)
                                                              throws java.io.IOException
Throws:
java.io.IOException

decodeStream

public java.util.Map<java.lang.String,java.lang.Object> decodeStream(java.io.BufferedInputStream data,
                                                                     boolean internKeys)
                                                              throws java.io.IOException
Throws:
java.io.IOException

parseLong

public static long parseLong(char[] chars,
                             int start,
                             int length)

setVerifyMapOrder

public void setVerifyMapOrder(boolean b)

setRecoveryMode

public void setRecoveryMode(boolean r)

print

public static void print(java.lang.Object obj)

print

public static void print(java.io.PrintWriter writer,
                         java.lang.Object obj)

decodeStrings

public static java.util.Map decodeStrings(java.util.Map map)
Converts any byte[] entries into UTF-8 strings. REPLACES EXISTING MAP VALUES

Parameters:
map -
Returns:

decodeStrings

public static java.util.List decodeStrings(java.util.List list)
Decodes byte arrays into strings. REPLACES EXISTING LIST VALUES

Parameters:
list -
Returns:
the same list passed in

decodeFromJSONArray

public static java.util.List decodeFromJSONArray(java.util.List j_list)

decodeFromJSONObject

public static java.util.Map decodeFromJSONObject(java.util.Map<java.lang.Object,java.lang.Object> j_map)

decodeFromJSON

public static java.util.Map decodeFromJSON(java.lang.String json)

main

public static void main(java.lang.String[] args)