protected int[] readAMF3VectorInt() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (int[])storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... int[] vector = new int[lengthOrIndex]; storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector[i] = readInt(); return vector; }
protected long[] readAMF3VectorUint() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (long[])storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... long[] vector = new long[lengthOrIndex]; storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector[i] = (readInt() & 0xffffffffL); return vector; }
protected double[] readAMF3VectorNumber() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (double[])storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... double[] vector = new double[lengthOrIndex]; storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector[i] = readDouble(); return vector; }
protected int[] readAMF3VectorInt() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (int[])storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... int[] vector = new int[lengthOrIndex]; storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector[i] = readInt(); return vector; }
protected double[] readAMF3VectorNumber() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (double[])storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... double[] vector = new double[lengthOrIndex]; storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector[i] = readDouble(); return vector; }
protected int[] readAMF3VectorInt() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (int[])storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... int[] vector = new int[lengthOrIndex]; storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector[i] = readInt(); return vector; }
protected long[] readAMF3VectorUint() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (long[])storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... long[] vector = new long[lengthOrIndex]; storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector[i] = (readInt() & 0xffffffffL); return vector; }
protected long[] readAMF3VectorUint() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (long[])storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... long[] vector = new long[lengthOrIndex]; storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector[i] = (readInt() & 0xffffffffL); return vector; }
protected double[] readAMF3VectorNumber() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (double[])storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... double[] vector = new double[lengthOrIndex]; storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector[i] = readDouble(); return vector; }
@SuppressWarnings("unchecked") protected List<Object> readAMF3VectorObject() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (List<Object>)storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... readAMF3String(); // component class name: unused... List<Object> vector = new ArrayList<Object>(lengthOrIndex); storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector.add(readObject()); return vector; }
@SuppressWarnings("unchecked") protected List<Object> readAMF3VectorObject() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (List<Object>)storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... readAMF3String(); // component class name: unused... List<Object> vector = new ArrayList<Object>(lengthOrIndex); storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector.add(readObject()); return vector; }
@SuppressWarnings("unchecked") protected List<Object> readAMF3VectorObject() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored vector. return (List<Object>)storedObjects.get(lengthOrIndex); readByte(); // fixed flag: unused... readAMF3String(); // component class name: unused... List<Object> vector = new ArrayList<Object>(lengthOrIndex); storedObjects.add(vector); for (int i = 0; i < lengthOrIndex; i++) vector.add(readObject()); return vector; }
@SuppressWarnings("unchecked") protected Map<Object, Object> readAMF3Dictionary() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored dictionary. return (Map<Object, Object>)storedObjects.get(lengthOrIndex); readByte(); // weak keys flag: unused... // AS3 Dictionary doesn't have a strict Java equivalent: use an HashMap, which // could (unlikely) lead to duplicated keys collision... Map<Object, Object> dictionary = new HashMap<Object, Object>(lengthOrIndex); storedObjects.add(dictionary); for (int i = 0; i < lengthOrIndex; i++) { Object key = readObject(); Object value = readObject(); dictionary.put(key, value); } return dictionary; }
@SuppressWarnings("unchecked") protected Map<Object, Object> readAMF3Dictionary() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored dictionary. return (Map<Object, Object>)storedObjects.get(lengthOrIndex); readByte(); // weak keys flag: unused... // AS3 Dictionary doesn't have a strict Java equivalent: use an HashMap, which // could (unlikely) lead to duplicated keys collision... Map<Object, Object> dictionary = new HashMap<Object, Object>(lengthOrIndex); storedObjects.add(dictionary); for (int i = 0; i < lengthOrIndex; i++) { Object key = readObject(); Object value = readObject(); dictionary.put(key, value); } return dictionary; }
@SuppressWarnings("unchecked") protected Map<Object, Object> readAMF3Dictionary() throws IOException { final int type = readAMF3UnsignedInteger(); final int lengthOrIndex = type >>> 1; if ((type & 0x01) == 0) // stored dictionary. return (Map<Object, Object>)storedObjects.get(lengthOrIndex); readByte(); // weak keys flag: unused... // AS3 Dictionary doesn't have a strict Java equivalent: use an HashMap, which // could (unlikely) lead to duplicated keys collision... Map<Object, Object> dictionary = new HashMap<Object, Object>(lengthOrIndex); storedObjects.add(dictionary); for (int i = 0; i < lengthOrIndex; i++) { Object key = readObject(); Object value = readObject(); dictionary.put(key, value); } return dictionary; }
if (debug) log.debug("readAMF3Object() - reading defined properties..."); for (int i = 0; i < desc.getPropertiesCount(); i++) { byte vType = readByte(); Object value = readObject(vType); if (debug) log.debug("readAMF3Object() - setting defined property: %s=%s", desc.getPropertyName(i), value); if (name.length() == 0) break; byte vType = readByte(); Object value = readObject(vType); if (debug) log.debug("readAMF3Object() - setting dynamic property: %s=%s", name, value);