Class GalExporter

    • Constructor Detail

      • GalExporter

        public GalExporter()
    • Method Detail

      • getPermissions

        public Collection<Permissions> getPermissions()
        Request create and write access to File:s, Directory:s and ArrayDesign:s read access to User:s and forced read access to DataFileType:s.
        Specified by:
        getPermissions in interface Plugin
        Overrides:
        getPermissions in class AbstractPlugin
        Returns:
        A collection of permissions or null to not use permissions
      • getGuiContexts

        public Set<GuiContext> getGuiContexts()
        Description copied from interface: InteractivePlugin
        Get a set containing all items that the plugin handles. Ie. if the plugin imports reporters, return a set containing Item.REPORTER. This information is used by client applications to put the plugin in the proper place in the user interface.
        Specified by:
        getGuiContexts in interface InteractivePlugin
        Returns:
        A Set containing Item:s, or null if the plugin is not concerned about items
      • isInContext

        public String isInContext​(GuiContext context,
                                  Object item)
        Description copied from interface: InteractivePlugin
        Check if the plugin can be used on the specified object. The item is either a BasicItem or BasicData object, or null if called from a list context. A client application should only call this method for contexts matching one of the contexts in the set returned by the InteractivePlugin.getGuiContexts() method. For GuiContext.Type.ITEM contexts an item of the correct type should be passed as a parameter.

        The plug-in can response with a null value indicating success, a warning-level message or throw an exception to indicate an error-level message. Client application should normally only show error-level messages to users, unless the user has requested to see warning messages.

        NOTE! Before BASE 2.4 all messages were treated as error-level messages.

        Specified by:
        isInContext in interface InteractivePlugin
        Parameters:
        context - The current context of the client application, it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
        item - The currently active item, it's type should match the GuiContext.getItem() type, or null if the context is a list context
        Returns:
        Null if the plugin can use that item, or a warning-level message explaining why the plugin can't be used
      • getSignalHandler

        public SignalHandler getSignalHandler()
        Description copied from interface: SignalTarget
        Get the signal handler that is handling signals on behalf of this object. Multiple invokations of this method may receive the same or different objects. Null may be returned if, for some reason, the current object instance doesn't want to receive signals. Returning null is the same as not implementing this interface.
        Specified by:
        getSignalHandler in interface SignalTarget
        Returns:
        A SignalHandler object, or null if the current instance doesn't support signals
      • getSuccessMessage

        protected String getSuccessMessage()
        Description copied from class: AbstractExporterPlugin
        Called if the export was successful to let the subclass generate a simple message that is sent back to the core and user interface. An example message might by: 178 reporters exported successfully. The default implementation always return null.
        Overrides:
        getSuccessMessage in class AbstractExporterPlugin
      • exportGal

        public void exportGal​(DbControl dc,
                              ArrayDesign design,
                              Integer featureDiameter,
                              PrintWriter writer,
                              ProgressReporter progress)
                       throws IOException
        Exports an array design with features to a GAL file. The array must have features in the database.
        Parameters:
        dc - The DbControl to use for database access
        design - The array design to export
        featureDiameter - The expected feature diameter (in µm) of spots, or null to use the values from the database
        writer - The stream to write to
        progress - An optional progress reporter
        Throws:
        IOException
        Since:
        2.8
      • createStandardHeaders

        protected void createStandardHeaders​(List<String> headers,
                                             ArrayDesign design,
                                             List<ArrayDesignBlock> blocks)
        Create the standard headers that are required by the GAL format or that are useful to have in the GAL file.
        Parameters:
        headers - Add the created headers to this list; use createHeader(String, Object) to create a properly formatted header
        design - The current array design
        blocks - A list with all blocks in the array design
      • createHeader

        protected String createHeader​(String name,
                                      Object value)
        Create a properly formatted GAL header. The typical format is "name=value". We assume that the header name has no strange characters in it, but use makeSafeHeaderValue(String) for the value.
        Parameters:
        name - The name of the header
        value - The value of the header
        Returns:
        A properly formatted header
      • makeSafeHeaderValue

        protected String makeSafeHeaderValue​(String value)
        Removes "unsafe" characters in the value. Unsafe characers are:
        • quote (")
        • newline (\n, \r)
        Parameters:
        value - The value to check
        Returns:
        The checked value
      • writeHeaders

        protected void writeHeaders​(PrintWriter writer,
                                    List<String> headers)
        Write the headers of the GAL file, including the two first lines with the "ATF 1.0" line and the second line with the number of header lines and the number of data columns.
        Parameters:
        writer - The writer to print to
        headers - The list with all headers
      • writeFeature

        protected void writeFeature​(PrintWriter writer,
                                    FeatureData feature,
                                    ArrayDesignBlock block)
        Write feature data. The data that is written must match the column headers written by writeDataHeader(PrintWriter). Features that doesn't have a reporter should get ID and Name = empty.
        Parameters:
        writer - The writer to print to
        feature - The feature
        block - The block on which the feature is located
      • writeMissingFeature

        protected void writeMissingFeature​(PrintWriter writer,
                                           FeatureCoordinate missing)
        Write a missing features. The data that is written must match the column headers written by writeDataHeader(PrintWriter). The ID and Name should be empty.
        Parameters:
        writer - The writer to print to
        missing - The feature