Package tv.hd3g.fflauncher
Class ConversionTool
java.lang.Object
tv.hd3g.fflauncher.ConversionTool
- All Implemented Interfaces:
InputSourceProviderTraits,InternalParametersSupplier,ExecutableTool
- Direct Known Subclasses:
FFbase
public class ConversionTool
extends Object
implements ExecutableTool, InternalParametersSupplier, InputSourceProviderTraits
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final BiConsumer<Parameters,String> protected final Stringprotected final List<tv.hd3g.fflauncher.ConversionToolParameterReference>protected final List<tv.hd3g.fflauncher.ConversionToolParameterReference>protected final Parametersstatic final BiConsumer<Parameters,String> -
Constructor Summary
ConstructorsModifierConstructorDescriptionConversionTool(String execName) protectedConversionTool(String execName, Parameters parameters) -
Method Summary
Modifier and TypeMethodDescriptionaddInputSource(File source, String varNameInParameters, Collection<String> parametersBeforeInputSource) Add a parameters via an input reference, like: [parametersBeforeInputSource] {varNameInParameters replaced by source} [parametersAfterInputSource] For example, set source = "/myfile", varNameInParameters = "IN", parametersBeforeInputSource = [-i], parametersAfterInputSource = [-w], For an parameters = "exec -VERBOSE <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -VERBOSE -i /myfile -w -send <%OUT%>"addInputSource(String source, String varNameInParameters, Collection<String> parametersBeforeInputSource) Add a parameters via an input reference, like: [parametersBeforeInputSource] {varNameInParameters replaced by source} [parametersAfterInputSource] For example, set source = "myfile", varNameInParameters = "IN", parametersBeforeInputSource = [-i], parametersAfterInputSource = [-w], For an parameters = "exec -VERBOSE <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -VERBOSE -i myfile -w -send <%OUT%>"addOutputDestination(File destination, String varNameInParameters, String... parametersBeforeOutputDestination) Add a parameters via an output reference, like: [parametersBeforeOutputDestination] {varNameInParameters replaced by destination} For example, set destination = "myfile", varNameInParameters = "OUT", parametersBeforeOutputDestination = [-o], For an parameters = "exec -VERBOSE <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -VERBOSE <%IN%> -send -o myfile"addOutputDestination(File destination, String varNameInParameters, Collection<String> parametersBeforeOutputDestination) Add a parameters via an output reference, like: [parametersBeforeOutputDestination] {varNameInParameters replaced by destination} [parametersAfterOutputDestination] For example, set destination = "myfile", varNameInParameters = "OUT", parametersBeforeOutputDestination = [-o], parametersAfterOutputDestination = [-w], For an parameters = "exec -VERBOSE <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -VERBOSE <%IN%> -send -o myfile -w"addOutputDestination(String destination, String varNameInParameters, String... parametersBeforeOutputDestination) Add a parameters via an output reference, like: [parametersBeforeOutputDestination] {varNameInParameters replaced by destination} For example, set destination = "myfile", varNameInParameters = "OUT", parametersBeforeOutputDestination = [-o], For an parameters = "exec -VERBOSE <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -VERBOSE <%IN%> -send -o myfile"addOutputDestination(String destination, String varNameInParameters, Collection<String> parametersBeforeOutputDestination) Add a parameters via an output reference, like: [parametersBeforeOutputDestination] {varNameInParameters replaced by destination} [parametersAfterOutputDestination] For example, set destination = "myfile", varNameInParameters = "OUT", parametersBeforeOutputDestination = [-o], parametersAfterOutputDestination = [-w], For an parameters = "exec -VERBOSE <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -VERBOSE <%IN%> -send -o myfile -w"addSimpleOutputDestination(File destinationFile) Define cmd var name like <%OUT_AUTOMATIC_n%> with "n" the # of setted destination.addSimpleOutputDestination(String destinationName) Define cmd var name like <%OUT_AUTOMATIC_n%> with "n" the # of setted destination.voidbeforeRun(ProcesslauncherBuilder processBuilder) Check read access for every files set in output.Check read access for every files set in input.cleanUpOutputFiles(boolean remove_all, boolean clean_output_directories) Don't need to be executed before.voidDefault with prependBulkParameters and prependParametersvoidfixIOParametredVars(BiConsumer<Parameters, String> onMissingInputVar, BiConsumer<Parameters, String> onMissingOutputVar) Search and patch missing I/O parameter vars, and manageCollisionsParameters for each I/O entries.getDeclaredDestinationByVarName(String varName) getDeclaredSourceByVarName(String varName) List<tv.hd3g.fflauncher.ConversionToolParameterReference>longgetMaxExecTime(TimeUnit unit) getOutputFiles(OutputFilePresencePolicy filterPolicy) Don't need to be executed before, only checks.Set values for variables like <%myvar%> in the command line, do NOT set input/output references if they was set with addInputSource/addOutputDestination.protected PrintStreamprotected PrintStreambooleanbooleanbooleanprotected voidonMissingInputOutputVar(String var_name, String ressource) protected StringpatchVarName(String rawVarName) setCheckSourcesBeforeReady(boolean checkSourcesBeforeReady) True by default.setFilterForLinesEventsToDisplay(Predicate<LineEntry> filterForLinesEventsToDisplay) setMaxExecTimeScheduler(ScheduledExecutorService maxExecTimeScheduler) Enable the execution time limitationsetMaxExecutionTimeForShortCommands(long max_exec_time, TimeUnit unit) You needs to provide a maxExecTimeSchedulersetOnErrorDeleteOutFiles(boolean onErrorDeleteOutFiles) setRemoveParamsIfNoVarToInject(boolean remove_params_if_no_var_to_inject) setWorkingDirectory(File workingDirectory) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface tv.hd3g.processlauncher.ExecutableTool
beforeExecute, execute, execute, execute, executeDirectStdout, filterOutErrorLinesMethods inherited from interface tv.hd3g.fflauncher.InputSourceProviderTraits
addInputSource, addInputSource
-
Field Details
-
execName
-
inputSources
-
outputExpectedDestinations
protected final List<tv.hd3g.fflauncher.ConversionToolParameterReference> outputExpectedDestinations -
parameters
-
APPEND_PARAM_AT_END
-
PREPEND_PARAM_AT_START
-
-
Constructor Details
-
ConversionTool
-
ConversionTool
-
-
Method Details
-
isRemoveParamsIfNoVarToInject
public boolean isRemoveParamsIfNoVarToInject() -
setRemoveParamsIfNoVarToInject
-
setMaxExecutionTimeForShortCommands
You needs to provide a maxExecTimeScheduler -
setMaxExecTimeScheduler
Enable the execution time limitation -
getMaxExecTime
-
getMaxExecTimeScheduler
-
setFilterForLinesEventsToDisplay
public ConversionTool setFilterForLinesEventsToDisplay(Predicate<LineEntry> filterForLinesEventsToDisplay) -
getFilterForLinesEventsToDisplay
-
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 varNameInParameters, Collection<String> parametersBeforeInputSource) Add a parameters via an input reference, like: [parametersBeforeInputSource] {varNameInParameters replaced by source} [parametersAfterInputSource] For example, set source = "myfile", varNameInParameters = "IN", parametersBeforeInputSource = [-i], parametersAfterInputSource = [-w], For an parameters = "exec -VERBOSE <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -VERBOSE -i myfile -w -send <%OUT%>"- Specified by:
addInputSourcein interfaceInputSourceProviderTraits- Parameters:
source- can be another var name (mindfuck)parametersBeforeInputSource- can be null, and can be another var name (mindfuck)
-
patchVarName
-
addInputSource
public ConversionTool addInputSource(File source, String varNameInParameters, Collection<String> parametersBeforeInputSource) Add a parameters via an input reference, like: [parametersBeforeInputSource] {varNameInParameters replaced by source} [parametersAfterInputSource] For example, set source = "/myfile", varNameInParameters = "IN", parametersBeforeInputSource = [-i], parametersAfterInputSource = [-w], For an parameters = "exec -VERBOSE <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -VERBOSE -i /myfile -w -send <%OUT%>"- Specified by:
addInputSourcein interfaceInputSourceProviderTraits- Parameters:
parametersBeforeInputSource- can be null, and can be another var name (mindfuck)
-
getInputSources
- Specified by:
getInputSourcesin interfaceInternalParametersSupplier
-
addOutputDestination
public ConversionTool addOutputDestination(String destination, String varNameInParameters, String... parametersBeforeOutputDestination) Add a parameters via an output reference, like: [parametersBeforeOutputDestination] {varNameInParameters replaced by destination} For example, set destination = "myfile", varNameInParameters = "OUT", parametersBeforeOutputDestination = [-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 varNameInParameters, String... parametersBeforeOutputDestination) Add a parameters via an output reference, like: [parametersBeforeOutputDestination] {varNameInParameters replaced by destination} For example, set destination = "myfile", varNameInParameters = "OUT", parametersBeforeOutputDestination = [-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 varNameInParameters, Collection<String> parametersBeforeOutputDestination) Add a parameters via an output reference, like: [parametersBeforeOutputDestination] {varNameInParameters replaced by destination} [parametersAfterOutputDestination] For example, set destination = "myfile", varNameInParameters = "OUT", parametersBeforeOutputDestination = [-o], parametersAfterOutputDestination = [-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)parametersBeforeOutputDestination- can be null, and can be another var name (mindfuck)
-
addOutputDestination
public ConversionTool addOutputDestination(File destination, String varNameInParameters, Collection<String> parametersBeforeOutputDestination) Add a parameters via an output reference, like: [parametersBeforeOutputDestination] {varNameInParameters replaced by destination} [parametersAfterOutputDestination] For example, set destination = "myfile", varNameInParameters = "OUT", parametersBeforeOutputDestination = [-o], parametersAfterOutputDestination = [-w], For an parameters = "exec -VERBOSE <%IN%> -send <%OUT%>", you will get an updated parameters: "exec -VERBOSE <%IN%> -send -o myfile -w"- Parameters:
parametersBeforeOutputDestination- can be null, and can be another var name (mindfuck)
-
onMissingInputOutputVar
-
getWorkingDirectory
- Returns:
- Can be null.
-
setWorkingDirectory
- Throws:
IOException
-
isOnErrorDeleteOutFiles
public boolean isOnErrorDeleteOutFiles() -
setOnErrorDeleteOutFiles
-
beforeRun
- Specified by:
beforeRunin interfaceExecutableTool
-
getStdOutPrintStreamToDisplayLinesEvents
-
getStdErrPrintStreamToDisplayLinesEvents
-
getDeclaredSourceByVarName
- Parameters:
varName- with tags- Returns:
- never null
-
getDeclaredDestinationByVarName
- Parameters:
varName- with tags- Returns:
- never null
-
getDeclaredSources
- Returns:
- never null, can be empty
-
getDeclaredDestinations
- Returns:
- never null, can be empty
-
addSimpleOutputDestination
Define cmd var name like <%OUT_AUTOMATIC_n%> with "n" the # of setted destination. Don't forget to call fixIOParametredVars() for add the new created var in current Parameters. -
addSimpleOutputDestination
Define cmd var name like <%OUT_AUTOMATIC_n%> with "n" the # of setted destination. Don't forget to call fixIOParametredVars() for add the new created var in current Parameters. -
getOutputFiles
Don't need to be executed before, only checks. -
cleanUpOutputFiles
Don't need to be executed before.- Parameters:
remove_all- if false, remove only empty files.
-
getInternalParameters
- Specified by:
getInternalParametersin interfaceInternalParametersSupplier- Returns:
- without variable injection
-
setCheckSourcesBeforeReady
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
Check read access for every files set in input. -
checkDestinations
Check read access for every files set in output. -
fixIOParametredVars
public void fixIOParametredVars(BiConsumer<Parameters, String> onMissingInputVar, BiConsumer<Parameters, String> onMissingOutputVar) Search and patch missing I/O parameter vars, and manageCollisionsParameters for each I/O entries.- Parameters:
onMissingInputVar- you can manually add the var (the String value provided) in the provided ParametersonMissingOutputVar- you can manually add the var (the String value provided) in the provided Parameters
-
fixIOParametredVars
public void fixIOParametredVars()Default with prependBulkParameters and prependParameters -
getReadyToRunParameters
- Specified by:
getReadyToRunParametersin interfaceExecutableTool- Returns:
- a copy form internal parameters, with variable injection
-
getExecutableName
- Specified by:
getExecutableNamein interfaceExecutableTool
-