in core/src/main/java/flex/messaging/io/amf/Amf3Input.java [130:225]
protected Object readObjectValue(int type) throws ClassNotFoundException, IOException {
Object value = null;
switch (type) {
case kStringType:
ClassUtil.validateCreation(String.class);
value = readString();
if (isDebug)
trace.writeString((String) value);
break;
case kObjectType:
value = readScriptObject();
break;
case kArrayType:
value = readArray();
break;
case kFalseType:
ClassUtil.validateCreation(Boolean.class);
value = Boolean.FALSE;
if (isDebug)
trace.write(value);
break;
case kTrueType:
ClassUtil.validateCreation(Boolean.class);
value = Boolean.TRUE;
if (isDebug)
trace.write(value);
break;
case kIntegerType:
ClassUtil.validateCreation(Integer.class);
int i = readUInt29();
// Symmetric with writing an integer to fix sign bits for negative values...
i = (i << 3) >> 3;
value = new Integer(i);
if (isDebug)
trace.write(value);
break;
case kDoubleType:
value = Double.valueOf(readDouble());
break;
case kUndefinedType:
if (isDebug)
trace.writeUndefined();
break;
case kNullType:
if (isDebug)
trace.writeNull();
break;
case kXMLType:
case kAvmPlusXmlType:
value = readXml();
break;
case kDateType:
value = readDate();
break;
case kByteArrayType:
value = readByteArray();
break;
case kDictionaryType:
value = readDictionary();
break;
case kTypedVectorInt:
case kTypedVectorUint:
case kTypedVectorDouble:
case kTypedVectorObject:
value = readTypedVector(type);
break;
default:
// Unknown object type tag {type}
UnknownTypeException ex = new UnknownTypeException();
ex.setMessage(10301, new Object[]{new Integer(type)});
throw ex;
}
return value;
}