private DcsMetadata createMetaData() { DcsMetadata md = new DcsMetadata(); md.setSchemaUri(randomString(10, false)); md.setMetadata(randomXML(3)); return md; }
/** * 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; }
/** * The metadata of the collection. * * @return the collection metadata, or <code>null</code> if no metadata has been set */ public Set<DcsMetadata> getMetadata() { final Set<DcsMetadata> metadata = new HashSet<DcsMetadata>(this.metadata.size()); for (DcsMetadata m : this.metadata) { metadata.add(new DcsMetadata(m)); } return metadata; }
public Set<DcsMetadata> getMetadata() { final Set<DcsMetadata> metadata = new HashSet<DcsMetadata>(this.metadata.size()); for (DcsMetadata m : this.metadata) { metadata.add(new DcsMetadata(m)); } return metadata; }
private static Set<DcsMetadata> getMetadataSet(SolrDocument doc) { Set<DcsMetadata> set = new HashSet<DcsMetadata>(); String[] schemas = setgetAll(doc, MetadataField.SCHEMA); String[] texts = setgetAll(doc, MetadataField.TEXT); for (int i = 0; i < schemas.length; i++) { DcsMetadata md = new DcsMetadata(); md.setMetadata(texts[i]); if (schemas[i] != null && schemas[i].trim().length() > 0) { md.setSchemaUri(schemas[i]); } set.add(md); } return set; }
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); } } }
public Set<DcsMetadata> getMetadata() { final Set<DcsMetadata> metadata = new HashSet<DcsMetadata>(this.metadata.size()); for (DcsMetadata md : this.metadata) { metadata.add(new DcsMetadata(md)); } return metadata; }
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { final String schemaUri = reader.getAttribute(A_SCHEMA); final String mdRef = reader.getAttribute(A_REF); // If we are dealing with a reference, create the reference and return if (!isEmptyOrNull(mdRef)) { final DcsMetadataRef ref = new DcsMetadataRef(); ref.setRef(mdRef); return ref; } // Otherwise we're dealing with a full, in-line DcsMetadata object final DcsMetadata md = new DcsMetadata(); if (!isEmptyOrNull(schemaUri)) { md.setSchemaUri(schemaUri); } final ByteArrayOutputStream out = new ByteArrayOutputStream(); reader.moveDown(); try { ((DcsStaxReader) reader.underlyingReader()).copyNode(out); } catch (XMLStreamException e) { throw new RuntimeException("Unmarshalling failed", e); } reader.moveUp(); final String metadataAsString = new String(out.toByteArray(), Charset.forName("UTF-8")); md.setMetadata(metadataAsString); return md; }
final String schemaUri = md.getSchemaUri(); String metadataBlob = md.getMetadata();
/** * The metadata for the deliverable unit * * @return the metadata */ public Set<DcsMetadata> getMetadata() { final Set<DcsMetadata> metadata = new HashSet<DcsMetadata>(this.metadata.size()); for (DcsMetadata m : this.metadata) { metadata.add(new DcsMetadata(m)); } return metadata; }
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { final String schemaUri = reader.getAttribute(A_SCHEMA); final String mdRef = reader.getAttribute(A_REF); // If we are dealing with a reference, create the reference and return if (!isEmptyOrNull(mdRef)) { final DcsMetadataRef ref = new DcsMetadataRef(); ref.setRef(mdRef); return ref; } // Otherwise we're dealing with a full, in-line DcsMetadata object final DcsMetadata md = new DcsMetadata(); if (!isEmptyOrNull(schemaUri)) { md.setSchemaUri(schemaUri); } final ByteArrayOutputStream out = new ByteArrayOutputStream(); reader.moveDown(); try { ((DcsStaxReader) reader.underlyingReader()).copyNode(out); } catch (XMLStreamException e) { throw new ConversionException(e.getMessage(), e); } reader.moveUp(); final String mdValue = new String(out.toByteArray(), Charset.forName("UTF-8")); md.setMetadata(mdValue); log.trace("Deserialized metadata blob \n{}", mdValue); return md; }
@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()); } }
public void setMetadata(Set<DcsMetadata> metadata) { Assertion.notNull(metadata); this.metadata = new HashSet<DcsMetadata>(metadata.size()); for (DcsMetadata m : metadata) { Assertion.notNull(m); this.metadata.add(new DcsMetadata(m)); } }
@Override public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext context) { final String schemaUri = reader.getAttribute(A_SCHEMA); final String mdRef = reader.getAttribute(A_REF); // If we are dealing with a reference, create the reference and return if (!isEmptyOrNull(mdRef)) { final DcsMetadataRef ref = new DcsMetadataRef(); ref.setRef(mdRef); return ref; } // Otherwise we're dealing with a full, in-line DcsMetadata object final DcsMetadata md = new DcsMetadata(); if (!isEmptyOrNull(schemaUri)) { md.setSchemaUri(schemaUri); } final ByteArrayOutputStream out = new ByteArrayOutputStream(); reader.moveDown(); try { ((DcsStaxReader) reader.underlyingReader()).copyNode(out); } catch (XMLStreamException e) { throw new ConversionException(e.getMessage(), e); } reader.moveUp(); final String mdValue = new String(out.toByteArray(), Charset.forName("UTF-8")); md.setMetadata(mdValue); log.trace("Deserialized metadata blob \n{}", mdValue); return md; }
final String schemaURI = md.getSchemaUri(); final String metadataAsString = md.getMetadata();
public void setMetadata(Set<DcsMetadata> metadata) { Assertion.notNull(metadata); this.metadata = new HashSet<DcsMetadata>(metadata.size()); for (DcsMetadata m : metadata) { Assertion.notNull(m); this.metadata.add(new DcsMetadata(m)); } }
public void addMetadata(DcsMetadata... metadata) { Assertion.notNull(metadata); for (DcsMetadata m : metadata) { Assertion.notNull(m); this.metadata.add(new DcsMetadata(m)); } }
public void addMetadata(DcsMetadata... metadata) { Assertion.notNull(metadata); for (DcsMetadata m : metadata) { Assertion.notNull(m); this.metadata.add(new DcsMetadata(m)); } }
public void addMetadata(DcsMetadata... metadata) { Assertion.notNull(metadata); for (DcsMetadata m : metadata) { Assertion.notNull(m); this.metadata.add(new DcsMetadata(m)); } }
/** * Add metadata to the deliverable unit * * @param metadata the metadata */ public void addMetadata(DcsMetadata... metadata) { Assertion.notNull(metadata); for (DcsMetadata m : metadata) { Assertion.notNull(m); this.metadata.add(new DcsMetadata(m)); } }