private Object getHCatalogRepositoryValue(
      HCatalogConnection connection, String value, IMetadataTable table, String targetComponent) {
    HadoopClusterConnection hcConnection =
        HCRepositoryUtil.getRelativeHadoopClusterConnection(connection);
    if (hcConnection == null) {
      return null;
    }

    if (EHCatalogRepositoryToComponent.DISTRIBUTION.getRepositoryValue().equals(value)) {
      return hcConnection.getDistribution();
    } else if (EHCatalogRepositoryToComponent.HCAT_VERSION.getRepositoryValue().equals(value)) {
      return hcConnection.getDfVersion();
    } else if (EHCatalogRepositoryToComponent.TEMPLETON_HOST.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          connection, StringUtils.trimToNull(connection.getHostName()));
    } else if (EHCatalogRepositoryToComponent.TEMPLETON_PORT.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          connection, StringUtils.trimToNull(connection.getPort()));
    } else if (EHCatalogRepositoryToComponent.USE_KRB.getRepositoryValue().equals(value)) {
      return hcConnection.isEnableKerberos();
    } else if (EHCatalogRepositoryToComponent.KRB_PRINC.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          connection, StringUtils.trimToNull(connection.getKrbPrincipal()));
    } else if (EHCatalogRepositoryToComponent.KRB_REALM.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          connection, StringUtils.trimToNull(connection.getKrbRealm()));
    } else if (EHCatalogRepositoryToComponent.NAMENODE_PRINCIPAL
        .getRepositoryValue()
        .equals(value)) {
      return getRepositoryValueOfStringType(
          hcConnection, StringUtils.trimToNull(hcConnection.getPrincipal()));
    } else if (EHCatalogRepositoryToComponent.USE_KEYTAB.getRepositoryValue().equals(value)) {
      return hcConnection.isUseKeytab();
    } else if (EHCatalogRepositoryToComponent.KEYTAB_PRINCIPAL.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          hcConnection, StringUtils.trimToNull(hcConnection.getKeytabPrincipal()));
    } else if (EHCatalogRepositoryToComponent.KEYTAB_PATH.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          hcConnection, StringUtils.trimToNull(hcConnection.getKeytab()));
    } else if (EHCatalogRepositoryToComponent.DATABASE_NAME.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          connection, StringUtils.trimToNull(connection.getDatabase()));
    } else if (EHCatalogRepositoryToComponent.USERNAME.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          connection, StringUtils.trimToNull(connection.getUserName()));
    } else if (EHCatalogRepositoryToComponent.ROWSEPARATOR.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          connection, StringUtils.trimToNull(connection.getRowSeparator()));
    } else if (EHCatalogRepositoryToComponent.FIELDSEPARATOR.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          connection, StringUtils.trimToNull(connection.getFieldSeparator()));
    } else if (EHCatalogRepositoryToComponent.LOCAL.getRepositoryValue().equals(value)) {
      return false;
    } else if (EHCatalogRepositoryToComponent.MAPREDUCE.getRepositoryValue().equals(value)) {
      return true;
    } else if (EHCatalogRepositoryToComponent.PIG_VERSION.getRepositoryValue().equals(value)) {
      return hcConnection.getDfVersion();
    } else if (EHCatalogRepositoryToComponent.MAPRED_JOB_TRACKER.getRepositoryValue().equals(value)
        || EHCatalogRepositoryToComponent.MAPRED_RESOURCE_MANAGER.getRepositoryValue().equals(value)
        || EHCatalogRepositoryToComponent.RESOURCE_MANAGER.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          hcConnection, StringUtils.trimToNull(hcConnection.getJobTrackerURI()));
    } else if (EHCatalogRepositoryToComponent.FS_DEFAULT_NAME.getRepositoryValue().equals(value)) {
      return getRepositoryValueOfStringType(
          hcConnection, StringUtils.trimToNull(hcConnection.getNameNodeURI()));
    } else if (EHCatalogRepositoryToComponent.JOBTRACKER_PRINCIPAL
        .getRepositoryValue()
        .equals(value)) {
      return getRepositoryValueOfStringType(
          connection, StringUtils.trimToNull(connection.getKrbPrincipal()));
    } else if (EHCatalogRepositoryToComponent.LOAD.getRepositoryValue().equals(value)) {
      return HCATALOG_LOAD;
    } else if (EHCatalogRepositoryToComponent.STORE.getRepositoryValue().equals(value)) {
      return HCATALOG_STORE;
    } else if (EHCatalogRepositoryToComponent.HADOOP_CUSTOM_JARS
        .getRepositoryValue()
        .equals(value)) {
      if (targetComponent != null && targetComponent.startsWith("tPig")) {
        return hcConnection.getParameters().get(ECustomVersionGroup.PIG_HCATALOG.getName());
      }
      return HCVersionUtil.getCompCustomJarsParamFromRep(hcConnection, ECustomVersionGroup.COMMON);
    } else if (EHCatalogRepositoryToComponent.HADOOP_ADVANCED_PROPERTIES
        .getRepositoryValue()
        .equals(value)) {
      return HadoopRepositoryUtil.getHadoopPropertiesFullList(
          connection, connection.getHadoopProperties(), true);
    }

    return null;
  }