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 .