private void harvestReturnValues ( ProcedureDescriptor proc , Object obj , PreparedStatement stmt ) throws PersistenceBrokerSQLException { // If the procedure descriptor is null or has no return values or // if the statement is not a callable statment, then we're done. if ( ( proc == null ) || ( ! proc . hasReturnValues ( ) ) ) { return ; } // Set up the callable statement CallableStatement callable = ( CallableStatement ) stmt ; // This is the index that we'll use to harvest the return value(s). int index = 0 ; // If the proc has a return value, then try to harvest it. if ( proc . hasReturnValue ( ) ) { // Increment the index index ++ ; // Harvest the value. this . harvestReturnValue ( obj , callable , proc . getReturnValueFieldRef ( ) , index ) ; } // Check each argument. If it's returned by the procedure, // then harvest the value. Iterator iter = proc . getArguments ( ) . iterator ( ) ; while ( iter . hasNext ( ) ) { index ++ ; ArgumentDescriptor arg = ( ArgumentDescriptor ) iter . next ( ) ; if ( arg . getIsReturnedByProcedure ( ) ) { this . harvestReturnValue ( obj , callable , arg . getFieldRef ( ) , index ) ; } } }
Harvest any values that may have been returned during the execution of a procedure .