@PUT @Timed @Path("{key}") @Consumes(APPLICATION_JSON) @Produces(APPLICATION_JSON_WITH_CHARSET) public Map<String, Object> update(@Context GraphManager manager, @PathParam("graph") String graph, @PathParam("key") String key, JsonVariableValue value) { E.checkArgument(value != null && value.data != null, "The variable value can't be empty"); LOG.debug("Graph [{}] set variable for {}: {}", graph, key, value); HugeGraph g = graph(manager, graph); commit(g, () -> g.variables().set(key, value.data)); return ImmutableMap.of(key, value.data); }
/** * In this case, the feature requirement for sideEffects is checked, because it means that at least one aspect of * sideEffects is supported so we need to test other features to make sure they work properly. */ @Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) public void shouldEnableFeatureOnGraphIfNotEnabled() throws Exception { assumeThat(graph.features().supports(Graph.Features.VariableFeatures.class, featureName), is(false)); try { final Graph.Variables variables = graph.variables(); variables.set("aKey", value); fail(String.format(INVALID_FEATURE_SPECIFICATION, Graph.Features.VariableFeatures.class.getSimpleName(), featureName)); } catch (Exception e) { validateException(Graph.Variables.Exceptions.dataTypeOfVariableValueNotSupported(value), e); } } }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_LONG_VALUES) public void shouldHoldVariableLong() { final Graph.Variables variables = graph.variables(); variables.set("test1", 1l); variables.set("test2", 2l); variables.set("test3", 3l); tryCommit(graph, graph -> { final Map<String, Object> m = variables.asMap(); assertEquals(1l, m.get("test1")); assertEquals(2l, m.get("test2")); assertEquals(3l, m.get("test3")); }); }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_STRING_VALUES) public void shouldHoldVariableString() { final Graph.Variables variables = graph.variables(); variables.set("test1", "1"); variables.set("test2", "2"); variables.set("test3", "3"); tryCommit(graph, graph -> { final Map<String, Object> m = variables.asMap(); assertEquals("1", m.get("test1")); assertEquals("2", m.get("test2")); assertEquals("3", m.get("test3")); }); }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_INTEGER_VALUES) public void shouldHoldVariableInteger() { final Graph.Variables variables = graph.variables(); variables.set("test1", 1); variables.set("test2", 2); variables.set("test3", 3); tryCommit(graph, graph -> { final Map<String, Object> m = variables.asMap(); assertEquals(1, m.get("test1")); assertEquals(2, m.get("test2")); assertEquals(3, m.get("test3")); }); }
private void loadDocumentContent(JCas jCas, Graph graph, Optional<Vertex> document) { if (document.isPresent()) { document.get().property(FIELD_CONTENT, coerce(jCas.getDocumentText())); } else { graph.variables().set(FIELD_CONTENT, jCas.getDocumentText()); } }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = FEATURE_VARIABLES) public void testGraphVariablesSet() throws Exception { try { graph.variables().set(key, val); fail(String.format("Setting an annotation with these arguments [key: %s value: %s] should throw an exception", key, val)); } catch (Exception ex) { validateException(expectedException, ex); } } }
private void loadGraphMetadata(JCas jCas, Graph graph, Optional<Vertex> document) { if (!document.isPresent()) { Variables variables = graph.variables(); getGraphMetadata(jCas) .entrySet() .stream() .forEach(e -> variables.set(e.getKey(), e.getValue())); } }
private void mergeGraphVariableChangesInto(final ChronoGraph currentStateGraph) { Set<String> modifiedVariables = this.getContext().getModifiedVariables(); Graph.Variables variables = currentStateGraph.variables(); for (String variable : modifiedVariables) { Object value = this.getContext().getModifiedVariableValue(variable); if (value == null) { variables.remove(variable); } else { variables.set(variable, value); } } }
private void loadDocumentContent(JCas jCas, Graph graph, Optional<Vertex> document) { if (document.isPresent()) { document.get().property(FIELD_CONTENT, coerce(jCas.getDocumentText())); } else { graph.variables().set(FIELD_CONTENT, jCas.getDocumentText()); } }
private void loadGraphMetadata(JCas jCas, Graph graph, Optional<Vertex> document) { if (!document.isPresent()) { Variables variables = graph.variables(); getGraphMetadata(jCas) .entrySet() .stream() .forEach(e -> variables.set(e.getKey(), e.getValue())); } }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_STRING_VALUES) public void testVariables() { final Graph.Variables variables = graph.variables(); variables.set("xo", "test1"); variables.set("yo", "test2"); variables.set("zo", "test3"); tryCommit(graph, graph -> assertEquals(StringFactory.graphVariablesString(variables), variables.toString())); } }
assumeThat(graph.features().supports(Graph.Features.VariableFeatures.class, featureName), is(true)); final Graph.Variables variables = graph.variables(); variables.set("aKey", value);
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_STRING_VALUES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_INTEGER_VALUES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_LONG_VALUES) public void shouldHoldVariableMixed() { final Graph.Variables variables = graph.variables(); variables.set("test1", "1"); variables.set("test2", 2); variables.set("test3", 3l); tryCommit(graph, graph -> { final Map<String, Object> m = variables.asMap(); assertEquals("1", m.get("test1")); assertEquals(2, m.get("test2")); assertEquals(3l, m.get("test3")); }); } }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_INTEGER_VALUES) public void shouldHoldVariableInteger() { final Graph.Variables variables = graph.variables(); variables.set("test1", 1); variables.set("test2", 2); variables.set("test3", 3); tryCommit(graph, graph -> { final Map<String, Object> m = variables.asMap(); assertEquals(1, m.get("test1")); assertEquals(2, m.get("test2")); assertEquals(3, m.get("test3")); }); }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_STRING_VALUES) public void shouldHoldVariableString() { final Graph.Variables variables = graph.variables(); variables.set("test1", "1"); variables.set("test2", "2"); variables.set("test3", "3"); tryCommit(graph, graph -> { final Map<String, Object> m = variables.asMap(); assertEquals("1", m.get("test1")); assertEquals("2", m.get("test2")); assertEquals("3", m.get("test3")); }); }
public static void testVariables(final HugeGraph graph) { // variables test Graph.Variables variables = graph.variables(); variables.set("owner", "zhangyi"); variables.set("time", 3); variables.set("owner", "zhangyi1"); variables.keys(); graph.tx().commit(); variables.remove("time"); variables.get("time"); variables.get("owner"); variables.remove("owner"); variables.get("owner"); }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_VARIABLES) @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = Graph.Features.VariableFeatures.FEATURE_STRING_VALUES) public void testVariables() { final Graph.Variables variables = graph.variables(); variables.set("xo", "test1"); variables.set("yo", "test2"); variables.set("zo", "test3"); tryCommit(graph, graph -> assertEquals(StringFactory.graphVariablesString(variables), variables.toString())); } }
@Test @FeatureRequirement(featureClass = Graph.Features.VariableFeatures.class, feature = FEATURE_VARIABLES) public void testGraphVariablesSet() throws Exception { try { graph.variables().set(key, val); fail(String.format("Setting an annotation with these arguments [key: %s value: %s] should throw an exception", key, val)); } catch (Exception ex) { validateException(expectedException, ex); } } }