Class CalculatorPluginOutput<P extends CalculatorPlugin>

java.lang.Object
chemaxon.marvin.plugin.CalculatorPluginService<P>
com.chemaxon.calculations.cli.CalculatorPluginOutput<P>
All Implemented Interfaces:
CalculatorResultAccess

@PublicApi public class CalculatorPluginOutput<P extends CalculatorPlugin> extends CalculatorPluginService<P> implements CalculatorResultAccess
Class providing plugin output in table form. The default implementation provides the following output:
id<type1><type2><type3&gt...
<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 Details

    • plugin

      protected P extends CalculatorPlugin plugin
      The CalculatorPlugin object.
    • params

      protected Properties params
      The plugin parameter table.
    • separator

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

    • CalculatorPluginOutput

      public CalculatorPluginOutput()
      Default constructor.
    • CalculatorPluginOutput

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

    • setPlugin

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public final void setPlugin(CalculatorPlugin plugin)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Sets the calculator plugin object.
      Parameters:
      plugin - is the CalculatorPlugin object
    • setPluginChecked

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

      public final P getPlugin()
      Description copied from class: CalculatorPluginService
      Returns the calculator plugin object.
      Specified by:
      getPlugin in class CalculatorPluginService<P extends CalculatorPlugin>
      Returns:
      the calculator plugin 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 CalculatorResultAccess
      Returns:
      the throwable plugin object
    • setSeparator

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

      public void setParameters(Properties params) throws PluginException
      Sets the parameter table.
      Parameters:
      params - is the parameter table
      Throws:
      PluginException - on error
    • 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
    • close

      public void close() throws IOException
      Closes the output. The default implementation calls close(int) with MolExporter.C_CLOSE_STREAM parameter.
      Throws:
      IOException
    • close

      public void close(int opts) throws IOException
      Closes the output. The default implementation does nothing.
      Parameters:
      opts - closing options, MolExporter.C_CLOSE_STREAM or MolExporter.C_FLUSH_STREAM
      Throws:
      IOException
      Since:
      Marvin 5.1.1
    • getCachedResults

      public final 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 CalculatorResultAccess
      Returns:
      the plugin calculation error message
    • getRemark

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

      public boolean isOK()
      Returns true if the calculation has run without error.
      Specified by:
      isOK in interface 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 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 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 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 CalculatorResultAccess
      Parameters:
      target - is the target molecules
      Returns:
      the result molecules
      Throws:
      PluginException - on error
    • getResultDomain

      public int getResultDomain()
      Returns the domain for the first result type.
      Returns:
      the domain for the first result type: CalculatorPlugin.ATOM, CalculatorPlugin.MOLECULE or CalculatorPlugin.MOLECULES
    • getSpecResult

      @Deprecated(forRemoval=true) @SubjectToRemoval(date=JUL_01_2025) public double getSpecResult(Molecule target, String arg) throws PluginException
      Deprecated, for removal: This API element is subject to removal in a future version.
      This method depends on the now deprecated CalculatorPlugin.getResult(Object, String) method, so this is deprecated as well and will be removed.
      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