public class AMFDataObj extends AMFData implements IAMFDataObj
AMFDataObj: class for marshalling data between Wowza Pro server and Flash client. Object with attributes. Implementation is very similar to a java.util.Map. Each parameter is an item in the map.
AMFDataObj amfDataObj = new AMFDataObj();
amfDataObj.put("key1", "item1");
amfDataObj.put("key2", "item2");
amfDataObj.put("key3", "item3");
AMFDataObj amfDataObj;
List keys = amfDataObj.getKeys();
Iterator iter = keys.iterator();
while(iter.hasNext())
{
String key = (String)iter.next();
AMFData value = amfDataObj.get(key);
int itemType = value.getType();
WMSLoggerFactory.getLogger(null).debug(key+"="+value.toString()+" (type:"+itemType+")");
}
AMFDataObj amfDataObj;
// If you know the type you can access it directly
String dataString = amfDataObj.getString("stringData");
long dataLong = amfDataObj.getLong("longData");
double dataDouble = amfDataObj.getDouble("doubleData");
boolean dataBoolean = amfDataObj.getBoolean("booleanData");
// This illustrate how to decode the value if
// you don't know the type
AMFData myItemKey1 = amfDataObj.get("theData");
switch (myItemKey1.getType())
{
default:
case AMFDataItem.DATA_TYPE_UNDEFINED:
case AMFDataItem.DATA_TYPE_UNKNOWN:
case AMFDataItem.DATA_TYPE_NULL:
// the value is null or undefined
break;
case AMFDataItem.DATA_TYPE_NUMBER:
double amfDataDouble = ((AMFDataItem)myItemKey1).doubleValue();
break;
case AMFDataItem.DATA_TYPE_BOOLEAN:
boolean amfDataBoolean = ((AMFDataItem)myItemKey1).booleanValue();
break;
case AMFDataItem.DATA_TYPE_STRING:
String amfDataString = ((AMFDataItem)myItemKey1).toString();
break;
case AMFDataItem.DATA_TYPE_DATE:
Date amfDataDate = ((AMFDataItem)myItemKey1).dateValue();
break;
case AMFDataItem.DATA_TYPE_OBJECT:
AMFDataObj amfDataValObj = (AMFDataObj)myItemKey1;
break;
case AMFDataItem.DATA_TYPE_MIXED_ARRAY:
AMFDataMixedArray amfDataMixedArray = (AMFDataMixedArray)myItemKey1;
break;
case AMFDataItem.DATA_TYPE_ARRAY:
AMFDataArray amfDataArray = (AMFDataArray)myItemKey1;
break;
}
NOTE: A AMFDataObj is exactly the same as a AMFDataMixedArray except its type is DATA_TYPE_OBJECT.
| Modifier and Type | Field and Description |
|---|---|
static int |
DECODE_OBJ_REF |
static int |
DECODE_TRAITS |
static int |
DECODE_TRAITS_EXT |
static int |
DECODE_TRAITS_REF |
static int |
DECODE_UNDEFINED |
protected java.util.Map<String,AMFData> |
members |
protected java.util.List<String> |
order |
protected IAMFExternalizable |
serializer |
protected AMFDataTrait |
trait |
AMF_DEFAULT_DESERIALIZE_CHARSETNAME, AMF_LEVEL0, AMF_LEVEL3, DATA_TYPE_AMF3, DATA_TYPE_AMF3_ARRAY, DATA_TYPE_AMF3_BOOLEAN_FALSE, DATA_TYPE_AMF3_BOOLEAN_TRUE, DATA_TYPE_AMF3_BYTEARRAY, DATA_TYPE_AMF3_DATE, DATA_TYPE_AMF3_INTEGER, DATA_TYPE_AMF3_NULL, DATA_TYPE_AMF3_NUMBER, DATA_TYPE_AMF3_OBJECT, DATA_TYPE_AMF3_STRING, DATA_TYPE_AMF3_UNDEFINED, DATA_TYPE_AMF3_XML_LEGACY, DATA_TYPE_AMF3_XML_TOP, DATA_TYPE_ARRAY, DATA_TYPE_AS_OBJECT, DATA_TYPE_BOOLEAN, DATA_TYPE_BYTEARRAY, DATA_TYPE_CUSTOM_CLASS, DATA_TYPE_DATE, DATA_TYPE_INTEGER, DATA_TYPE_LONG_STRING, DATA_TYPE_MIXED_ARRAY, DATA_TYPE_MOVIE_CLIP, DATA_TYPE_NULL, DATA_TYPE_NUMBER, DATA_TYPE_OBJECT, DATA_TYPE_OBJECT_END, DATA_TYPE_RECORDSET, DATA_TYPE_REFERENCE_OBJECT, DATA_TYPE_STRING, DATA_TYPE_UNDEFINED, DATA_TYPE_UNKNOWN, DATA_TYPE_XML, DATA_TYPE_XML_TOP, MILLS_PER_HOUR, type| Constructor and Description |
|---|
AMFDataObj()
Create empty AMFDataObj object
|
AMFDataObj(byte[] data)
Deserialize entire data array and create AMFDataObj object
|
AMFDataObj(byte[] data,
int offset,
int size)
Deserialize data array starting at offest for size bytes and create AMFDataObj object
|
AMFDataObj(java.nio.ByteBuffer data)
Deserialize entire data array and create AMFDataObj object
|
AMFDataObj(java.nio.ByteBuffer data,
AMFDataContextDeserialize context) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
containsKey(String name)
Return true if the object/array contains key
|
void |
deserialize(java.nio.ByteBuffer data)
Deserialize data in byte buffer
|
void |
deserialize(java.nio.ByteBuffer data,
AMFDataContextDeserialize context)
Deserialize data in byte buffer
|
AMFData |
get(int index)
Return the object at a particular index.
|
AMFData |
get(String name)
Return the object at a particular key.
|
boolean |
getBoolean(int index)
Get item at index return as boolean
|
boolean |
getBoolean(String name)
Get item at key return as boolean
|
byte |
getByte(int index)
Get item at index return as byte
|
byte |
getByte(String name)
Get item at key return as byte
|
String |
getClassName() |
java.util.Date |
getDate(int index)
Get item at index return as Date
|
java.util.Date |
getDate(String name)
Get item at key return as Date
|
double |
getDouble(int index)
Get item at index return as double
|
double |
getDouble(String name)
Get item at key return as double
|
float |
getFloat(int index)
Get item at index return as float
|
float |
getFloat(String name)
Get item at key return as float
|
int |
getInt(int index)
Get item at index return as int
|
int |
getInt(String name)
Get item at key return as int
|
String |
getKey(int index)
Return the key at a particular index.
|
java.util.List |
getKeys()
Return a list of all the keys (the list is a copy)
|
long |
getLong(int index)
Get item at index return as long
|
long |
getLong(String name)
Get item at key return as long
|
AMFDataObj |
getObject(int index)
Get item at index return as AMFDataObj
|
AMFDataObj |
getObject(String name)
Get item at key return as AMFDataObj
|
IAMFExternalizable |
getSerializer() |
short |
getShort(int index)
Get item at index return as short
|
short |
getShort(String name)
Get item at key return as short
|
String |
getString(int index)
Get item at index return as String
|
String |
getString(String name)
Get item at key return as String
|
AMFDataTrait |
getTrait() |
Object |
getValue()
Convert object to Java native class
|
void |
put(String name,
AMFData data)
Put or replace object at key
|
void |
put(String name,
boolean data)
Put or replace boolean value at key (data will be wrapped in an AMFDataItem object)
|
void |
put(String name,
java.util.Date data)
Put or replace date value at key (data will be wrapped in an AMFDataItem object)
|
void |
put(String name,
double data)
Put or replace double value at key (data will be wrapped in an AMFDataItem object)
|
void |
put(String name,
int data)
Put or replace int value at key (data will be wrapped in an AMFDataItem object)
|
void |
put(String name,
long data)
Put or replace long value at key (data will be wrapped in an AMFDataItem object)
|
void |
put(String name,
String data)
Put or replace string value at key (data will be wrapped in an AMFDataItem object)
|
AMFData |
remove(int index)
Remove element by index
|
AMFData |
remove(String name)
Remove element by key
|
byte[] |
serialize()
Serial object to byte array
|
byte[] |
serialize(AMFDataContextSerialize context)
Serial object to byte array
|
void |
serialize(java.io.DataOutputStream out)
Serialize object to output stream
|
void |
serialize(java.io.DataOutputStream out,
AMFDataContextSerialize context)
Serialize object to output stream
|
void |
serialize(java.io.DataOutputStream out,
int objectEncoding)
Serialize object to output stream
|
byte[] |
serialize(int objectEncoding)
Serial object to byte array
|
void |
setClassName(String className) |
void |
setSerializer(IAMFExternalizable serializer) |
int |
size()
Return the number of members of this object/array
|
String |
toString()
Return object as formatted string
|
createContextDeserialize, createContextDeserialize, createContextSerialize, createContextSerialize, deserializeInnerObject, getReference, getType, isAMF3Start, isArrayStart, isByteArrayStart, isMixedArrayStart, isObjEnd, isObjStart, peekByte, setType, skipByte, testNextByte, triggerAMF3Switchpublic static final int DECODE_OBJ_REF
public static final int DECODE_TRAITS
public static final int DECODE_TRAITS_EXT
public static final int DECODE_TRAITS_REF
public static final int DECODE_UNDEFINED
protected java.util.Map<String,AMFData> members
protected java.util.List<String> order
protected IAMFExternalizable serializer
protected AMFDataTrait trait
public AMFDataObj()
public AMFDataObj(byte[] data)
data - binary datapublic AMFDataObj(byte[] data,
int offset,
int size)
data - binary dataoffset - starting offset into datasize - size of data to deserializepublic AMFDataObj(java.nio.ByteBuffer data)
data - binary datapublic AMFDataObj(java.nio.ByteBuffer data,
AMFDataContextDeserialize context)
public boolean containsKey(String name)
IAMFDataObjcontainsKey in interface IAMFDataObjname - keypublic void deserialize(java.nio.ByteBuffer data)
AMFDatadeserialize in class AMFDatadata - binary datapublic void deserialize(java.nio.ByteBuffer data,
AMFDataContextDeserialize context)
AMFDatadeserialize in class AMFDatadata - binary datacontext - deserialization context used by AMF3public AMFData get(int index)
IAMFDataObjget in interface IAMFDataObjindex - indexpublic AMFData get(String name)
IAMFDataObjget in interface IAMFDataObjname - keypublic boolean getBoolean(int index)
IAMFDataObjgetBoolean in interface IAMFDataObjindex - indexpublic boolean getBoolean(String name)
IAMFDataObjgetBoolean in interface IAMFDataObjname - keypublic byte getByte(int index)
IAMFDataObjgetByte in interface IAMFDataObjindex - indexpublic byte getByte(String name)
IAMFDataObjgetByte in interface IAMFDataObjname - keypublic String getClassName()
public java.util.Date getDate(int index)
IAMFDataObjgetDate in interface IAMFDataObjindex - indexpublic java.util.Date getDate(String name)
IAMFDataObjgetDate in interface IAMFDataObjname - keypublic double getDouble(int index)
IAMFDataObjgetDouble in interface IAMFDataObjindex - indexpublic double getDouble(String name)
IAMFDataObjgetDouble in interface IAMFDataObjname - keypublic float getFloat(int index)
IAMFDataObjgetFloat in interface IAMFDataObjindex - indexpublic float getFloat(String name)
IAMFDataObjgetFloat in interface IAMFDataObjname - keypublic int getInt(int index)
IAMFDataObjgetInt in interface IAMFDataObjindex - indexpublic int getInt(String name)
IAMFDataObjgetInt in interface IAMFDataObjname - keypublic String getKey(int index)
IAMFDataObjgetKey in interface IAMFDataObjpublic java.util.List getKeys()
IAMFDataObjgetKeys in interface IAMFDataObjpublic long getLong(int index)
IAMFDataObjgetLong in interface IAMFDataObjindex - indexpublic long getLong(String name)
IAMFDataObjgetLong in interface IAMFDataObjname - keypublic AMFDataObj getObject(int index)
IAMFDataObjgetObject in interface IAMFDataObjindex - indexpublic AMFDataObj getObject(String name)
IAMFDataObjgetObject in interface IAMFDataObjname - keypublic IAMFExternalizable getSerializer()
public short getShort(int index)
IAMFDataObjgetShort in interface IAMFDataObjindex - indexpublic short getShort(String name)
IAMFDataObjgetShort in interface IAMFDataObjname - keypublic String getString(int index)
IAMFDataObjgetString in interface IAMFDataObjindex - indexpublic String getString(String name)
IAMFDataObjgetString in interface IAMFDataObjname - keypublic AMFDataTrait getTrait()
public Object getValue()
AMFDatapublic void put(String name,
AMFData data)
IAMFDataObjput in interface IAMFDataObjname - keydata - objectpublic void put(String name,
boolean data)
IAMFDataObjput in interface IAMFDataObjname - keydata - boolean valuepublic void put(String name,
java.util.Date data)
IAMFDataObjput in interface IAMFDataObjname - keydata - date valuepublic void put(String name,
double data)
IAMFDataObjput in interface IAMFDataObjname - keydata - double valuepublic void put(String name,
int data)
IAMFDataObjput in interface IAMFDataObjname - keydata - int valuepublic void put(String name,
long data)
IAMFDataObjput in interface IAMFDataObjname - keydata - long valuepublic void put(String name,
String data)
IAMFDataObjput in interface IAMFDataObjname - keydata - string valuepublic AMFData remove(int index)
IAMFDataObjremove in interface IAMFDataObjindex - indexpublic AMFData remove(String name)
IAMFDataObjremove in interface IAMFDataObjname - keypublic byte[] serialize()
AMFDatapublic byte[] serialize(AMFDataContextSerialize context)
AMFDatapublic void serialize(java.io.DataOutputStream out)
AMFDatapublic void serialize(java.io.DataOutputStream out,
AMFDataContextSerialize context)
AMFDatapublic void serialize(java.io.DataOutputStream out,
int objectEncoding)
AMFDatapublic byte[] serialize(int objectEncoding)
AMFDatapublic void setClassName(String className)
public void setSerializer(IAMFExternalizable serializer)
public int size()
public String toString()
toString in class Object