private static final int PDB_ATOM_POS = 1;
- private static final String NOT_FOUND = "Not_Found";
-
private static final String NOT_OBSERVED = "Not_Observed";
- private static final String SIFTS_FTP_BASE_URL = "ftp://ftp.ebi.ac.uk/pub/databases/msd/sifts/xml/";
+ private static final String SIFTS_FTP_BASE_URL = "http://ftp.ebi.ac.uk/pub/databases/msd/sifts/xml/";
private final static String NEWLINE = System.lineSeparator();
*/
public static File getSiftsFile(String pdbId) throws SiftsException
{
- File siftsFile = new File(SiftsSettings.getSiftDownloadDirectory()
- + pdbId.toLowerCase() + ".xml.gz");
+ String siftsFileName = SiftsSettings.getSiftDownloadDirectory()
+ + pdbId.toLowerCase() + ".xml.gz";
+ File siftsFile = new File(siftsFileName);
if (siftsFile.exists())
{
// The line below is required for unit testing... don't comment it out!!!
if (isFileOlderThanThreshold(siftsFile,
SiftsSettings.getCacheThresholdInDays()))
{
- // System.out.println("Downloaded file is out of date, hence re-downloading...");
- siftsFile = downloadSiftsFile(pdbId.toLowerCase());
+ File oldSiftsFile = new File(siftsFileName + "_old");
+ siftsFile.renameTo(oldSiftsFile);
+ try
+ {
+ siftsFile = downloadSiftsFile(pdbId.toLowerCase());
+ oldSiftsFile.delete();
+ return siftsFile;
+ } catch (IOException e)
+ {
+ e.printStackTrace();
+ oldSiftsFile.renameTo(siftsFile);
+ return new File(siftsFileName);
+ }
}
- return siftsFile;
}
- siftsFile = downloadSiftsFile(pdbId.toLowerCase());
+ try
+ {
+ siftsFile = downloadSiftsFile(pdbId.toLowerCase());
+ } catch (IOException e)
+ {
+ throw new SiftsException(e.getMessage());
+ }
return siftsFile;
}
* @param pdbId
* @return downloaded SIFTs XML file
* @throws SiftsException
+ * @throws IOException
*/
- public static File downloadSiftsFile(String pdbId) throws SiftsException
+ public static File downloadSiftsFile(String pdbId) throws SiftsException,
+ IOException
{
if (pdbId.contains(".cif"))
{
{
siftsDownloadDir.mkdirs();
}
- try
- {
// System.out.println(">> Download ftp url : " + siftsFileFTPURL);
URL url = new URL(siftsFileFTPURL);
URLConnection conn = url.openConnection();
outputStream.close();
inputStream.close();
// System.out.println(">>> File downloaded : " + downloadedSiftsFile);
- } catch (IOException ex)
- {
- throw new SiftsException(ex.getMessage());
- }
return new File(downloadedSiftsFile);
}