code: private void harvestReturnValue(
          Object obj,
          CallableStatement callable,
          FieldDescriptor fmd,
          int index)
          throws PersistenceBrokerSQLException
      {
  
          try
          {
              // If we have a field descriptor, then we can harvest
              // the return value.
              if ((callable != null) && (fmd != null) && (obj != null))
              {
                  // Get the value and convert it to it's appropriate
                  // java type.
                  Object value = fmd.getJdbcType().getObjectFromColumn(callable, index);
  
                  // Set the value of the persistent field.
                  fmd.getPersistentField().set(obj, fmd.getFieldConversion().sqlToJava(value));
  
              }
          }
          catch (SQLException e)
          {
              String msg = "SQLException during the execution of harvestReturnValue"
                  + " class="
                  + obj.getClass().getName()
                  + ","
                  + " field="
                  + fmd.getAttributeName()
                  + " : "
                  + e.getMessage();
              logger.error(msg,e);
              throw new PersistenceBrokerSQLException(msg, e);
          }
      }
docs: Harvest a single value that was returned by a callable statement.
  
  @param obj the object that will receive the value that is harvested.
  @param callable the CallableStatement that contains the value to harvest
  @param fmd the FieldDescriptor that identifies the field where the
  harvested value will be stord.
  @param index the parameter index.
  
  @throws PersistenceBrokerSQLException if a problem occurs.