iiop-openjdk/src/main/java/org/wildfly/iiop/openjdk/rmi/ir/InterfaceRepository.java
private void addClass(Class cls)
            throws RMIIIOPViolationException, IRConstructionException {
        if (cls.isPrimitive())
            return; // No need to add primitives.

        if (cls.isArray()) {
            // Add array mapping
            addArray(cls);
        } else if (cls.isInterface()) {
            if (!RmiIdlUtil.isAbstractValueType(cls)) {
                // Analyse the interface
                InterfaceAnalysis ia = InterfaceAnalysis.getInterfaceAnalysis(cls);

                // Add analyzed interface (which may be abstract)
                addInterface(ia);
            } else {
                // Analyse the value
                ValueAnalysis va = ValueAnalysis.getValueAnalysis(cls);

                // Add analyzed value
                addValue(va);
            }
        } else if (Exception.class.isAssignableFrom(cls)) { // Exception type.
            // Analyse the exception
            ExceptionAnalysis ea = ExceptionAnalysis.getExceptionAnalysis(cls);

            // Add analyzed exception
            addException(ea);
        } else { // Got to be a value type.
            // Analyse the value
            ValueAnalysis va = ValueAnalysis.getValueAnalysis(cls);

            // Add analyzed value
            addValue(va);
        }
    }
private void addClass(Class cls)
            throws RMIIIOPViolationException, IRConstructionException {
        if (cls.isPrimitive())
            return; // No need to add primitives.

        if (cls.isArray()) {
            // Add array mapping
            addArray(cls);
        } else if (cls.isInterface()) {
            if (!RmiIdlUtil.isAbstractValueType(cls)) {
                // Analyse the interface
                InterfaceAnalysis ia = InterfaceAnalysis.getInterfaceAnalysis(cls);

                // Add analyzed interface (which may be abstract)
                addInterface(ia);
            } else {
                // Analyse the value
                ValueAnalysis va = ValueAnalysis.getValueAnalysis(cls);

                // Add analyzed value
                addValue(va);
            }
        } else if (Exception.class.isAssignableFrom(cls)) { // Exception type.
            // Analyse the exception
            ExceptionAnalysis ea = ExceptionAnalysis.getExceptionAnalysis(cls);

            // Add analyzed exception
            addException(ea);
        } else { // Got to be a value type.
            // Analyse the value
            ValueAnalysis va = ValueAnalysis.getValueAnalysis(cls);

            // Add analyzed value
            addValue(va);
        }
    }
Map the class and add its IIOP mapping to the repository.