private void sendMetadataValuesImpl(XMLStreamWriter serializer) throws XMLStreamException { if (getMetadataValues() == null || getMetadataValues().size() == 0) return; serializer.writeStartElement(REST_API_NS, "metadata-values"); for (Map.Entry<String, String> value : getMetadataValues().entrySet()) { serializer.writeStartElement("rapi", "metadata-value", REST_API_NS); serializer.writeAttribute("key", value.getKey()); serializer.writeCharacters(value.getValue()); serializer.writeEndElement(); } serializer.writeEndElement(); }
/** * Locally adds the metadata-value to the current metadata-values for the document. * * @param key the key of metadata-value * @param value the value of metadata-value * @return the document metadata handle */ public DocumentMetadataHandle withMetadataValue(String key, String value) { getMetadataValues().put(key, value); return this; }
private void receiveMetadataValuesImpl(Document document) { DocumentMetadataValues metadataValues = getMetadataValues(); metadataValues.clear(); if (document == null) return; NodeList valuesIn = document.getElementsByTagNameNS(REST_API_NS, "metadata-values"); int valuesInLength = valuesIn.getLength(); for (int i = 0; i < valuesInLength; i++) { String key = null; String value = null; NodeList children = valuesIn.item(i).getChildNodes(); for (int j = 0; j < children.getLength(); j++) { Node node = children.item(j); if (node.getNodeType() != Node.ELEMENT_NODE) continue; Element element = (Element) node; if ("metadata-value".equals(element.getLocalName())) { key = element.getAttribute("key"); value = element.getTextContent(); } else if (logger.isWarnEnabled()) logger.warn("Skipping unknown value element", element.getTagName()); if (key == null || value == null) { if (logger.isWarnEnabled()) logger.warn("Could not parse value"); continue; } metadataValues.put(key, value); } } }
DocumentMetadataHandle metadataHandle = new DocumentMetadataHandle(); DocumentMetadataHandle readMetadataHandle = new DocumentMetadataHandle(); DocumentMetadataValues metadatavalues = readMetadataHandle.getMetadataValues(); Transaction t1 = null; Transaction t2 = null; metadataHandle.getMetadataValues().add("key1", "value1"); metadataHandle.getMetadataValues().add("key2", "value2"); metadataHandle.getMetadataValues().add("key3", "value3"); metadataHandle.getMetadataValues().add("keyTrx1", "valueTrx1"); docMgr.writeMetadata(docId, metadataHandle, t1); docMgr.readMetadata(docId, readMetadataHandle, t1); t1.rollback(); docMgr.readMetadata(docId, readMetadataHandle); metadatavalues = readMetadataHandle.getMetadataValues(); assertFalse(" metadata contains unexpected string valueTrx1", metadatavalues.containsValue("valueTrx1")); metadataHandle.getMetadataValues().add("keyTrx2", "valueTrx2"); DocumentDescriptor desc = docMgr.create(template, metadataHandle, contentHandle, t2); String docId1 = desc.getUri(); t2.commit(); docMgr.readAs(docId1, readMetadataHandle, String.class); metadatavalues = readMetadataHandle.getMetadataValues(); assertTrue(" metadata doesnot contains string 'valueTrx2' after trx commit", metadatavalues.containsValue("valueTrx2")); waitForPropertyPropagate();
metadataHandle.getProperties().put("myCalendar", Calendar.getInstance().get(Calendar.YEAR)); metadataHandle.setQuality(23); metadataHandle.getMetadataValues().add("key11", "value11"); metadataHandle.getMetadataValues().add("key22", "value22"); DocumentPermissions permissions = readMetadataHandle.getPermissions(); DocumentCollections collections = readMetadataHandle.getCollections(); DocumentMetadataValues metadatavalues = readMetadataHandle.getMetadataValues();
metadataHandle.getProperties().put("myCalendar", Calendar.getInstance().get(Calendar.YEAR)); metadataHandle.setQuality(23); metadataHandle.getMetadataValues().add("key1", "value1"); metadataHandle.getMetadataValues().add("key2", "value2"); metadataHandle.getMetadataValues().add("key3", "value3"); DocumentPermissions permissions = readMetadataHandle.getPermissions(); DocumentCollections collections = readMetadataHandle.getCollections(); DocumentMetadataValues metadatavalues = readMetadataHandle.getMetadataValues();
metadataHandle.getMetadataValues().add("Name", "kiran"); metadataHandle.getMetadataValues().put("Company", "MarkLogic"); metadataHandle.getMetadataValues().put("Location", "SanCarlos"); metadataHandle.getMetadataValues().add("zip", "95050"); metadataHandle.getMetadataValues().add("Locations", "10"); DocumentPermissions permissions = readMetadataHandle.getPermissions(); DocumentCollections collections = readMetadataHandle.getCollections(); DocumentMetadataValues metadatavalues = readMetadataHandle.getMetadataValues(); metadataHandle.getMetadataValues().remove("Name"); metadataHandle.getMetadataValues().replace("Company", "MarkLogic", "marklogicians"); metadataHandle.getMetadataValues().remove("Location", "SanCarlos"); metadataHandle.withMetadataValue("HQ", "USA"); metadataHandle.getMetadataValues().merge("HQ", "CA", String::concat); writeDocumentUsingBytesHandle(client, filename, "/write-bin-byteshandle-metadata/", metadataHandle, "Binary"); readMetadataHandle = readMetadataFromDocument(client, "/write-bin-byteshandle-metadata/" + filename, "Binary"); metadatavalues = readMetadataHandle.getMetadataValues(); assertTrue("key=HQ not found in metadata", metadatavalues.containsKey("HQ")); assertTrue("value=USACA not found in metadata", metadatavalues.containsValue("USACA")); docManager.patch("/write-bin-byteshandle-metadata/" + filename, patchHandle); readMetadataHandle = docManager.readMetadata("/write-bin-byteshandle-metadata/" + filename, readMetadataHandle); metadatavalues = readMetadataHandle.getMetadataValues(); BytesHandle contentHandle = new BytesHandle(); assertTrue("value=test-patch not found in metadata", metadatavalues.containsValue("test-patch")); docman.readAs("/write-bin-byteshandle-metadata/" + filename, metaHandle, byte[].class); docman.read("/write-bin-byteshandle-metadata/" + filename, readmetadata, contentHandle, 0, 100);
metaWriteHandle.getProperties().put("third", thirdChildren); metaWriteHandle.setQuality(3); metaWriteHandle.getMetadataValues().add("key1", "value1"); metaWriteHandle.getMetadataValues().add("key2", "value2"); DocumentMetadataValues metadataValues = metaReadHandle.getMetadataValues(); assertEquals("Wrong value for key in the values metadata", "value1", metadataValues.get("key1")); assertEquals("Wrong value for key in the values metadata", "value2", metadataValues.get("key2"));