src/main/java/org/jivesoftware/smack/util/PacketParserUtils.java
private static Object decode(Class<?> type, String value) throws Exception {
        if (type.getName().equals("java.lang.String")) {
            return value;
        }
        if (type.getName().equals("boolean")) {
            return Boolean.valueOf(value);
        }
        if (type.getName().equals("int")) {
            return Integer.valueOf(value);
        }
        if (type.getName().equals("long")) {
            return Long.valueOf(value);
        }
        if (type.getName().equals("float")) {
            return Float.valueOf(value);
        }
        if (type.getName().equals("double")) {
            return Double.valueOf(value);
        }
        if (type.getName().equals("java.lang.Class")) {
            return Class.forName(value);
        }
        return null;
    }
private static Object decode(Class<?> type, String value) throws Exception {
        if (type.getName().equals("java.lang.String")) {
            return value;
        }
        if (type.getName().equals("boolean")) {
            return Boolean.valueOf(value);
        }
        if (type.getName().equals("int")) {
            return Integer.valueOf(value);
        }
        if (type.getName().equals("long")) {
            return Long.valueOf(value);
        }
        if (type.getName().equals("float")) {
            return Float.valueOf(value);
        }
        if (type.getName().equals("double")) {
            return Double.valueOf(value);
        }
        if (type.getName().equals("java.lang.Class")) {
            return Class.forName(value);
        }
        return null;
    }
private static Object decode ( Class < ? > type , String value ) throws Exception { if ( type . getName ( ) . equals ( "java.lang.String" ) ) { return value ; } if ( type . getName ( ) . equals ( "boolean" ) ) { return Boolean . valueOf ( value ) ; } if ( type . getName ( ) . equals ( "int" ) ) { return Integer . valueOf ( value ) ; } if ( type . getName ( ) . equals ( "long" ) ) { return Long . valueOf ( value ) ; } if ( type . getName ( ) . equals ( "float" ) ) { return Float . valueOf ( value ) ; } if ( type . getName ( ) . equals ( "double" ) ) { return Double . valueOf ( value ) ; } if ( type . getName ( ) . equals ( "java.lang.Class" ) ) { return Class . forName ( value ) ; } return null ; }
Decodes a String into an object of the specified type. If the object type
is not supported, null will be returned.

@param type
the type of the property.
@param value
the encode String value to decode.
@return the String value decoded into the specified type.
@throws Exception
If decoding failed due to an error.
Decodes a String into an object of the specified type . If the object type is not supported null will be returned .