From 18cf107f9621eeb45039cbed6f533d5012d2d0fc Mon Sep 17 00:00:00 2001 From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04> Date: Wed, 26 Jan 2011 15:14:27 +0000 Subject: [PATCH] fix for reading fasta with java less than 1.6 git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@15370 ee4ac58c-ac51-4696-9907-e4b3aa274f04 --- uk/ac/sanger/artemis/io/IndexFastaStream.java | 31 +++++++++++++++---- 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/uk/ac/sanger/artemis/io/IndexFastaStream.java b/uk/ac/sanger/artemis/io/IndexFastaStream.java index e02f58d0c..9408bd348 100644 --- a/uk/ac/sanger/artemis/io/IndexFastaStream.java +++ b/uk/ac/sanger/artemis/io/IndexFastaStream.java @@ -47,12 +47,6 @@ public class IndexFastaStream extends StreamSequence private FastaSequenceIndex fastaIndex; private int len; private String contig; - static { - ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".dna"); - ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".seq"); - ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".fas"); - ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".ffn"); - } public IndexFastaStream(Entry entry) { @@ -111,7 +105,19 @@ public class IndexFastaStream extends StreamSequence else fastaIndexFile = new File(fasta.getName() + ".fai"); if (fastaIndexFile.exists()) + { + try + { + setExtensions(); + } + catch(UnsupportedClassVersionError e) + { + System.err.println("Java version "+System.getProperty("java.version")+ + " does not support indexed fasta - use Java 1.6 or higher."); + return false; + } return true; + } } } catch(Exception e) @@ -121,6 +127,19 @@ public class IndexFastaStream extends StreamSequence return false; } + /** + * Add to supported FASTA allowed suffixes. + */ + private static void setExtensions() + { + if(ReferenceSequenceFileFactory.FASTA_EXTENSIONS.contains(".dna")) + return; + ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".dna"); + ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".seq"); + ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".fas"); + ReferenceSequenceFileFactory.FASTA_EXTENSIONS.add(".ffn"); + } + public void setContigByIndex(int seqIndex) { /*ReferenceSequence ref = getReferenceSequence(seqIndex); -- GitLab