public Object decodeObject(NSCoder coder) { String type = _decodeUTF8(coder); switch (type.charAt(0)) { case 'c': return new Byte(coder.decodeByte()); case 's': return new Short(coder.decodeShort()); case 'i': return new Integer(coder.decodeInt()); case 'l': return new Long(coder.decodeLong()); case 'f': return new Float(coder.decodeFloat()); case 'd': return new Double(coder.decodeDouble()); case 'e': case 'g': case 'h': case 'j': case 'k': case 'm': case 'n': case 'o': case 'p': case 'q': case 'r': } throw new IllegalStateException("decodeObject: unsupported number type: " + type); }