output = new BoundingBoxOutputImpl( (BoundingBoxOutputDefinition) outputDef, false ); } else if ( outputDef instanceof ComplexOutputDefinition ) { output = new ComplexOutputImpl( (ComplexOutputDefinition) outputDef, new OutputStream() { @Override public void write( int b )
/** * Creates a {@link ProcessletOutput} parameter object for storing a requested process output value. * * @param outputDef * @return object for storing the corresponding process output value */ private ProcessletOutput createOutputParameter( RequestedOutput outputDef ) throws OWSException { ProcessletOutput processOutput = null; ProcessletOutputDefinition outputType = outputDef.getOutputType(); if ( outputType instanceof BoundingBoxOutputDefinition ) { processOutput = new BoundingBoxOutputImpl( (BoundingBoxOutputDefinition) outputType, true ); } else if ( outputType instanceof LiteralOutputDefinition ) { processOutput = new LiteralOutputImpl( (LiteralOutputDefinition) outputType, outputDef.getUom(), true ); } else if ( outputType instanceof ComplexOutputDefinition ) { try { String requestedMimeType = outputDef.getMimeType(); String requestedEncoding = outputDef.getEncoding(); String requestedSchema = outputDef.getSchemaURL(); processOutput = new ComplexOutputImpl( (ComplexOutputDefinition) outputType, storageManager.newOutputStorage( requestedMimeType ), true, requestedMimeType, requestedSchema, requestedEncoding ); } catch ( Exception e ) { String msg = "Unable to create sink for complex output parameter: " + e.getMessage(); LOG.error( msg, e ); throw new OWSException( msg, NO_APPLICABLE_CODE ); } } return processOutput; }
ProcessletOutput outputParam = null; if ( outputType instanceof ComplexOutputDefinition ) { outputParam = new ComplexOutputImpl( (ComplexOutputDefinition) outputType, response.getOutputStream(), true, mimeType, schema, encoding );