/** * Adds a dynamic parameter value. * <ul> * <li>It doesn't expect any template parameters within the parameter value.</li> * <li>The parameter value replaces the previous parameter value.</li> * </ul> * * @param param enum defining the parameter name. * @param paramValue parameter value * @param deleteOnExit whether a file defined by the parameter value must be deleted on exit (must be true for tmp files). * @return this dynamic parameter context. */ public DynamicTemplateParameterContext addParameter(DynamicContextParameters param, String paramValue, boolean deleteOnExit) { return addParameter(param, paramValue, deleteOnExit, ContextInfo.EMPTY); }
@Override public String resolveTemplateParameter(TemplateParameter templateParameter, ContextInfo contextInfo) { return getParameterValueAsString(templateParameter); }
/** * Gets the parameter value as a string. All template parameters within the parameter value are resolved. * * @param templateParameter template parameter instance. * @return a parameter value as a string. */ public String getParameterValueAsString(TemplateParameter templateParameter) { return getParameterValue(templateParameter).getValue(); }
@Test public void dynamicParameterAddOperationCanAdditionWhenAddIsParameter() throws Exception { DynamicParameterConcatType param = new DynamicParameterConcatType(); param.setName("param"); param.setValue("10"); TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); contextProvider.getDynamicContext().addParameter("add", "3"); param.setAdd("%{dynamic.add}"); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); assertEquals("13", contextProvider.getDynamicContext().getParameterValueAsString(param.getName())); }
@Test public void testAddDynamicParameterFromConversionXml() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); DynamicParameterConcatType dynamicParameter1 = new DynamicParameterConcatType(); dynamicParameter1.setName("addDynamicSimple1"); dynamicParameter1.setValue("addDynamicValue1"); dynamicParameter1.setDeleteOnExit(false); DynamicParameterConcatType dynamicParameter2 = new DynamicParameterConcatType(); dynamicParameter2.setName("addDynamicSimple2"); dynamicParameter2.setValue("addDynamicValue2"); dynamicParameter2.setDeleteOnExit(true); contextProvider.getDynamicContext().addParameter(dynamicParameter1, ContextInfo.EMPTY, false); contextProvider.getDynamicContext().addParameter(dynamicParameter2, ContextInfo.EMPTY, false); assertEquals(DEFAULT_PARAMETERS_COUNT + 2, contextProvider.getDynamicContext().getAllParametersAsString().size()); assertEquals("addDynamicValue1", contextProvider.getDynamicContext().getParameterValueAsString("addDynamicSimple1")); assertEquals("addDynamicValue2", contextProvider.getDynamicContext().getParameterValueAsString("addDynamicSimple2")); assertFalse(contextProvider.getDynamicContext().getParameterValue("addDynamicSimple1").isDeleteOnExit()); assertTrue(contextProvider.getDynamicContext().getParameterValue("addDynamicSimple2").isDeleteOnExit()); }
@Test public void testAppendDynamicParameterSimple() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getDynamicContext() .appendParameter("appendDynamicSimple1", "appendDynamicValue1_1", ContextInfo.EMPTY) .appendParameter("appendDynamicSimple1", "_2", ContextInfo.EMPTY) .appendParameter("appendDynamicSimple1", "_3", ContextInfo.EMPTY) .appendParameter("appendDynamicSimple2", "appendDynamicValue2_1", ContextInfo.EMPTY) .appendParameter("appendDynamicSimple2", "_2", ContextInfo.EMPTY) .appendParameter("appendDynamicSimple2", "_3", ContextInfo.EMPTY); assertEquals(DEFAULT_PARAMETERS_COUNT + 2, contextProvider.getDynamicContext().getAllParametersAsString().size()); assertEquals("appendDynamicValue1_1_2_3", contextProvider.getDynamicContext().getParameterValueAsString("appendDynamicSimple1")); assertEquals("appendDynamicValue2_1_2_3", contextProvider.getDynamicContext().getParameterValueAsString("appendDynamicSimple2")); }
@Test public void testAddDynamicParameterSimple() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getDynamicContext() .addParameter("addDynamicSimple1", "addDynamicValue1", ContextInfo.EMPTY) .addParameter("addDynamicSimple2", "addDynamicValue2", ContextInfo.EMPTY); assertEquals(DEFAULT_PARAMETERS_COUNT + 2, contextProvider.getDynamicContext().getAllParametersAsString().size()); assertEquals("addDynamicValue1", contextProvider.getDynamicContext().getParameterValueAsString("addDynamicSimple1")); assertEquals("addDynamicValue2", contextProvider.getDynamicContext().getParameterValueAsString("addDynamicSimple2")); }
/** * Adds a dynamic parameter defined in conversion.xml, that supports concatenation. * <ul> * <li>All template parameters within the parameter value and name are resolved.</li> * <li>The parameter value either replaces the previous parameter value or is appended to the previous parameter value * depending on the flag.</li> * </ul> * * @param dynamicParameter a dynamic parameter defined in the conversion.xml. * @param contextInfo a context info to resolved template parameters within the given parameter value. * @param skip whether setting of the parameter is skipped in conversion.xml * @return this dynamic parameter context. */ public DynamicTemplateParameterContext addParameter(DynamicParameterConcatType dynamicParameter, ContextInfo contextInfo, boolean skip) { if (skip) { return this; } String paramName = dynamicParameter.getName().trim(); String paramValue = dynamicParameter.getValue().trim(); if (dynamicParameter.isConcat() != null && dynamicParameter.isConcat()) { appendParameter(paramName, paramValue, dynamicParameter.isDeleteOnExit(), dynamicParameter.isConcatWhitespace(), contextInfo); } else if (dynamicParameter.getAdd() != null) { incrementParameter(paramName, dynamicParameter.getAdd(), contextInfo); } else { addParameter(paramName, paramValue, dynamicParameter.isDeleteOnExit(), contextInfo); } return this; }
@Test public void testAddDynamicParameterDeleteOnExit() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getDynamicContext() .addParameter("addDynamicSimple1", "addDynamicValue1", false, ContextInfo.EMPTY) .addParameter("addDynamicSimple2", "addDynamicValue2", true, ContextInfo.EMPTY); assertFalse(contextProvider.getDynamicContext().getParameterValue("addDynamicSimple1").isDeleteOnExit()); assertTrue(contextProvider.getDynamicContext().getParameterValue("addDynamicSimple2").isDeleteOnExit()); }
@Test public void testDynamicParametersFilled() throws Exception { TemplateParameterContextProvider contextProvider = createContextProvider(); // build media info TestExecutorLogger testExecutorLogger = new TestExecutorLogger(); new TestMediaInfoBuilder(contextProvider, testExecutorLogger, SimpleMediaInfoUtils.getMediaInfoFile()) .setCommandName("other1") .setInputDynamicParam("mediaInfoInput1") .setOutputDynamicParam("mediaInfoOutput1") .build(TestUtils.getTestFile()); DynamicTemplateParameterContext dynamicContext = contextProvider.getDynamicContext(); assertEquals(TestUtils.getTestFile().getAbsolutePath(), dynamicContext.getParameterValueAsString("mediaInfoInput1")); assertEquals(SimpleMediaInfoUtils.getMediaInfoFile().getAbsolutePath(), dynamicContext.getParameterValueAsString("mediaInfoOutput1")); assertTrue(dynamicContext.getParameterValue("mediaInfoOutput1").isDeleteOnExit()); }
@Test public void testDefaultDynamicParameters() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); assertEquals(DEFAULT_PARAMETERS_COUNT, contextProvider.getDynamicContext().getAllParametersAsString().size()); assertEquals(getWorkingDir().getAbsolutePath(), contextProvider.getDynamicContext().getParameterValueAsString(DynamicContextParameters.WORKING_DIR)); assertEquals("errors.xml", contextProvider.getDynamicContext().getParameterValueAsString(DynamicContextParameters.OUTPUT_VALIDATION_FILE)); }
/** * Resolves dynamic parameter name and value and add to dynamic context. * * @param dynParam dynamic parameter to add */ private void addDynamicParameter(DynamicParameterConcatType dynParam, Map<String, Integer> iterators) { DynamicParameterConcatType resolvedParameter = contextProvider.getDynamicContext().cloneParameter(dynParam); resolvedParameter.setName(parameterResolver.resolveIteratorParameter(resolvedParameter.getName(), iterators)); resolvedParameter.setValue(parameterResolver.resolveIteratorParameter(resolvedParameter.getValue(), iterators)); resolvedParameter.setAdd(parameterResolver.resolveIteratorParameter(resolvedParameter.getAdd(), iterators)); contextProvider.getDynamicContext().addParameter(resolvedParameter, ContextInfo.EMPTY, skipOperationResolver.isSkip(dynParam)); }
/** * Appends a dynamic parameter value. * <ul> * <li>It doesn't expect any template parameters within the parameter value.</li> * <li>The parameter value is appended to the previous parameter value.</li> * </ul> * * @param paramName parameter name * @param paramValue parameter value * @param deleteOnExit whether a file defined by the parameter value must be deleted on exit (must be true for tmp files). * @return this dynamic parameter context. */ public DynamicTemplateParameterContext appendParameter(String paramName, String paramValue, boolean deleteOnExit) { return appendParameter(paramName, paramValue, deleteOnExit, false, ContextInfo.EMPTY); }
private boolean doDeleteTmpFiles() { boolean success = true; for (CustomParameterValue tmpParam : contextProvider.getTmpContext().getAllParameters()) { if (tmpParam.isDeleteOnExit()) { success &= doDeleteTmpFile(tmpParam.getValue()); } } for (CustomParameterValue paramValue : contextProvider.getDynamicContext().getAllParameters()) { if (paramValue.isDeleteOnExit()) { success &= doDeleteTmpFile(paramValue.getValue()); } } return success; }
private ITemplateParameterContext createContext(TemplateParameterContext context) { switch (context) { case TMP: return new TmpTemplateParameterContext(conversionProvider.getFormat()); case TOOL: return new ToolTemplateParameterContext(configProvider.getConfig()); case DYNAMIC: return new DynamicTemplateParameterContext(this); case SEGMENT: return new SegmentTemplateParameterContext(); case SEQUENCE: return new SequenceTemplateParameterContext(); case RESOURCE: return new ResourceTemplateParameterContext(); case DEST: return new DestTemplateParameterContext(); default: /// nothing } return null; }
@Test public void dynamicParameterAddOperationCanAddition() throws Exception { DynamicParameterConcatType param = new DynamicParameterConcatType(); param.setName("param"); param.setValue("10"); TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); param.setAdd("10"); contextProvider.getDynamicContext().addParameter(param, ContextInfo.EMPTY, false); assertEquals("20", contextProvider.getDynamicContext().getParameterValueAsString(param.getName())); }
dynamicParameter4_whitespace.setConcatWhitespace(true); contextProvider.getDynamicContext().addParameter(dynamicParameter1, ContextInfo.EMPTY, false); contextProvider.getDynamicContext().addParameter(dynamicParameter2, ContextInfo.EMPTY, false); contextProvider.getDynamicContext().addParameter(dynamicParameter3, ContextInfo.EMPTY, false); contextProvider.getDynamicContext().addParameter(dynamicParameter4, ContextInfo.EMPTY, false); contextProvider.getDynamicContext().addParameter(dynamicParameter3_whitespace, ContextInfo.EMPTY, false); contextProvider.getDynamicContext().addParameter(dynamicParameter4_whitespace, ContextInfo.EMPTY, false); assertEquals(DEFAULT_PARAMETERS_COUNT + 3, contextProvider.getDynamicContext().getAllParametersAsString().size()); assertEquals("addDynamicValue1_1", contextProvider.getDynamicContext().getParameterValueAsString("addDynamicSimple1")); assertEquals("addDynamicValue3addDynamicValue4", contextProvider.getDynamicContext() .getParameterValueAsString("appendDynamicSimple3")); assertEquals("addDynamicValue3 addDynamicValue4", contextProvider.getDynamicContext() .getParameterValueAsString("appendDynamicSimple3_ws")); assertTrue(contextProvider.getDynamicContext().getParameterValue("addDynamicSimple1").isDeleteOnExit()); assertTrue(contextProvider.getDynamicContext().getParameterValue("appendDynamicSimple3").isDeleteOnExit()); assertFalse(contextProvider.getDynamicContext().getParameterValue("appendDynamicSimple3_ws").isDeleteOnExit());
@Test public void testAppendDynamicParameterWithParamsInValue() throws Exception { TemplateParameterContextProvider contextProvider = createDefaultContextProvider(); fillCPLContext(contextProvider, 2, 2, 2); contextProvider.getDynamicContext().appendParameter("appendDynamicWithParam1", "%{tmp.tmpParamSimple}_1", ContextInfo.EMPTY); contextProvider.getDynamicContext().appendParameter("appendDynamicWithParam1", "_%{tmp.tmpParamSimple}_2", ContextInfo.EMPTY); contextProvider.getDynamicContext().appendParameter( "appendDynamicWithParam2", "%{segm.num}-%{seq.num}-%{seq.type}-%{resource.num}-%{tmp.tmpParamSimple}", new ContextInfoBuilder() .setSegmentUuid(getSegmentUuid(0)) .setSequenceUuid(getSequenceUuid(0, SequenceType.AUDIO)) .setResourceUuid(getResourceUuid(0, 0, SequenceType.AUDIO, 0, 0)) .setSequenceType(SequenceType.AUDIO).build()); contextProvider.getDynamicContext().appendParameter( "appendDynamicWithParam2", "_%{segm.num}-%{seq.num}-%{seq.type}-%{resource.num}-%{tmp.tmpParamSimple}", new ContextInfoBuilder() .setSegmentUuid(getSegmentUuid(1)) .setSequenceUuid(getSequenceUuid(1, SequenceType.VIDEO)) .setResourceUuid(getResourceUuid(1, 1, SequenceType.VIDEO, 1, 0)) .setSequenceType(SequenceType.VIDEO).build()); assertEquals(DEFAULT_PARAMETERS_COUNT + 2, contextProvider.getDynamicContext().getAllParametersAsString().size()); assertEquals("tmpParamSimple_1_tmpParamSimple_2", contextProvider.getDynamicContext().getParameterValueAsString("appendDynamicWithParam1")); assertEquals("0-0-audio-0-tmpParamSimple_1-1-video-1-tmpParamSimple", contextProvider.getDynamicContext().getParameterValueAsString("appendDynamicWithParam2")); }
/** * Appends a dynamic parameter value. * <ul> * <li>It doesn't expect any template parameters within the parameter value.</li> * <li>The parameter value is appended to the previous parameter value.</li> * </ul> * * @param param enum defining the parameter name. * @param paramValue parameter value * @param deleteOnExit whether a file defined by the parameter value must be deleted on exit (must be true for tmp files). * @return this dynamic parameter context. */ public DynamicTemplateParameterContext appendParameter(DynamicContextParameters param, String paramValue, boolean deleteOnExit) { return appendParameter(param, paramValue, deleteOnExit, ContextInfo.EMPTY); }
/** * Adds a dynamic parameter value. * <ul> * <li>It doesn't expect any template parameters within the parameter value.</li> * <li>The parameter value replaces the previous parameter value.</li> * </ul> * * @param paramName parameter name * @param paramValue parameter value * @param deleteOnExit whether a file defined by the parameter value must be deleted on exit (must be true for tmp files). * @return this dynamic parameter context. */ public DynamicTemplateParameterContext addParameter(String paramName, String paramValue, boolean deleteOnExit) { return addParameter(paramName, paramValue, deleteOnExit, ContextInfo.EMPTY); }