Class CalculatorPluginOutput<P extends CalculatorPlugin>

  • All Implemented Interfaces:
    com.chemaxon.calculations.cli.CalculatorResultAccess
    Direct Known Subclasses:
    CalculatorPluginOutput

    @PublicAPI
    public class CalculatorPluginOutput<P extends CalculatorPlugin>
    extends CalculatorPluginService<P>
    implements com.chemaxon.calculations.cli.CalculatorResultAccess
    Class providing plugin output in table form. The default implementation provides the following output:
    id<type1><type2><type3>...
    <id1><result11><result12><result13>...
    <id2><result21><result22><result23>...
    ...............
    where type1, type2, ... are the result types, id1, id2, ... are the molecule ID-s fetched from the given ID tag of the input SDF file or molecule indices if no such tag is given, the resultij is the result string for the i-th molecule and the j-th result type. Other output formats can be implemented by subclassing this class and returning the class name in the plugin-specific implementation of chemaxon.plugin.CalculatorPlugin.getOutputClassName().
    Since:
    Marvin 3.0
    • Field Detail

      • params

        protected Properties params
        The plugin parameter table.
      • separator

        protected String separator
        The separator string separating the results for different result types.
    • Constructor Detail

      • CalculatorPluginOutput

        public CalculatorPluginOutput()
        Default constructor.
      • CalculatorPluginOutput

        public CalculatorPluginOutput​(CalculatorPlugin plugin)
        Constructor that sets plugin.
        Parameters:
        plugin - is the plugin
    • Method Detail

      • setPluginChecked

        public final void setPluginChecked​(P plugin)
        Sets the calculator plugin object.
        Parameters:
        plugin - is the CalculatorPlugin object
      • setThrowable

        public final void setThrowable​(Throwable throwable)
        Sets the throwable object.
        Parameters:
        throwable - is the CalculatorPlugin object
      • getThrowable

        public final Throwable getThrowable()
        Returns the throwable object.
        Specified by:
        getThrowable in interface com.chemaxon.calculations.cli.CalculatorResultAccess
        Returns:
        the throwable plugin object
      • setSeparator

        public void setSeparator​(String separator)
        Sets the separator string.
        Parameters:
        separator - is the separator string
      • getPluginParameters

        public Properties getPluginParameters()
                                       throws PluginException
        Returns the plugin parameter table (this should be set in the plugin). The default implementation returns the given parameter table itself.
        Returns:
        the original parameter table if it is the same, a new table with the plugin params otherwise
        Throws:
        PluginException - on error
      • setOutputParameters

        public void setOutputParameters​(Object[] types)
                                 throws PluginException
        Prepares the output based on the result type string. The default implementation does nothing.
        Parameters:
        types - the result types
        Throws:
        PluginException - on error
      • isMolecular

        public boolean isMolecular()
        Returns true if molecule output. The default implementation returns false.
        Returns:
        true if molecule output
      • isStreamOutput

        public boolean isStreamOutput()
        Returns true if stream output. The default implementation returns false.
        Returns:
        true if stream output
      • setOutputStream

        public void setOutputStream​(OutputStream os)
                             throws IOException
        Sets the output stream. Used for molecule output. The default implementation does nothing.
        Parameters:
        os - the output stream
        Throws:
        IOException
      • getCachedResults

        public final com.chemaxon.calculations.cli.CalculatorPluginCachedResults getCachedResults​(Molecule target,
                                                                                                  boolean stringResult)
                                                                                           throws PluginException
        Returns cached results, separated from the plugin object, so that no further enqueries needed to the plugin to get the result.
        Parameters:
        target - the target molecule
        stringResult - is true if string result is needed, false if decorated molecule is needed
        Returns:
        the cached results
        Throws:
        PluginException
        Since:
        Marvin 5.2
      • getResultMessage

        public final String getResultMessage()
        Returns the plugin calculation error message, error or warning.
        Specified by:
        getResultMessage in interface com.chemaxon.calculations.cli.CalculatorResultAccess
        Returns:
        the plugin calculation error message
      • getRemark

        public String getRemark()
        Returns the calculation remark.
        Specified by:
        getRemark in interface com.chemaxon.calculations.cli.CalculatorResultAccess
        Returns:
        the calculation remark
      • isOK

        public boolean isOK()
        Returns true if the calculation has run without error.
        Specified by:
        isOK in interface com.chemaxon.calculations.cli.CalculatorResultAccess
        Returns:
        true if the calculation has run without error
      • getHeader

        public String getHeader()
        Returns the table header. The default implementation returns "id" and the result types.
        Specified by:
        getHeader in interface com.chemaxon.calculations.cli.CalculatorResultAccess
        Returns:
        the table header
      • getResult

        public String getResult​(Molecule target)
                         throws PluginException
        Returns the result string for the given molecule. The default implementation returns the result strings corresponding to the result types.
        Specified by:
        getResult in interface com.chemaxon.calculations.cli.CalculatorResultAccess
        Parameters:
        target - is the target molecule
        Returns:
        the result row
        Throws:
        PluginException - on error
      • getResults

        protected String getResults​(Object type)
                             throws PluginException
        Returns result items for the given result type.
        Parameters:
        type - is the result type
        Returns:
        result items separated by ';'
        Throws:
        PluginException - on error
      • getResultMolecule

        public Molecule getResultMolecule​(Molecule target)
                                   throws PluginException
        Returns the decorated result molecule for the given target molecule. Used in case of MRV output (-M, --mrv-output).
        Specified by:
        getResultMolecule in interface com.chemaxon.calculations.cli.CalculatorResultAccess
        Parameters:
        target - is the target molecule
        Returns:
        the result molecule
        Throws:
        PluginException - on error
      • getResultMolecules

        public Molecule[] getResultMolecules​(Molecule target)
                                      throws PluginException
        Returns the result molecules for the given target molecule. The default implementation returns null.
        Specified by:
        getResultMolecules in interface com.chemaxon.calculations.cli.CalculatorResultAccess
        Parameters:
        target - is the target molecules
        Returns:
        the result molecules
        Throws:
        PluginException - on error
      • getSpecResult

        public double getSpecResult​(Molecule target,
                                    String arg)
                             throws PluginException
        Returns a specific plugin result corresponding to the given molecule and argument string. The default implementation returns the result value returned by CalculatorPlugin.getResult(int index) (converted to double) with index given in the argument string: the argument string format is <result index>.
        Parameters:
        target - is the target molecule
        arg - is the argument string
        Returns:
        the queried plugin result
        Throws:
        PluginException - in case of plugin calculation error