*/
public class IdentifyFile
{
- public static final String FeaturesFile = "GFF or Jalview features";
-
/**
* Identify a datasource's file content.
*
// preserves original behaviour prior to version 2.3
}
- public FileFormatI identify(AlignmentFileI file, boolean closeSource)
+ public FileFormatI identify(AlignmentFileReaderI file, boolean closeSource)
throws IOException
{
FileParse fp = new FileParse(file.getInFile(), file.getDataSourceType());
boolean lineswereskipped = false;
boolean isBinary = false; // true if length is non-zero and non-printable
// characters are encountered
+
try
{
if (!closeSource)
{
source.mark();
}
+ boolean aaIndexHeaderRead = false;
+
while ((data = source.nextLine()) != null)
{
bytesRead += data.length();
}
data = data.toUpperCase();
+ if (data.startsWith(ScoreMatrixFile.SCOREMATRIX))
+ {
+ reply = FileFormat.ScoreMatrix;
+ break;
+ }
+ if (data.startsWith("H ") && !aaIndexHeaderRead)
+ {
+ aaIndexHeaderRead = true;
+ }
+ if (data.startsWith("D ") && aaIndexHeaderRead)
+ {
+ reply = FileFormat.ScoreMatrix;
+ break;
+ }
if (data.startsWith("##GFF-VERSION"))
{
// GFF - possibly embedded in a Jalview features file!
}
int lessThan = data.indexOf("<");
if ((lessThan > -1)) // possible Markup Language data i.e HTML,
- // RNAML, XML
+ // RNAML, XML
{
String upper = data.toUpperCase();
if (upper.substring(lessThan).startsWith("<HTML"))
}
/**
- * Returns true if the data has at least 6 tab-delimited fields _and_
- * fields 4 and 5 are integer (start/end)
+ * Returns true if the data has at least 6 tab-delimited fields _and_ fields 4
+ * and 5 are integer (start/end)
+ *
* @param data
* @return
*/
return false;
}
String[] columns = data.split("\t");
- if (columns.length < 6) {
+ if (columns.length < 6)
+ {
return false;
}
for (int col = 3; col < 5; col++)
{
- try {
+ try
+ {
Integer.parseInt(columns[col]);
- } catch (NumberFormatException e) {
+ } catch (NumberFormatException e)
+ {
return false;
}
}