use of ddf.catalog.data.impl.BinaryContentImpl in project ddf by codice.
the class CatalogFrameworkImplTest method testQueryTransform.
@Test
public void testQueryTransform() throws Exception {
BundleContext context = mock(BundleContext.class);
QueryResponseTransformer transformer = mock(QueryResponseTransformer.class);
ServiceReference reference = mock(ServiceReference.class);
ServiceReference[] serviceReferences = new ServiceReference[] { reference };
when(context.getServiceReferences(anyString(), anyString())).thenReturn(serviceReferences);
when(context.getService(isA(ServiceReference.class))).thenReturn(transformer);
when(transformer.transform(isA(SourceResponse.class), isA(Map.class))).thenReturn(new BinaryContentImpl(null));
CatalogFramework framework = this.createDummyCatalogFramework(provider, storageProvider, context, eventAdmin, true);
SourceResponse response = new SourceResponseImpl(null, null);
BinaryContent content = framework.transform(response, "NONE", new HashMap<String, Serializable>());
assertNotNull(content);
}
use of ddf.catalog.data.impl.BinaryContentImpl in project ddf by codice.
the class CswRecordConverter method transform.
@Override
public BinaryContent transform(Metacard metacard, Map<String, Serializable> arguments) throws CatalogTransformerException {
if (StringUtils.isNotBlank(metacard.getMetadata())) {
// Check if the metadata is csw:Record
try {
StringReader xml = new StringReader(metacard.getMetadata());
XMLEventReader reader = factory.createXMLEventReader(xml);
boolean rootFound = false;
while (reader.hasNext() && !rootFound) {
XMLEvent event = reader.nextEvent();
if (event.isStartElement()) {
rootFound = true;
QName name = event.asStartElement().getName();
if (StringUtils.equals(CswConstants.CSW_RECORD_LOCAL_NAME, name.getLocalPart()) && StringUtils.equals(CswConstants.CSW_OUTPUT_SCHEMA, name.getNamespaceURI())) {
return new BinaryContentImpl(IOUtils.toInputStream(metacard.getMetadata()), XML_MIME_TYPE);
}
}
}
} catch (Exception e) {
// Ignore and proceed with the transform.
}
}
StringWriter stringWriter = new StringWriter();
Boolean omitXmlDec = null;
if (arguments != null) {
omitXmlDec = (Boolean) arguments.get(CswConstants.OMIT_XML_DECLARATION);
}
if (omitXmlDec == null || !omitXmlDec) {
stringWriter.append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n");
}
PrettyPrintWriter writer = new PrettyPrintWriter(stringWriter);
MarshallingContext context = new TreeMarshaller(writer, null, null);
context.put(CswConstants.WRITE_NAMESPACES, true);
copyArgumentsToContext(context, arguments);
this.marshal(metacard, writer, context);
BinaryContent transformedContent;
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(stringWriter.toString().getBytes(StandardCharsets.UTF_8));
transformedContent = new BinaryContentImpl(byteArrayInputStream, XML_MIME_TYPE);
return transformedContent;
}
use of ddf.catalog.data.impl.BinaryContentImpl in project ddf by codice.
the class AbstractGmdTransformer method transform.
@Override
public BinaryContent transform(Metacard metacard, Map<String, Serializable> arguments) throws CatalogTransformerException {
StringWriter stringWriter = new StringWriter();
Boolean omitXmlDec = null;
if (MapUtils.isNotEmpty(arguments)) {
omitXmlDec = (Boolean) arguments.get(CswConstants.OMIT_XML_DECLARATION);
}
if (omitXmlDec == null || !omitXmlDec) {
stringWriter.append("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n");
}
PrettyPrintWriter writer = new PrettyPrintWriter(stringWriter, new NoNameCoder());
MarshallingContext context = new TreeMarshaller(writer, null, null);
copyArgumentsToContext(context, arguments);
converterSupplier.get().marshal(metacard, writer, context);
ByteArrayInputStream bais = new ByteArrayInputStream(stringWriter.toString().getBytes(StandardCharsets.UTF_8));
return new BinaryContentImpl(bais, CswRecordConverter.XML_MIME_TYPE);
}
use of ddf.catalog.data.impl.BinaryContentImpl in project alliance by codice.
the class CatalogOutputAdapter method getBinaryContent.
/**
* @param image the BufferedImage to be converted.
* @return a BinaryContent object containing the image data.
* @throws IOException when the BufferedImage can't be written to temporary in-memory space.
* @throws MimeTypeParseException thrown if the mime type is invalid
*/
@SuppressWarnings("WeakerAccess")
public BinaryContent getBinaryContent(BufferedImage image) throws IOException, MimeTypeParseException {
validateArgument(image, "image");
BufferedImage rgbImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_3BYTE_BGR);
Graphics2D graphics = rgbImage.createGraphics();
graphics.drawImage(image, 0, 0, null);
InputStream fis = new ByteArrayInputStream(createJpg(rgbImage));
return new BinaryContentImpl(fis, new MimeType(IMAGE_JPG));
}
use of ddf.catalog.data.impl.BinaryContentImpl in project ddf by codice.
the class BinaryContentImplTest method testBinaryContentImplNullInputStream.
@Test
public void testBinaryContentImplNullInputStream() {
InputStream is = null;
BinaryContentImpl bci = new BinaryContentImpl(is, mimeType);
bci.setSize(content.length());
// assertEquals(is, bci.getInputStream());
assertEquals(mimeType, bci.getMimeType());
assertEquals(content.length(), bci.getSize());
}
Aggregations