import java.io.File;
import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.net.URL;
import java.net.URLConnection;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import jalview.datamodel.DBRefEntry;
import jalview.datamodel.DBRefSource;
import jalview.datamodel.SequenceI;
+import jalview.io.BackupFiles;
import jalview.io.StructureFile;
import jalview.schemes.ResidueProperties;
import jalview.structure.StructureMapping;
*/
private jalview.datamodel.Mapping seqFromPdbMapping;
+ private static final int BUFFER_SIZE = 4096;
+
public static final int UNASSIGNED = Integer.MIN_VALUE;
private static final int PDB_RES_POS = 0;
private static final boolean GET_STREAM = false;
private static final boolean CACHE_FILE = true;
-
private String curSourceDBRef;
private HashSet<String> curDBRefAccessionIdsString;
-
private boolean doCache = false;
private enum CoordinateSys
}
String siftsFileName = SiftsSettings.getSiftDownloadDirectory()
- + pdbId.toLowerCase() + ".xml.gz";
+ + pdbId.toLowerCase(Locale.ROOT) + ".xml.gz";
File siftsFile = new File(siftsFileName);
if (siftsFile.exists())
{
// The line below is required for unit testing... don't comment it out!!!
System.out.println(">>> SIFTS File already downloaded for " + pdbId);
- if (Platform.isFileOlderThanThreshold(siftsFile,
+ if (isFileOlderThanThreshold(siftsFile,
SiftsSettings.getCacheThresholdInDays()))
{
File oldSiftsFile = new File(siftsFileName + "_old");
- siftsFile.renameTo(oldSiftsFile);
+ BackupFiles.moveFileToFile(siftsFile, oldSiftsFile);
try
{
- siftsFile = downloadSiftsFile(pdbId);
+ siftsFile = downloadSiftsFile(pdbId.toLowerCase(Locale.ROOT));
oldSiftsFile.delete();
return siftsFile;
} catch (IOException e)
{
e.printStackTrace();
- oldSiftsFile.renameTo(siftsFile);
+ BackupFiles.moveFileToFile(oldSiftsFile, siftsFile);
return new File(siftsFileName);
}
}
}
try
{
- siftsFile = downloadSiftsFile(pdbId);
+ siftsFile = downloadSiftsFile(pdbId.toLowerCase(Locale.ROOT));
} catch (IOException e)
{
throw new SiftsException(e.getMessage());
*/
private static Object downloadSifts(String pdbId, boolean asFile) throws IOException
{
- pdbId = pdbId.toLowerCase();
+ pdbId = pdbId.toLowerCase(Locale.ROOT);
if (pdbId.contains(".cif"))
{
pdbId = pdbId.replace(".cif", "");
}
String siftFile = pdbId + ".xml.gz";
-
File downloadTo = null;
if (asFile)
{
siftsDownloadDir.mkdirs();
}
}
+
String siftsFileFTPURL = SIFTS_FTP_BASE_URL + siftFile;
URL url = new URL(siftsFileFTPURL);
URLConnection conn = url.openConnection();
public static boolean deleteSiftsFileByPDBId(String pdbId)
{
File siftsFile = new File(SiftsSettings.getSiftDownloadDirectory()
- + pdbId.toLowerCase() + ".xml.gz");
+ + pdbId.toLowerCase(Locale.ROOT) + ".xml.gz");
if (siftsFile.exists())
{
return siftsFile.delete();
for (MapRegion mapRegion : mapRegions)
{
accessions
- .add(mapRegion.getDb().getDbAccessionId().toLowerCase());
+ .add(mapRegion.getDb().getDbAccessionId().toLowerCase(Locale.ROOT));
}
}
}
HashSet<String> dbRefAccessionIdsString = new HashSet<String>();
for (DBRefEntry dbref : seq.getDBRefs())
{
- dbRefAccessionIdsString.add(dbref.getAccessionId().toLowerCase());
+ dbRefAccessionIdsString.add(dbref.getAccessionId().toLowerCase(Locale.ROOT));
}
- dbRefAccessionIdsString.add(sourceDBRef.getAccessionId().toLowerCase());
+ dbRefAccessionIdsString.add(sourceDBRef.getAccessionId().toLowerCase(Locale.ROOT));
curDBRefAccessionIdsString = dbRefAccessionIdsString;
curSourceDBRef = sourceDBRef.getAccessionId();
{
boolean isStrictMatch = true;
return isStrictMatch ? curSourceDBRef.equalsIgnoreCase(accession)
- : curDBRefAccessionIdsString.contains(accession.toLowerCase());
+ : curDBRefAccessionIdsString.contains(accession.toLowerCase(Locale.ROOT));
}
private boolean isFoundInSiftsEntry(String accessionId)
{
Set<String> siftsDBRefs = getAllMappingAccession();
return accessionId != null
- && siftsDBRefs.contains(accessionId.toLowerCase());
+ && siftsDBRefs.contains(accessionId.toLowerCase(Locale.ROOT));
}
/**