protected Date readAMF3Date() throws IOException { Date result = null; int type = readAMF3Integer(); if ((type & 0x01) == 0) // stored Date result = (Date)getFromStoredObjects(type >> 1); else { result = new Date((long)readDouble()); addToStoredObjects(result); } if (debugMore) logMore.debug("readAMF3Date() -> %s", result); return result; }
protected String readAMF3XmlString() throws IOException { String result = null; int type = readAMF3Integer(); if ((type & 0x01) == 0) // stored object result = (String)getFromStoredObjects(type >> 1); else { byte[] bytes = readBytes(type >> 1); result = new String(bytes, "UTF-8"); addToStoredObjects(result); } if (debugMore) logMore.debug("readAMF3XmlString() -> %s", result); return result; }
protected Object readAMF3VectorInt() throws IOException { Object result = null; int type = readAMF3Integer(); if ((type & 0x01) == 0) // stored vector. result = getFromStoredObjects(type >> 1); else { final int length = type >> 1; List<Integer> vector = new ArrayList<Integer>(length); addToStoredObjects(result); readAMF3Integer(); // always 0x00? for (int i = 0; i < length; i++) vector.add(readInt()); result = vector; } if (debugMore) logMore.debug("readAMF3VectorInt() -> %s", result); return result; }
protected Object readAMF3VectorNumber() throws IOException { Object result = null; int type = readAMF3Integer(); if ((type & 0x01) == 0) // stored vector. result = getFromStoredObjects(type >> 1); else { final int length = type >> 1; List<Double> vector = new ArrayList<Double>(length); addToStoredObjects(result); readAMF3Integer(); // always 0x00? for (int i = 0; i < length; i++) vector.add(readDouble()); result = vector; } if (debugMore) logMore.debug("readAMF3VectorDouble() -> %s", result); return result; }
protected Object readAMF3VectorUInt() throws IOException { Object result = null; int type = readAMF3Integer(); if ((type & 0x01) == 0) // stored vector. result = getFromStoredObjects(type >> 1); else { final int length = type >> 1; List<Long> vector = new ArrayList<Long>(length); addToStoredObjects(result); readAMF3Integer(); // always 0x00? for (int i = 0; i < length; i++) vector.add(readInt() & 0xffffffffL); result = vector; } if (debugMore) logMore.debug("readAMF3VectorUInt() -> %s", result); return result; }
protected byte[] readAMF3ByteArray() throws IOException { byte[] result = null; int type = readAMF3Integer(); if ((type & 0x01) == 0) // stored object. result = (byte[])getFromStoredObjects(type >> 1); else { result = readBytes(type >> 1); addToStoredObjects(result); } if (debugMore) logMore.debug("readAMF3ByteArray() -> %s", result); return result; }
protected Object readAMF3VectorObject() throws IOException { Object result = null; int type = readAMF3Integer(); if ((type & 0x01) == 0) // stored vector. result = getFromStoredObjects(type >> 1); else { final int length = type >> 1; List<Object> vector = new ArrayList<Object>(length); addToStoredObjects(result); readAMF3Integer(); // always 0x00? readAMF3Integer(); // always 0x01? for (int i = 0; i < length; i++) vector.add(readObject()); result = vector; } if (debugMore) logMore.debug("readAMF3VectorObject() -> %s", result); return result; }
protected Object readAMF3Array() throws IOException { Object result = null; int type = readAMF3Integer(); if ((type & 0x01) == 0) // stored array. result = getFromStoredObjects(type >> 1); else { final int size = type >> 1; String key = readAMF3String(); if (key.length() == 0) { Object[] objects = new Object[size]; addToStoredObjects(objects); for (int i = 0; i < size; i++) objects[i] = readObject(); result = objects; } else { Map<Object, Object> map = new HashMap<Object, Object>(); addToStoredObjects(map); while(key.length() > 0) { map.put(key, readObject()); key = readAMF3String(); } for (int i = 0; i < size; i++) map.put(Integer.valueOf(i), readObject()); result = map; } } if (debugMore) logMore.debug("readAMF3Array() -> %s", result); return result; }
result = getFromStoredObjects(type >> 1); else { boolean inlineClassDef = (((type >> 1) & 0x01) != 0);