public boolean isUndefined ( final Field destination , final Field source ) { info = null ; for ( IOperationAnalyzer analyzer : analyzers ) if ( analyzer . verifyConditions ( destination , source ) ) info = analyzer . getInfoOperation ( destination , source ) ; // if the operation has not been identified if ( isNull ( info ) ) info = undefinedOperation ( ) ; boolean conversionMethodExists = conversionAnalyzer . fieldsToCheck ( destination , source ) ; OperationType operationType = info . getOperationType ( ) ; if ( operationType . isUndefined ( ) && ! conversionMethodExists ) return true ; if ( conversionMethodExists ) // explicit conversion between primitive types info . setInstructionType ( operationType . isBasic ( ) ? OperationType . BASIC_CONVERSION // explicit conversion between complex types : OperationType . CONVERSION ) ; return false ; }
This method analyzes the fields calculates the info and returns true if operation is undefined .