Class ConversionTool

  • All Implemented Interfaces:
    tv.hd3g.processlauncher.tool.ExecutableTool
    Direct Known Subclasses:
    FFbase

    public class ConversionTool
    extends Object
    implements tv.hd3g.processlauncher.tool.ExecutableTool
    • Field Detail

      • execName

        protected final String execName
      • input_sources

        protected final ArrayList<tv.hd3g.fflauncher.ConversionToolParameterReference> input_sources
      • output_expected_destinations

        protected final ArrayList<tv.hd3g.fflauncher.ConversionToolParameterReference> output_expected_destinations
      • parameters

        protected final tv.hd3g.processlauncher.cmdline.Parameters parameters
    • Constructor Detail

      • ConversionTool

        public ConversionTool​(String execName)
      • ConversionTool

        protected ConversionTool​(String execName,
                                 tv.hd3g.processlauncher.cmdline.Parameters parameters)
    • Method Detail

      • isRemoveParamsIfNoVarToInject

        public boolean isRemoveParamsIfNoVarToInject()
      • setRemoveParamsIfNoVarToInject

        public ConversionTool setRemoveParamsIfNoVarToInject​(boolean remove_params_if_no_var_to_inject)
      • setMaxExecutionTimeForShortCommands

        public ConversionTool setMaxExecutionTimeForShortCommands​(long max_exec_time,
                                                                  TimeUnit unit)
        You needs to provide a max_exec_time_scheduler
      • getMaxExecTime

        public long getMaxExecTime​(TimeUnit unit)
      • setFilterForLinesEventsToDisplay

        public ConversionTool setFilterForLinesEventsToDisplay​(Predicate<tv.hd3g.processlauncher.io.LineEntry> filterForLinesEventsToDisplay)
      • getFilterForLinesEventsToDisplay

        public Optional<Predicate<tv.hd3g.processlauncher.io.LineEntry>> getFilterForLinesEventsToDisplay()
      • getParametersVariables

        public Map<String,​String> getParametersVariables()
        Set values for variables like <%myvar%> in the command line, do NOT set input/output references if they was set with addInputSource/addOutputDestination.
      • addInputSource

        public ConversionTool addInputSource​(String source,
                                             String var_name_in_parameters,
                                             String... parameters_before_input_source)
        Add a parameters via an input reference, like: [parameters_before_input_source] {var_name_in_parameters replaced by source} For example, set source = "myfile", var_name_in_parameters = "IN", parameters_before_input_source = [-i], For an parameters = "exec -verbose <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -verbose -i myfile -send <%OUT%>"
        Parameters:
        source - can be another var name (mindfuck)
      • addInputSource

        public ConversionTool addInputSource​(File source,
                                             String var_name_in_parameters,
                                             String... parameters_before_input_source)
        Add a parameters via an input reference, like: [parameters_before_input_source] {var_name_in_parameters replaced by source} For example, set source = "/myfile", var_name_in_parameters = "IN", parameters_before_input_source = [-i], For an parameters = "exec -verbose <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -verbose -i /myfile -send <%OUT%>"
      • addInputSource

        public ConversionTool addInputSource​(String source,
                                             String var_name_in_parameters,
                                             Collection<String> parameters_before_input_source,
                                             Collection<String> parameters_after_input_source)
        Add a parameters via an input reference, like: [parameters_before_input_source] {var_name_in_parameters replaced by source} [parameters_after_input_source] For example, set source = "myfile", var_name_in_parameters = "IN", parameters_before_input_source = [-i], parameters_after_input_source = [-w], For an parameters = "exec -verbose <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -verbose -i myfile -w -send <%OUT%>"
        Parameters:
        source - can be another var name (mindfuck)
        parameters_before_input_source - can be null, and can be another var name (mindfuck)
        parameters_after_input_source - can be null, and can be another var name (mindfuck)
      • addInputSource

        public ConversionTool addInputSource​(File source,
                                             String var_name_in_parameters,
                                             Collection<String> parameters_before_input_source,
                                             Collection<String> parameters_after_input_source)
        Add a parameters via an input reference, like: [parameters_before_input_source] {var_name_in_parameters replaced by source} [parameters_after_input_source] For example, set source = "/myfile", var_name_in_parameters = "IN", parameters_before_input_source = [-i], parameters_after_input_source = [-w], For an parameters = "exec -verbose <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -verbose -i /myfile -w -send <%OUT%>"
        Parameters:
        parameters_before_input_source - can be null, and can be another var name (mindfuck)
        parameters_after_input_source - can be null, and can be another var name (mindfuck)
      • addOutputDestination

        public ConversionTool addOutputDestination​(String destination,
                                                   String var_name_in_parameters,
                                                   String... parameters_before_output_destination)
        Add a parameters via an output reference, like: [parameters_before_output_destination] {var_name_in_parameters replaced by destination} For example, set destination = "myfile", var_name_in_parameters = "OUT", parameters_before_output_destination = [-o], For an parameters = "exec -verbose <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -verbose <%IN%> -send -o myfile"
        Parameters:
        destination - can be another var name (mindfuck)
      • addOutputDestination

        public ConversionTool addOutputDestination​(File destination,
                                                   String var_name_in_parameters,
                                                   String... parameters_before_output_destination)
        Add a parameters via an output reference, like: [parameters_before_output_destination] {var_name_in_parameters replaced by destination} For example, set destination = "myfile", var_name_in_parameters = "OUT", parameters_before_output_destination = [-o], For an parameters = "exec -verbose <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -verbose <%IN%> -send -o myfile"
      • addOutputDestination

        public ConversionTool addOutputDestination​(String destination,
                                                   String var_name_in_parameters,
                                                   Collection<String> parameters_before_output_destination,
                                                   Collection<String> parameters_after_output_destination)
        Add a parameters via an output reference, like: [parameters_before_output_destination] {var_name_in_parameters replaced by destination} [parameters_after_output_destination] For example, set destination = "myfile", var_name_in_parameters = "OUT", parameters_before_output_destination = [-o], parameters_after_output_destination = [-w], For an parameters = "exec -verbose <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -verbose <%IN%> -send -o myfile -w"
        Parameters:
        destination - can be another var name (mindfuck)
        parameters_before_output_destination - can be null, and can be another var name (mindfuck)
        parameters_after_output_destination - can be null, and can be another var name (mindfuck)
      • addOutputDestination

        public ConversionTool addOutputDestination​(File destination,
                                                   String var_name_in_parameters,
                                                   Collection<String> parameters_before_output_destination,
                                                   Collection<String> parameters_after_output_destination)
        Add a parameters via an output reference, like: [parameters_before_output_destination] {var_name_in_parameters replaced by destination} [parameters_after_output_destination] For example, set destination = "myfile", var_name_in_parameters = "OUT", parameters_before_output_destination = [-o], parameters_after_output_destination = [-w], For an parameters = "exec -verbose <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -verbose <%IN%> -send -o myfile -w"
        Parameters:
        parameters_before_output_destination - can be null, and can be another var name (mindfuck)
        parameters_after_output_destination - can be null, and can be another var name (mindfuck)
      • onMissingInputOutputVar

        protected void onMissingInputOutputVar​(String var_name,
                                               String ressource)
      • getWorkingDirectory

        public File getWorkingDirectory()
        Returns:
        Can be null.
      • isOnErrorDeleteOutFiles

        public boolean isOnErrorDeleteOutFiles()
      • setOnErrorDeleteOutFiles

        public ConversionTool setOnErrorDeleteOutFiles​(boolean onErrorDeleteOutFiles)
      • beforeRun

        public void beforeRun​(tv.hd3g.processlauncher.ProcesslauncherBuilder processBuilder)
        Specified by:
        beforeRun in interface tv.hd3g.processlauncher.tool.ExecutableTool
      • getStdOutPrintStreamToDisplayLinesEvents

        protected PrintStream getStdOutPrintStreamToDisplayLinesEvents()
      • getStdErrPrintStreamToDisplayLinesEvents

        protected PrintStream getStdErrPrintStreamToDisplayLinesEvents()
      • getDeclaredSourceByVarName

        public Optional<String> getDeclaredSourceByVarName​(String var_name)
        Returns:
        never null
      • getDeclaredDestinationByVarName

        public Optional<String> getDeclaredDestinationByVarName​(String var_name)
        Returns:
        never null
      • getDeclaredSources

        public List<String> getDeclaredSources()
        Returns:
        never null, can be empty
      • getDeclaredDestinations

        public List<String> getDeclaredDestinations()
        Returns:
        never null, can be empty
      • addSimpleOutputDestination

        public ConversionTool addSimpleOutputDestination​(String destination_name)
        Define cmd var name like <%OUT_AUTOMATIC_n%> with "n" the # of setted destination. Add -i parameter
      • addSimpleOutputDestination

        public ConversionTool addSimpleOutputDestination​(File destination_file)
        Define cmd var name like <%OUT_AUTOMATIC_n%> with "n" the # of setted destination. Add -i parameter
      • cleanUpOutputFiles

        public ConversionTool cleanUpOutputFiles​(boolean remove_all,
                                                 boolean clean_output_directories)
        Don't need to be executed before.
        Parameters:
        remove_all - if false, remove only empty files.
      • getInternalParameters

        public tv.hd3g.processlauncher.cmdline.Parameters getInternalParameters()
        Returns:
        without variable injection
      • setCheckSourcesBeforeReady

        public ConversionTool setCheckSourcesBeforeReady​(boolean checkSourcesBeforeReady)
        True by default. Force to check read access for every files set in input.
        Returns:
        this
      • isCheckSourcesBeforeReady

        public boolean isCheckSourcesBeforeReady()
        Returns:
        true by default. Force to check read access for every files set in input.
      • getReadyToRunParameters

        public tv.hd3g.processlauncher.cmdline.Parameters getReadyToRunParameters()
        Specified by:
        getReadyToRunParameters in interface tv.hd3g.processlauncher.tool.ExecutableTool
        Returns:
        a copy form internal parameters, with variable injection
      • getExecutableName

        public String getExecutableName()
        Specified by:
        getExecutableName in interface tv.hd3g.processlauncher.tool.ExecutableTool