{
    // Get the adapter from the factory.
    //
    ITableItemLabelProvider tableItemLabelProvider = (ITableItemLabelProvider)adapterFactory.adapt(object, ITableItemLabelProviderClass);

    // No image is a good default.
    //
    Image result = null;

    // Now we could check that the adapter implements interface ITableItemLabelProvider.
    //
    if (tableItemLabelProvider  != null)
    {
      // And delegate the call.
      //
      result = getImageFromObject(tableItemLabelProvider.getColumnImage(object, columnIndex));
    }
    // Otherwise, we could check that the adapter implements interface IItemLabelProvider.
    //
    else 
    {
      IItemLabelProvider itemLabelProvider = (IItemLabelProvider)adapterFactory.adapt(object, IItemLabelProviderClass);
      if (itemLabelProvider != null)
      {
        // And delegate the call.
        //
        result = getImageFromObject(itemLabelProvider.getImage(object));
      }
    }

    return result;
  }