code: @Override
      public <E> List<E> getForeignKeysFromJoinTable(String schemaName, String joinTableName, Object rowKey,
              String inverseJoinColumnName)
      {
          List<E> foreignKeys = new ArrayList<E>();
          Table hTable = null;
          String tableName = HBaseUtils.getHTableName(schemaName, joinTableName);
          try
          {
              hTable = gethTable(tableName);
              List<HBaseDataWrapper> results = hbaseReader.loadData(hTable, rowKey, null, null, joinTableName,
                      getFilter(joinTableName), null);
              if (results != null && !results.isEmpty())
              {
                  HBaseDataWrapper data = results.get(0);
                  Map<String, byte[]> hbaseValues = data.getColumns();
                  Set<String> columnNames = hbaseValues.keySet();
                  for (String columnName : columnNames)
                  {
                      if (columnName.startsWith(HBaseUtils.getColumnDataKey(joinTableName, inverseJoinColumnName)))
                      {
                          byte[] columnValue = data.getColumnValue(columnName);
                          String hbaseColumnValue = Bytes.toString(columnValue);
                          foreignKeys.add((E) hbaseColumnValue);
                      }
                  }
              }
          }
          catch (IOException e)
          {
              return foreignKeys;
          }
          finally
          {
              try
              {
                  if (hTable != null)
                  {
                      closeHTable(hTable);
                  }
              }
              catch (IOException e)
              {
                  logger.error("Error in closing hTable, caused by: ", e);
              }
          }
          return foreignKeys;
      }
docs: /*
  (non-Javadoc)
  
  @see
  com.impetus.client.hbase.admin.DataHandler#getForeignKeysFromJoinTable
  (java.lang.String, java.lang.String, java.lang.String)