/** * Copy constructor for DcsMetadata. The state of <code>toCopy</code> is copied * to this. * * @param toCopy the metadata to copy */ public DcsMetadata(DcsMetadata toCopy) { this.schemaUri = toCopy.getSchemaUri(); this.metadata = toCopy.getMetadata(); this.metadataUsedByHashcode = toCopy.metadataUsedByHashcode; }
private static void addMetadataSet(SolrInputDocument doc, Collection<DcsMetadata> set) throws IOException { if (set == null || set.size() == 0) { return; } for (DcsMetadata md : set) { setadd(doc, MetadataField.SCHEMA, md.getSchemaUri()); setadd(doc, MetadataField.TEXT, md.getMetadata()); if (md.getMetadata() == null) { continue; } try { Reader in = new StringReader(md.getMetadata()); addXml(doc, "ext_", MetadataField.SEARCH_TEXT.solrName(), new InputSource(in)); in.close(); } catch (SAXException e) { throw new IOException(e); } } }
final DcsMetadata md = (DcsMetadata) source; final String schemaUri = md.getSchemaUri(); String metadataBlob = md.getMetadata();
@Override public void marshal(Object source, HierarchicalStreamWriter writer, MarshallingContext context) { super.marshal(source, writer, context); // Inside <metadata> if (source instanceof DcsMetadata) { final DcsMetadata md = (DcsMetadata) source; final String schemaUri = md.getSchemaUri(); final String metadataBlob = md.getMetadata(); if (!isEmptyOrNull(metadataBlob)) { if (!isEmptyOrNull(schemaUri)) { writer.addAttribute(A_SCHEMA, schemaUri); } try { final DcsStaxWriter staxWriter = (DcsStaxWriter) writer.underlyingWriter(); log.trace("Copying metadata blob: \n{}", metadataBlob); staxWriter.copyNode(metadataBlob, staxWriter.getXMLStreamWriter()); } catch (XMLStreamException e) { throw new ConversionException(e.getMessage(), e); } } } else if (source instanceof DcsMetadataRef) { final DcsMetadataRef mdRef = (DcsMetadataRef) source; final String ref = mdRef.getRef(); if (!isEmptyOrNull(ref)) { writer.addAttribute(A_REF, ref); } } else { log.warn("Unable to marshal metadata source object {} of type {}", source, source.getClass().getName()); } }
final String metadataAsString = md.getMetadata();