/*
- * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
- * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9)
+ * Copyright (C) 2015 The Jalview Authors
*
* This file is part of Jalview.
*
import jalview.api.AlignExportSettingI;
import jalview.api.AlignViewportI;
+import jalview.api.AlignmentViewPanel;
import jalview.util.MessageManager;
import java.io.BufferedReader;
public File inFile = null;
+ /**
+ * a viewport associated with the current file operation. May be null. May
+ * move to different object.
+ */
private AlignViewportI viewport;
- public int index = 1; // sequence counter for FileParse object created from
/**
* specific settings for exporting data from the current context
*/
private AlignExportSettingI exportSettings;
- // same data source
+ /**
+ * sequence counter for FileParse object created from same data source
+ */
+ public int index = 1;
+ /**
+ * separator for extracting specific 'frame' of a datasource for formats that
+ * support multiple records (e.g. BLC, Stockholm, etc)
+ */
protected char suffixSeparator = '#';
/**
public void setNewlineString(String nl)
{
- newline = nl;
+ newline = nl;
}
public String getNewlineString()
protected BufferedReader dataIn = null;
- protected String errormessage = "UNITIALISED SOURCE";
+ protected String errormessage = "UNINITIALISED SOURCE";
protected boolean error = true;
{
if (from == null)
{
- throw new Error(MessageManager.getString("error.implementation_error_null_fileparse"));
+ throw new Error(
+ MessageManager
+ .getString("error.implementation_error_null_fileparse"));
}
if (from == this)
{
{
if (e != null)
{
- throw new IOException(MessageManager.getString("exception.failed_to_resolve_gzip_stream"), e);
+ throw new IOException(
+ MessageManager
+ .getString("exception.failed_to_resolve_gzip_stream"),
+ e);
}
throw q;
}
{
if (checkFileSource(suffixLess))
{
- throw new IOException(MessageManager.formatMessage("exception.problem_opening_file_also_tried", new String[]{inFile.getName(),suffixLess,errormessage}));
+ throw new IOException(MessageManager.formatMessage(
+ "exception.problem_opening_file_also_tried",
+ new String[] { inFile.getName(), suffixLess,
+ errormessage }));
}
}
else
{
- throw new IOException(MessageManager.formatMessage("exception.problem_opening_file", new String[]{inFile.getName(),errormessage}));
+ throw new IOException(MessageManager.formatMessage(
+ "exception.problem_opening_file",
+ new String[] { inFile.getName(), errormessage }));
}
}
}
{
checkURLSource(fileStr);
if (suffixSeparator == '#')
- {
+ {
extractSuffix(fileStr); // URL lref is stored for later reference.
}
} catch (IOException e)
if (dataIn == null || error)
{
// pass up the reason why we have no source to read from
- throw new IOException(MessageManager.formatMessage("exception.failed_to_read_data_from_source", new String[]{errormessage}));
+ throw new IOException(MessageManager.formatMessage(
+ "exception.failed_to_read_data_from_source",
+ new String[] { errormessage }));
}
error = false;
dataIn.mark(READAHEAD_LIMIT);
}
else
{
- throw new IOException(MessageManager.getString("exception.no_init_source_stream"));
+ throw new IOException(
+ MessageManager.getString("exception.no_init_source_stream"));
}
}
{
return dataIn.readLine();
}
- throw new IOException(MessageManager.formatMessage("exception.invalid_source_stream", new String[]{errormessage}));
+ throw new IOException(MessageManager.formatMessage(
+ "exception.invalid_source_stream",
+ new String[] { errormessage }));
+ }
+
+ /**
+ *
+ * @return true if this FileParse is configured for Export only
+ */
+ public boolean isExporting()
+ {
+ return !error && dataIn == null;
}
+ /**
+ *
+ * @return true if the data source is valid
+ */
public boolean isValid()
{
return !error;
}
else
{
- throw new IOException(MessageManager.getString("error.implementation_error_reset_called_for_invalid_source"));
+ throw new IOException(
+ MessageManager
+ .getString("error.implementation_error_reset_called_for_invalid_source"));
}
}
{
this.exportSettings = exportSettings;
}
+
+ /**
+ * method overridden by complex file exporter/importers which support
+ * exporting visualisation and layout settings for a view
+ *
+ * @param avpanel
+ */
+ public void configureForView(AlignmentViewPanel avpanel)
+ {
+ if (avpanel != null)
+ {
+ setViewport(avpanel.getAlignViewport());
+ }
+ // could also set export/import settings
+ }
}