label.structure_chooser_no_of_structures = Structure Chooser - {0} Found ({1})
info.no_pdb_entry_found_for = No PDB entry found for {0}
exception.unable_to_detect_internet_connection = Jalview is unable to detect an internet connection
-exception.fts_rest_service_no_longer_available = {0} rest services no longer available!
-exception.resource_not_be_found = The requested resource could not be found
-exception.fts_server_error = There seems to be an error from the {0} server
exception.fts_server_unreachable = Jalview is unable to reach the {0} server. \nPlease ensure that you are connected to the internet and try again.
label.nw_mapping = Needleman & Wunsch Alignment
label.sifts_mapping = SIFTs Mapping
action.prev_page= <<
label.next_page_tooltip=Next Page
label.prev_page_tooltip=Previous Page
-exception.bad_request=Bad request. There is a problem with your input.
-exception.service_not_available=Service not available. The server is being updated, try again later.
status.launching_3d_structure_viewer = Launching 3D Structure viewer...
status.fetching_3d_structures_for_selected_entries = Fetching 3D Structures for selected entries...
status.fetching_dbrefs_for_sequences_without_valid_refs = Fetching db refs for {0} sequence(s) without valid db ref required for SIFTS mapping
label.show_selected_annotations=Mostrar anotaciones seleccionadas
status.colouring_chimera=Coloreando Chimera
label.configure_displayed_columns=Configurar Columnas Mostradas
-exception.resource_not_be_found=El recurso solicitado no se ha encontrado
label.aacon_calculations=cálculos AACon
label.pdb_web-service_error=Error de servicio web PDB
exception.unable_to_detect_internet_connection=Jalview no puede detectar una conexión a Internet
exception.outofmemory_loading_mmcif_file=Sin memoria al cargar el fichero mmCIF
label.hide_columns_not_containing=Ocultar las columnas que no contengan
label.pdb_sequence_fetcher=Recuperador de secuencias PDB
-exception.fts_server_error=Parece que hay un error desde el servidor {0}
-exception.service_not_available=Servicio no disponible. El servidor se está actualizando, vuelva a intentarlo más tarde.
status.waiting_for_user_to_select_output_file=Esperando que el usuario seleccione el fichero {0}
action.prev_page=<<
status.cancelled_image_export_operation=Operación de exportación {0} cancelada
label.couldnt_run_groovy_script=No se ha podido ejecutar el script Groovy
-exception.bad_request=Solicitud incorrecta. Hay un problema con su entrada.
label.run_groovy=Ejecutar script Groovy desde la consola
action.next_page=>>
label.uniprot_sequence_fetcher=Recuperador de secuencias UniProt
label.sifts_mapping=Mapeado SIFTs
label.mapping_method=Método de mapeo de secuencia \u27F7 estructura
info.error_creating_file=Error al crear fichero {0}
-exception.fts_rest_service_no_longer_available= Servicios Rest {0} ya no están disponibles!
status.launching_3d_structure_viewer=Lanzando visualizador de estructura 3D...
status.obtaining_mapping_with_sifts=Obteniendo mapeo por SIFTS
status.fetching_3d_structures_for=Buscando la estructura 3D para {0}
*/
public abstract class FTSRestClient implements FTSRestClientI
{
- protected Collection<FTSDataColumnI> dataColumns = new ArrayList<FTSDataColumnI>();
+ protected Collection<FTSDataColumnI> dataColumns = new ArrayList<>();
- protected Collection<FTSDataColumnGroupI> dataColumnGroups = new ArrayList<FTSDataColumnGroupI>();
+ protected Collection<FTSDataColumnGroupI> dataColumnGroups = new ArrayList<>();
- protected Collection<FTSDataColumnI> searchableDataColumns = new ArrayList<FTSDataColumnI>();
+ protected Collection<FTSDataColumnI> searchableDataColumns = new ArrayList<>();
- protected Collection<FTSDataColumnI> defaulDisplayedDataColumns = new ArrayList<FTSDataColumnI>();
+ protected Collection<FTSDataColumnI> defaulDisplayedDataColumns = new ArrayList<>();
protected FTSDataColumnI primaryKeyColumn;
throw new Exception("Couldn't find data column group with id : " + id);
}
- public String getMessageByHTTPStatusCode(int code, String service)
+ public static String getMessageByHTTPStatusCode(int code, String service)
{
String message = "";
switch (code)
{
case 400:
- message = MessageManager.getString("exception.bad_request");
+ message = "Bad request. There is a problem with your input.";
break;
case 410:
message = MessageManager.formatMessage(
- "exception.fts_rest_service_no_longer_available", service);
+ service + " rest services no longer available!");
break;
case 403:
case 404:
- message = MessageManager.getString("exception.resource_not_be_found");
+ message = "The requested resource could not be found";
break;
case 408:
case 409:
case 502:
case 504:
case 505:
- message = MessageManager.formatMessage("exception.fts_server_error",
- service);
+ message = "There seems to be an error from the " + service
+ + " server";
break;
case 503:
- message = MessageManager.getString("exception.service_not_available");
+ message = "Service not available. The server is being updated, try again later.";
break;
default:
break;
}
- return message;
+ return String.valueOf(code) + " " + message;
}
protected String getResourceFile(String fileName)
// System.out.println("query >>>>>>> " + pdbRestRequest.toString());
// Check the response status and report exception if one occurs
- if (clientResponse.getStatus() != 200)
+ int responseStatus = clientResponse.getStatus();
+ if (responseStatus != 200)
{
String errorMessage = "";
- if (clientResponse.getStatus() == 400)
+ if (responseStatus == 400)
{
errorMessage = parseJsonExceptionString(responseString);
throw new Exception(errorMessage);
else
{
errorMessage = getMessageByHTTPStatusCode(
- clientResponse.getStatus(), "PDB");
+ responseStatus, "PDB");
throw new Exception(errorMessage);
}
}
boolean isUniProtRefsFound = false;
StringBuilder queryBuilder = new StringBuilder();
Set<String> seqRefs = new LinkedHashSet<>();
+
+ /*
+ * note PDBs as DBRefEntry so they are not duplicated in query
+ */
+ Set<String> pdbids = new HashSet<>();
if (seq.getAllPDBEntries() != null
&& queryBuilder.length() < MAX_QLENGTH)
{
if (isValidSeqName(entry.getId()))
{
- queryBuilder.append("pdb_id:").append(entry.getId().toLowerCase())
- .append(" OR ");
+ String id = entry.getId().toLowerCase();
+ queryBuilder.append("pdb_id:").append(id).append(" OR ");
isPDBRefsFound = true;
+ pdbids.add(id);
}
}
}
else if (dbRef.getSource().equalsIgnoreCase(DBRefSource.PDB))
{
- queryBuilder.append("pdb_id:")
- .append(getDBRefId(dbRef).toLowerCase()).append(" OR ");
- isPDBRefsFound = true;
+ String id = getDBRefId(dbRef).toLowerCase();
+ if (!pdbids.contains(id))
+ {
+ queryBuilder.append("pdb_id:").append(id).append(" OR ");
+ isPDBRefsFound = true;
+ pdbids.add(id);
+ }
}
else
{