com.tc.object.bytecode.hook.impl
Class ArrayManager

java.lang.Object
  extended by com.tc.object.bytecode.hook.impl.ArrayManager

public class ArrayManager
extends java.lang.Object

Global array manager. The basic purpose of this class to maintain the relationship to DSO managed arrays to their respective TCObjectExternal


Method Summary
static void arraycopy(java.lang.Object src, int srcPos, java.lang.Object dest, int destPos, int length)
          Handle System.arraycopy() semantics with managed arrays
static void byteOrBooleanArrayChanged(java.lang.Object array, int index, byte value)
          Indicate that byte or boolean in array changed
static void charArrayChanged(char[] array, int index, char value)
          Indicate that char in array changed
static void charArrayCopy(char[] src, int srcPos, char[] dest, int destPos, int length, TCObjectExternal tcDest)
          Copy char[]
static void doubleArrayChanged(double[] array, int index, double value)
          Indicate that double in array changed
static void floatArrayChanged(float[] array, int index, float value)
          Indicate that float in array changed
static java.lang.Object get(java.lang.Object array, int index)
          For java.lang.reflect.Array.get()
static TCObjectExternal getCloneObject(java.lang.Object array)
          Get TCObjectExternal for a cloned array
static TCObjectExternal getObject(java.lang.Object array)
          Get the TCO for an array
static void intArrayChanged(int[] array, int index, int value)
          Indicate that int in array changed
static void longArrayChanged(long[] array, int index, long value)
          Indicate that long in array changed
static void objectArrayChanged(java.lang.Object[] array, int index, java.lang.Object value)
          Indicate that object in array changed
static void register(java.lang.Object array, TCObjectExternal tco)
          Register an array with its TCO.
static void shortArrayChanged(short[] array, int index, short value)
          Indicate that short in array changed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

register

public static void register(java.lang.Object array,
                            TCObjectExternal tco)
Register an array with its TCO. It is an error to register an array that has already been registered.

Parameters:
array - Array
tco - TCObjectExternal
Throws:
java.lang.NullPointerException - if array or tco are null

getObject

public static TCObjectExternal getObject(java.lang.Object array)
Get the TCO for an array

Parameters:
array - The array instance
Returns:
The TCObjectExternal

getCloneObject

public static TCObjectExternal getCloneObject(java.lang.Object array)
Get TCObjectExternal for a cloned array

Parameters:
array - Array
Returns:
TCObjectExternal

get

public static java.lang.Object get(java.lang.Object array,
                                   int index)
For java.lang.reflect.Array.get()

Parameters:
array - The array
index - Index into the array
Returns:
Item in array at index, boxed to Object if primitive array
Throws:
java.lang.NullPointerException - If array is null
java.lang.IllegalArgumentException - If array is not an array type

objectArrayChanged

public static void objectArrayChanged(java.lang.Object[] array,
                                      int index,
                                      java.lang.Object value)
Indicate that object in array changed

Parameters:
array - The array
index - The index into array
value - The new value

shortArrayChanged

public static void shortArrayChanged(short[] array,
                                     int index,
                                     short value)
Indicate that short in array changed

Parameters:
array - The array
index - The index into array
value - The new value

longArrayChanged

public static void longArrayChanged(long[] array,
                                    int index,
                                    long value)
Indicate that long in array changed

Parameters:
array - The array
index - The index into array
value - The new value

intArrayChanged

public static void intArrayChanged(int[] array,
                                   int index,
                                   int value)
Indicate that int in array changed

Parameters:
array - The array
index - The index into array
value - The new value

floatArrayChanged

public static void floatArrayChanged(float[] array,
                                     int index,
                                     float value)
Indicate that float in array changed

Parameters:
array - The array
index - The index into array
value - The new value

doubleArrayChanged

public static void doubleArrayChanged(double[] array,
                                      int index,
                                      double value)
Indicate that double in array changed

Parameters:
array - The array
index - The index into array
value - The new value

charArrayChanged

public static void charArrayChanged(char[] array,
                                    int index,
                                    char value)
Indicate that char in array changed

Parameters:
array - The array
index - The index into array
value - The new value

byteOrBooleanArrayChanged

public static void byteOrBooleanArrayChanged(java.lang.Object array,
                                             int index,
                                             byte value)
Indicate that byte or boolean in array changed

Parameters:
array - The array
index - The index into array
value - The new value

arraycopy

public static void arraycopy(java.lang.Object src,
                             int srcPos,
                             java.lang.Object dest,
                             int destPos,
                             int length)
Handle System.arraycopy() semantics with managed arrays

Parameters:
src - Source array
srcPos - Start index in source
dest - Destination array
destPos - Destination start index
length - Number of items to copy
Throws:
java.lang.NullPointerException - If src or dest is null

charArrayCopy

public static void charArrayCopy(char[] src,
                                 int srcPos,
                                 char[] dest,
                                 int destPos,
                                 int length,
                                 TCObjectExternal tcDest)
Copy char[]

Parameters:
src - Source array
srcPos - Start in src
dest - Destination array
destPos - Start in dest
length - Number of items to copy
tcDest - TCObjectExternal for dest array


Copyright © 2010 Terracotta, Inc.. All Rights Reserved.