public static Metadata metadataStringToMap(String metadataString, Visibility visibility) { Metadata metadata = new Metadata(); if (metadataString != null && metadataString.length() > 0) { JSONObject metadataJson = new JSONObject(metadataString); for (Object keyObj : metadataJson.keySet()) { String key = "" + keyObj; metadata.add(key, metadataJson.get(key), visibility); } } return metadata; }
private void updateProductData(ElementUpdateContext<Vertex> elemCtx, StringVisalloProperty property, JSONObject data) { if (data == null) { return; } Visibility visibility = VISIBILITY.getVisibility(); Metadata metadata = new Metadata(); JSONUtil.streamKeys(data).forEach(key -> { Object valueObject = data.get(key); if (JSONObject.NULL.equals(valueObject)) { property.removeProperty(elemCtx, key, visibility); } else { String value = valueObject.toString(); property.updateProperty(elemCtx, key, value, metadata, visibility); } }); }
private Metadata createPropertyMetadata(User user, Date modifiedDate, Visibility visibility) { Metadata metadata = new Metadata(); VisalloProperties.MODIFIED_DATE_METADATA.setMetadata(metadata, modifiedDate, visibility); if (user != null) { VisalloProperties.MODIFIED_BY_METADATA.setMetadata(metadata, user.getUserId(), visibility); } return metadata; } }
private Metadata createPropertyMetadata(User user, Date modifiedDate, Visibility visibility) { Metadata metadata = new Metadata(); VisalloProperties.MODIFIED_DATE_METADATA.setMetadata(metadata, modifiedDate, visibility); if (user != null) { VisalloProperties.MODIFIED_BY_METADATA.setMetadata(metadata, user.getUserId(), visibility); } return metadata; } }
private Metadata getMetadata(Date modifiedDate, User user, Visibility visibility) { Metadata metadata = new Metadata(); VisalloProperties.MODIFIED_DATE_METADATA.setMetadata(metadata, modifiedDate, visibility); if (user != null) { VisalloProperties.MODIFIED_BY_METADATA.setMetadata(metadata, user.getUserId(), visibility); } return metadata; }
private void setProperty(JSONObject propertyJson, GraphPropertyWorkData data) { String propertyKey = propertyJson.optString("key", null); if (propertyKey == null) { propertyKey = ElementMutation.DEFAULT_KEY; } String propertyName = propertyJson.optString("name", null); checkNotNull(propertyName, "name is required: " + propertyJson.toString()); String propertyValue = propertyJson.optString("value", null); checkNotNull(propertyValue, "value is required: " + propertyJson.toString()); String visibilitySource = propertyJson.optString("visibilitySource", null); Visibility visibility; if (visibilitySource == null) { visibility = data.getVisibility(); } else { visibility = getVisibilityTranslator().toVisibility(visibilitySource).getVisibility(); } Metadata metadata = new Metadata(); VisalloProperties.VISIBILITY_JSON_METADATA.setMetadata(metadata, VisibilityJson.updateVisibilitySource(null, visibilitySource), getVisibilityTranslator().getDefaultVisibility()); data.getElement().addPropertyValue(propertyKey, propertyName, propertyValue, metadata, visibility, getAuthorizations()); }
public Metadata createPropertyMetadata(User user) { Metadata metadata = new Metadata(); VisibilityJson visibilityJson = getPropertyVisibilityJson(); Visibility defaultVisibility = visibilityTranslator.getDefaultVisibility(); if (visibilityJson != null) { VisalloProperties.VISIBILITY_JSON_METADATA.setMetadata(metadata, visibilityJson, defaultVisibility); } VisalloProperties.MODIFIED_DATE_METADATA.setMetadata(metadata, new Date(), defaultVisibility); VisalloProperties.MODIFIED_BY_METADATA.setMetadata(metadata, user.getUserId(), defaultVisibility); return metadata; }
public static Metadata mergeMetadata(Metadata... metadatas) { Metadata mergedMetadata = new Metadata(); for (Metadata metadata : metadatas) { for (Metadata.Entry entry : metadata.entrySet()) { mergedMetadata.add(entry.getKey(), entry.getValue(), entry.getVisibility()); } } return mergedMetadata; } }
private void importLiteral(VertexBuilder v, Statement statement, File baseDir, GraphPropertyWorkData data, VisibilityJson visibilityJson, Visibility visibility, User user) { String propertyName = statement.getPredicate().toString(); RDFDatatype datatype = statement.getLiteral().getDatatype(); Object literalValue = statement.getLiteral().getValue(); Object value = literalValue; if (datatype == null || XSDDatatype.XSDstring.equals(datatype)) { String valueString = statement.getLiteral().toString(); if (valueString.startsWith("streamingValue:")) { value = convertStreamingValueJsonToValueObject(baseDir, valueString); } } else if (literalValue instanceof XSDDateTime) { XSDDateTime xsdDateTime = (XSDDateTime) literalValue; value = xsdDateTime.asCalendar().getTime(); } else { value = literalValue; } Metadata metadata = new Metadata(); if (data != null) { metadata = data.createPropertyMetadata(user); } else { VisalloProperties.VISIBILITY_JSON_METADATA.setMetadata(metadata, visibilityJson, visibility); VisalloProperties.MODIFIED_BY_METADATA.setMetadata(metadata, user.getUserId(), visibility); VisalloProperties.MODIFIED_DATE_METADATA.setMetadata(metadata, new Date(), visibility); } v.addPropertyValue(MULTI_VALUE_KEY, propertyName, value, metadata, visibility); }
@Override public void setProperty(String name, Object value, User user, Authorizations authorizations) { Visibility visibility = OntologyRepository.VISIBILITY.getVisibility(); Metadata metadata = new Metadata(); VisalloProperties.MODIFIED_DATE_METADATA.setMetadata(metadata, new Date(), visibility); if (user != null) { VisalloProperties.MODIFIED_BY_METADATA.setMetadata(metadata, user.getUserId(), visibility); } getVertex().setProperty(name, value, metadata, visibility, authorizations); getVertex().getGraph().flush(); }
Metadata textMetadata = new Metadata(); VisalloProperties.MIME_TYPE_METADATA.setMetadata(textMetadata, "text/plain", getVisibilityTranslator().getDefaultVisibility()); StreamingPropertyValue textPropertyValue = new StreamingPropertyValue(asStream(text), String.class);
private boolean addJustification( ElementBuilder elementBuilder, String justificationText, VisalloVisibility visalloVisibility, VisibilityJson visibilityJson, User user ) { Visibility visibility = visalloVisibility.getVisibility(); if (justificationText != null) { Metadata metadata = new Metadata(); Visibility metadataVisibility = visibilityTranslator.getDefaultVisibility(); VisalloProperties.MODIFIED_DATE_METADATA.setMetadata(metadata, new Date(), metadataVisibility); VisalloProperties.MODIFIED_BY_METADATA.setMetadata(metadata, user.getUserId(), metadataVisibility); VisalloProperties.VISIBILITY_JSON_METADATA.setMetadata(metadata, visibilityJson, metadataVisibility); PropertyJustificationMetadata value = new PropertyJustificationMetadata(justificationText); VisalloProperties.JUSTIFICATION.setProperty(elementBuilder, value, metadata, visibility); return true; } return false; }
private Metadata buildMetadata(IngestOptions ingestOptions, Map<String, Object> map, String visibilitySource) { Metadata metadata = new Metadata(); Visibility defaultVisibility = visibilityTranslator.getDefaultVisibility(); VisalloProperties.MODIFIED_DATE_METADATA.setMetadata(metadata, new Date(), defaultVisibility); VisalloProperties.MODIFIED_BY_METADATA.setMetadata( metadata, ingestOptions.getIngestUser().getUserId(), defaultVisibility ); VisalloProperties.CONFIDENCE_METADATA.setMetadata( metadata, GraphRepository.SET_PROPERTY_CONFIDENCE, defaultVisibility ); VisalloProperties.VISIBILITY_JSON_METADATA.setMetadata( metadata, new VisibilityJson(visibilitySource), defaultVisibility ); if (ingestOptions.getDefaultMetadata() != null) { ingestOptions.getDefaultMetadata().forEach((k, v) -> metadata.add(k, v, defaultVisibility)); } if (map != null) { map.forEach((k, v) -> metadata.add(k, v, defaultVisibility)); } return metadata; }
private void createVertex(String data, String mimeType) throws UnsupportedEncodingException { VertexBuilder v = getGraph().prepareVertex("v1", visibility); StreamingPropertyValue textValue = new StreamingPropertyValue(new ByteArrayInputStream(data.getBytes("UTF-8")), byte[].class); textValue.searchIndex(false); Metadata metadata = new Metadata(); metadata.add(VisalloProperties.MIME_TYPE.getPropertyName(), mimeType, getVisibilityTranslator().getDefaultVisibility()); VisalloProperties.RAW.setProperty(v, textValue, metadata, visibility); v.save(getGraphAuthorizations()); }
public Metadata createMetadata() { Metadata metadata = new Metadata(); VisalloProperties.MODIFIED_DATE_METADATA.setMetadata(metadata, modifiedDate, DEFAULT_VISIBILITY); VisalloProperties.MODIFIED_BY_METADATA.setMetadata(metadata, modifiedBy.getUserId(), DEFAULT_VISIBILITY); VisalloProperties.VISIBILITY_JSON_METADATA.setMetadata(metadata, visibilityJson, DEFAULT_VISIBILITY); if (confidence != null) { VisalloProperties.CONFIDENCE_METADATA.setMetadata(metadata, confidence, DEFAULT_VISIBILITY); } if (derivedFromProperty != null) { VisalloProperties.DERIVED_FROM_METADATA.setMetadata(metadata, derivedFromProperty, DEFAULT_VISIBILITY); } for (AdditionalMetadataItem additionalMetadataItem : additionalMetadataItems) { metadata.add( additionalMetadataItem.getKey(), additionalMetadataItem.getValue(), additionalMetadataItem.getVisibility() ); } return metadata; }
@Test public void testPublishPropertyWithoutChange() { Visibility defaultVisibility = getVisibilityTranslator().getDefaultVisibility(); Vertex entity1Vertex = getGraph().prepareVertex("entity1Id", defaultVisibility) .addPropertyValue("key1", JUNIT_PROPERTY_NAME, "value1", new Metadata(), defaultVisibility) .addPropertyValue("key9", "prop9", "value9", new Metadata(), defaultVisibility) .save(getAuthorizationRepository().getGraphAuthorizations(getUserRepository().getSystemUser())); ClientApiPublishItem[] publishDate = new ClientApiPublishItem[1]; publishDate[0] = new ClientApiPropertyPublishItem() {{ setAction(Action.ADD_OR_UPDATE); setKey("key1"); setName(JUNIT_PROPERTY_NAME); setVertexId(entity1Vertex.getId()); }}; Authorizations noAuthorizations = getAuthorizationRepository().getGraphAuthorizations(user); ClientApiWorkspacePublishResponse response = getWorkspaceRepository().publish( publishDate, user, workspace.getWorkspaceId(), noAuthorizations ); assertEquals(1, response.getFailures().size()); assertEquals(ClientApiPublishItem.Action.ADD_OR_UPDATE, response.getFailures().get(0).getAction()); assertEquals("property", response.getFailures().get(0).getType()); assertEquals( "no property with key 'key1' and name '" + JUNIT_PROPERTY_NAME + "' found on workspace '" + workspace.getWorkspaceId() + "'", response.getFailures().get(0).getErrorMessage() ); }
@Test public void testDifferentKey() throws UnsupportedEncodingException { VertexBuilder v = getGraph().prepareVertex("v1", visibility); StreamingPropertyValue textValue = new StreamingPropertyValue(new ByteArrayInputStream("<html><body>Text1</body></html>".getBytes("UTF-8")), byte[].class); textValue.searchIndex(false); Metadata metadata = new Metadata(); metadata.add(VisalloProperties.MIME_TYPE.getPropertyName(), "text/html", getVisibilityTranslator().getDefaultVisibility()); v.addPropertyValue("key1", "http://visallo.org/test#raw1", textValue, metadata, visibility); v.save(getGraphAuthorizations()); Vertex vertex = getGraph().getVertex("v1", getGraphAuthorizations()); run(gpw, createWorkerPrepareData(), vertex); Property text1Property = vertex.getProperty("key1", "http://visallo.org/test#text1"); assertTrue(text1Property != null); assertThat(((StreamingPropertyValue) text1Property.getValue()).readToString(), equalTo("Text1")); }
@Test public void testMultipleRaws() throws UnsupportedEncodingException { VertexBuilder v = getGraph().prepareVertex("v1", visibility); StreamingPropertyValue textValue = new StreamingPropertyValue(new ByteArrayInputStream("<html><body>Text1</body></html>".getBytes("UTF-8")), byte[].class); textValue.searchIndex(false); Metadata metadata = new Metadata(); metadata.add(VisalloProperties.MIME_TYPE.getPropertyName(), "text/html", getVisibilityTranslator().getDefaultVisibility()); v.setProperty("http://visallo.org/test#raw1", textValue, metadata, visibility); textValue = new StreamingPropertyValue(new ByteArrayInputStream("<html><body>Text2</body></html>".getBytes("UTF-8")), byte[].class); textValue.searchIndex(false); metadata = new Metadata(); metadata.add(VisalloProperties.MIME_TYPE.getPropertyName(), "text/html", getVisibilityTranslator().getDefaultVisibility()); v.setProperty("http://visallo.org/test#raw2", textValue, metadata, visibility); v.save(getGraphAuthorizations()); Vertex vertex = getGraph().getVertex("v1", getGraphAuthorizations()); run(gpw, createWorkerPrepareData(), vertex); Property text1Property = vertex.getProperty("http://visallo.org/test#text1"); assertTrue(text1Property != null); assertThat(((StreamingPropertyValue) text1Property.getValue()).readToString(), equalTo("Text1")); assertThat(VisalloProperties.TEXT_DESCRIPTION_METADATA.getMetadataValue(text1Property.getMetadata()), equalTo("Text 1")); Property text2Property = vertex.getProperty("http://visallo.org/test#text2"); assertTrue(text2Property != null); assertThat(((StreamingPropertyValue) text2Property.getValue()).readToString(), equalTo("Text2")); assertThat(VisalloProperties.TEXT_DESCRIPTION_METADATA.getMetadataValue(text2Property.getMetadata()), equalTo(null)); }
Metadata metadata = new Metadata(); Visibility defaultVisibility = visibilityTranslator.getDefaultVisibility(); if (sourceFileName != null) {
private void doTestPublishPropertyAdd(String propertyName, String expectedError, SandboxStatus expectedEdgeStatus) { User systemUser = getUserRepository().getSystemUser(); Authorizations systemAuthorizations = getAuthorizationRepository().getGraphAuthorizations(systemUser); Vertex vertex = getGraphRepository().addVertex("v1", JUNIT_CONCEPT_TYPE, "", null, null, null, systemUser, systemAuthorizations); getWorkspaceRepository().updateEntityOnWorkspace(workspace, vertex.getId(), user); String propertyKey = "junit"; VisibilityAndElementMutation<Vertex> setPropertyMutation = getGraphRepository().setProperty(vertex, propertyName, propertyKey, "new value", new Metadata(), "", "", workspace.getWorkspaceId(), null, null, user, workspaceAuthorizations); setPropertyMutation.elementMutation.save(workspaceAuthorizations); ClientApiPropertyPublishItem publishItem = new ClientApiPropertyPublishItem(); publishItem.setVertexId(vertex.getId()); publishItem.setName(propertyName); publishItem.setKey(propertyKey); publishItem.setAction(ClientApiPublishItem.Action.ADD_OR_UPDATE); ClientApiWorkspacePublishResponse response = getWorkspaceRepository().publish(new ClientApiPublishItem[]{publishItem}, user, workspace.getWorkspaceId(), workspaceAuthorizations); Property property = getGraph().getVertex(vertex.getId(), workspaceAuthorizations).getProperty(propertyKey, propertyName); if (expectedError != null) { assertPublishFailure(response, workspace, property, expectedError); } else { assertPublishSuccess(response, workspace, property); } if (expectedEdgeStatus != null) { OntologyProperty ontologyProperty = getOntologyRepository().getPropertyByIRI(propertyName, workspace.getWorkspaceId()); assertEquals(expectedEdgeStatus, ontologyProperty.getSandboxStatus()); } }