Package tv.hd3g.fflauncher
Class ConversionTool
- java.lang.Object
-
- tv.hd3g.fflauncher.ConversionTool
-
-
Field Summary
Fields Modifier and Type Field Description protected StringexecNameprotected ArrayList<tv.hd3g.fflauncher.ConversionToolParameterReference>input_sourcesprotected ArrayList<tv.hd3g.fflauncher.ConversionToolParameterReference>output_expected_destinationsprotected tv.hd3g.processlauncher.cmdline.Parametersparameters
-
Constructor Summary
Constructors Modifier Constructor Description ConversionTool(String execName)protectedConversionTool(String execName, tv.hd3g.processlauncher.cmdline.Parameters parameters)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ConversionTooladdInputSource(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%>"ConversionTooladdInputSource(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%>"ConversionTooladdInputSource(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%>"ConversionTooladdInputSource(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%>"ConversionTooladdOutputDestination(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"ConversionTooladdOutputDestination(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"ConversionTooladdOutputDestination(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"ConversionTooladdOutputDestination(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"ConversionTooladdSimpleOutputDestination(File destination_file)Define cmd var name like <%OUT_AUTOMATIC_n%> with "n" the # of setted destination.ConversionTooladdSimpleOutputDestination(String destination_name)Define cmd var name like <%OUT_AUTOMATIC_n%> with "n" the # of setted destination.voidbeforeRun(tv.hd3g.processlauncher.ProcesslauncherBuilder processBuilder)ConversionToolcheckDestinations()Check read access for every files set in output.ConversionToolcheckSources()Check read access for every files set in input.ConversionToolcleanUpOutputFiles(boolean remove_all, boolean clean_output_directories)Don't need to be executed before.Optional<String>getDeclaredDestinationByVarName(String var_name)List<String>getDeclaredDestinations()Optional<String>getDeclaredSourceByVarName(String var_name)List<String>getDeclaredSources()StringgetExecutableName()Optional<Predicate<tv.hd3g.processlauncher.io.LineEntry>>getFilterForLinesEventsToDisplay()tv.hd3g.processlauncher.cmdline.ParametersgetInternalParameters()longgetMaxExecTime(TimeUnit unit)ScheduledExecutorServicegetMaxExecTimeScheduler()List<File>getOutputFiles(OutputFilePresencePolicy filterPolicy)Don't need to be executed before, only checks.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.tv.hd3g.processlauncher.cmdline.ParametersgetReadyToRunParameters()protected PrintStreamgetStdErrPrintStreamToDisplayLinesEvents()protected PrintStreamgetStdOutPrintStreamToDisplayLinesEvents()FilegetWorkingDirectory()booleanisCheckSourcesBeforeReady()booleanisOnErrorDeleteOutFiles()booleanisRemoveParamsIfNoVarToInject()protected voidonMissingInputOutputVar(String var_name, String ressource)ConversionToolsetCheckSourcesBeforeReady(boolean checkSourcesBeforeReady)True by default.ConversionToolsetFilterForLinesEventsToDisplay(Predicate<tv.hd3g.processlauncher.io.LineEntry> filterForLinesEventsToDisplay)ConversionToolsetMaxExecTimeScheduler(ScheduledExecutorService maxExecTimeScheduler)Enable the execution time limitationConversionToolsetMaxExecutionTimeForShortCommands(long max_exec_time, TimeUnit unit)You needs to provide a max_exec_time_schedulerConversionToolsetOnErrorDeleteOutFiles(boolean onErrorDeleteOutFiles)ConversionToolsetRemoveParamsIfNoVarToInject(boolean remove_params_if_no_var_to_inject)ConversionToolsetWorkingDirectory(File working_directory)
-
-
-
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
-
-
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
-
setMaxExecTimeScheduler
public ConversionTool setMaxExecTimeScheduler(ScheduledExecutorService maxExecTimeScheduler)
Enable the execution time limitation
-
getMaxExecTime
public long getMaxExecTime(TimeUnit unit)
-
getMaxExecTimeScheduler
public ScheduledExecutorService getMaxExecTimeScheduler()
-
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)
-
getWorkingDirectory
public File getWorkingDirectory()
- Returns:
- Can be null.
-
setWorkingDirectory
public ConversionTool setWorkingDirectory(File working_directory) throws IOException
- Throws:
IOException
-
isOnErrorDeleteOutFiles
public boolean isOnErrorDeleteOutFiles()
-
setOnErrorDeleteOutFiles
public ConversionTool setOnErrorDeleteOutFiles(boolean onErrorDeleteOutFiles)
-
beforeRun
public void beforeRun(tv.hd3g.processlauncher.ProcesslauncherBuilder processBuilder)
- Specified by:
beforeRunin interfacetv.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
-
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
-
getOutputFiles
public List<File> getOutputFiles(OutputFilePresencePolicy filterPolicy)
Don't need to be executed before, only checks.
-
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.
-
checkSources
public ConversionTool checkSources()
Check read access for every files set in input.- Throws:
RuntimeException
-
checkDestinations
public ConversionTool checkDestinations()
Check read access for every files set in output.- Throws:
RuntimeException
-
getReadyToRunParameters
public tv.hd3g.processlauncher.cmdline.Parameters getReadyToRunParameters()
- Specified by:
getReadyToRunParametersin interfacetv.hd3g.processlauncher.tool.ExecutableTool- Returns:
- a copy form internal parameters, with variable injection
-
getExecutableName
public String getExecutableName()
- Specified by:
getExecutableNamein interfacetv.hd3g.processlauncher.tool.ExecutableTool
-
-