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;
	}
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 ( isNull ( info ) ) info = undefinedOperation ( ) ; boolean conversionMethodExists = conversionAnalyzer . fieldsToCheck ( destination , source ) ; OperationType operationType = info . getOperationType ( ) ; if ( operationType . isUndefined ( ) && ! conversionMethodExists ) return true ; if ( conversionMethodExists ) info . setInstructionType ( operationType . isBasic ( ) ? OperationType . BASIC_CONVERSION : OperationType . CONVERSION ) ; return false ; }
This method analyzes the fields, calculates the info and returns true if operation is undefined.
@param destination destination field
@param source source field
@return returns true if an operation between fields exists
@see InfoOperation