private void writeUnregisteredType()

in protonj2/src/main/java/org/apache/qpid/protonj2/codec/encoders/ProtonEncoder.java [670:707]


    private void writeUnregisteredType(ProtonBuffer buffer, EncoderState state, Object value) {
        if (value.getClass().isArray()) {
            Class<?> componentType = value.getClass().getComponentType();
            if (componentType.isPrimitive()) {
                if (componentType == Boolean.TYPE) {
                    writeArray(buffer, state, (boolean[]) value);
                } else if (componentType == Byte.TYPE) {
                    writeArray(buffer, state, (byte[]) value);
                } else if (componentType == Short.TYPE) {
                    writeArray(buffer, state, (short[]) value);
                } else if (componentType == Integer.TYPE) {
                    writeArray(buffer, state, (int[]) value);
                } else if (componentType == Long.TYPE) {
                    writeArray(buffer, state, (long[]) value);
                } else if (componentType == Float.TYPE) {
                    writeArray(buffer, state, (float[]) value);
                } else if (componentType == Double.TYPE) {
                    writeArray(buffer, state, (double[]) value);
                } else if (componentType == Character.TYPE) {
                    writeArray(buffer, state, (char[]) value);
                } else {
                    throw new IllegalArgumentException(
                        "Cannot write arrays of type " + componentType.getName());
                }
            } else {
                writeArray(buffer, state, (Object[]) value);
            }
        } else if (value instanceof List) {
            writeList(buffer, state, (List<Object>) value);
        } else if (value instanceof Map) {
            writeMap(buffer, state, (Map<Object, Object>) value);
        } else if (value instanceof DescribedType) {
            writeDescribedType(buffer, state, (DescribedType) value);
        } else {
            throw new IllegalArgumentException(
                "Do not know how to write Objects of class " + value.getClass().getName());
        }
    }