/** * sets the encoding. neccessary if data should not be retrieved in the default encoding (i.e. * binary data in XML respones not raw data responses) * * @param encoding use base64 * @param outputName ID of the output * @return */ public boolean setEncodingForOutput(String encoding, String outputName) { if (!execute.getExecute().isSetResponseForm()) { execute.getExecute().addNewResponseForm(); } if (!execute.getExecute().getResponseForm().isSetResponseDocument()) { execute.getExecute().getResponseForm().addNewResponseDocument(); } OutputDescriptionType outputDesc = getOutputDescription(outputName); DocumentOutputDefinitionType outputDef = getOutputDefinition(outputName); if (outputDef == null) { outputDef = execute.getExecute().getResponseForm().getResponseDocument().addNewOutput(); outputDef.setIdentifier(outputDesc.getIdentifier()); } String defaultEncoding = outputDesc.getComplexOutput().getDefault().getFormat().getEncoding(); if (defaultEncoding == null) { defaultEncoding = IOHandler.DEFAULT_ENCODING; } if (defaultEncoding.equals(encoding)) { return true; } else { ComplexDataDescriptionType[] supportedFormats = outputDesc.getComplexOutput().getSupported().getFormatArray(); for (ComplexDataDescriptionType data : supportedFormats) { String e = data.getEncoding(); if (e != null && e.equals(encoding)) { outputDef.setEncoding(encoding); return true; } } } return false; }
/** * this sets store for the specific output. * * @param parentInput * @return */ public boolean setStoreSupport(String outputName) { DocumentOutputDefinitionType outputDef = null; if (!execute.getExecute().isSetResponseForm()) { execute.getExecute().addNewResponseForm(); } if (!execute.getExecute().getResponseForm().isSetResponseDocument()) { execute.getExecute().getResponseForm().addNewResponseDocument(); } for (DocumentOutputDefinitionType outputDefTemp : execute.getExecute().getResponseForm().getResponseDocument().getOutputArray()) { if (outputDefTemp.getIdentifier().getStringValue().equals(outputName)) { outputDef = outputDefTemp; break; } } if (outputDef == null) { outputDef = execute.getExecute().getResponseForm().getResponseDocument().addNewOutput(); } for (OutputDescriptionType outputDesc : processDesc.getProcessOutputs().getOutputArray()) { if (outputDesc.getIdentifier().getStringValue().equals(outputName)) { outputDef.setIdentifier(outputDesc.getIdentifier()); ComplexDataDescriptionType format = outputDesc.getComplexOutput().getDefault().getFormat(); if (format.getMimeType() != null) { outputDef.setMimeType(format.getMimeType()); } if (format.getEncoding() != null) { outputDef.setEncoding(format.getEncoding()); } if (format.getSchema() != null) { outputDef.setSchema(format.getSchema()); } outputDef.setAsReference(true); } } return true; }