iiop-openjdk/src/main/java/org/wildfly/iiop/openjdk/rmi/marshal/CDRStream.java
public static CDRStreamReader readerFor(Class clz) {
        if (clz == Boolean.TYPE) {
            return BooleanReader.instance;
        } else if (clz == Byte.TYPE) {
            return ByteReader.instance;
        } else if (clz == Character.TYPE) {
            return CharReader.instance;
        } else if (clz == Double.TYPE) {
            return DoubleReader.instance;
        } else if (clz == Float.TYPE) {
            return FloatReader.instance;
        } else if (clz == Integer.TYPE) {
            return IntReader.instance;
        } else if (clz == Long.TYPE) {
            return LongReader.instance;
        } else if (clz == Short.TYPE) {
            return ShortReader.instance;
        } else if (clz == Void.TYPE) {
            return null;
        } else if (clz == String.class) {
            return StringReader.instance;
        } else if (RmiIdlUtil.isRMIIDLRemoteInterface(clz)) {
            return new RemoteReader(clz);
        } else if (clz == org.omg.CORBA.Object.class) {
            return CorbaObjectReader.instance;
        } else if (org.omg.CORBA.Object.class.isAssignableFrom(clz)) {
            return new IdlInterfaceReader(clz);
        } else if (IDLEntity.class.isAssignableFrom(clz)) {
            return new ValuetypeReader(clz);
        } else if (clz == Serializable.class) {
            return SerializableReader.instance;
        } else if (RmiIdlUtil.isAbstractInterface(clz)) {
            return AbstractInterfaceReader.instance;
        } else if (Serializable.class.isAssignableFrom(clz)) {
            return new ValuetypeReader(clz);
        } else if (Externalizable.class.isAssignableFrom(clz)) {
            return ExternalizableReader.instance;
        } else if (clz == Object.class) {
            return ObjectReader.instance;
        } else {
            return new ValuetypeReader(clz);
        }
    }
public static CDRStreamReader readerFor(Class clz) {
        if (clz == Boolean.TYPE) {
            return BooleanReader.instance;
        } else if (clz == Byte.TYPE) {
            return ByteReader.instance;
        } else if (clz == Character.TYPE) {
            return CharReader.instance;
        } else if (clz == Double.TYPE) {
            return DoubleReader.instance;
        } else if (clz == Float.TYPE) {
            return FloatReader.instance;
        } else if (clz == Integer.TYPE) {
            return IntReader.instance;
        } else if (clz == Long.TYPE) {
            return LongReader.instance;
        } else if (clz == Short.TYPE) {
            return ShortReader.instance;
        } else if (clz == Void.TYPE) {
            return null;
        } else if (clz == String.class) {
            return StringReader.instance;
        } else if (RmiIdlUtil.isRMIIDLRemoteInterface(clz)) {
            return new RemoteReader(clz);
        } else if (clz == org.omg.CORBA.Object.class) {
            return CorbaObjectReader.instance;
        } else if (org.omg.CORBA.Object.class.isAssignableFrom(clz)) {
            return new IdlInterfaceReader(clz);
        } else if (IDLEntity.class.isAssignableFrom(clz)) {
            return new ValuetypeReader(clz);
        } else if (clz == Serializable.class) {
            return SerializableReader.instance;
        } else if (RmiIdlUtil.isAbstractInterface(clz)) {
            return AbstractInterfaceReader.instance;
        } else if (Serializable.class.isAssignableFrom(clz)) {
            return new ValuetypeReader(clz);
        } else if (Externalizable.class.isAssignableFrom(clz)) {
            return ExternalizableReader.instance;
        } else if (clz == Object.class) {
            return ObjectReader.instance;
        } else {
            return new ValuetypeReader(clz);
        }
    }
Returns the <code>CDRStreamReader</code> for a given <code>Class</code>.