public static void verifyElementOrder(Iterator<? extends Element> elements, String key, Order order, int expectedCount) { Comparable previous = null; int count = 0; while (elements.hasNext()) { Element element = elements.next(); Comparable current = element.value(key); if (previous != null) { int cmp = previous.compareTo(current); assertTrue(previous + " <> " + current + " @ " + count, order == Order.ASC ? cmp <= 0 : cmp >= 0); } previous = current; count++; } assertEquals(expectedCount, count); }
public static void verifyElementOrder(Iterator<? extends Element> elements, String key, Order order, int expectedCount) { Comparable previous = null; int count = 0; while (elements.hasNext()) { final Element element = elements.next(); final Comparable current = element.value(key); if (previous != null) { final int cmp = previous.compareTo(current); assertTrue(previous + " <> " + current + " @ " + count, order == Order.ASC ? cmp <= 0 : cmp >= 0); } previous = current; count++; } assertEquals(expectedCount, count); }
@Override public <V> V value(final String key) throws NoSuchElementException { return this.element.value(key); }
@Override public void addStart(final Traverser.Admin<Element> start) { this.value = null == this.bypassTraversal ? start.get().value(this.propertyKey) : TraversalUtil.apply(start, this.bypassTraversal); }
/** * Retrieve the properties associated with a particular element. * The result is a Object[] where odd indices are String keys and even indices are the values. * * @param element the element to retrieve properties from * @param includeId include Element.ID in the key/value list * @param includeLabel include Element.LABEL in the key/value list * @param propertiesToCopy the properties to include with an empty list meaning copy all properties * @return a key/value array of properties where odd indices are String keys and even indices are the values. */ public static Object[] getProperties(final Element element, final boolean includeId, final boolean includeLabel, final Set<String> propertiesToCopy) { final List<Object> keyValues = new ArrayList<>(); if (includeId) { keyValues.add(T.id); keyValues.add(element.id()); } if (includeLabel) { keyValues.add(T.label); keyValues.add(element.label()); } element.keys().forEach(key -> { if (propertiesToCopy.isEmpty() || propertiesToCopy.contains(key)) { keyValues.add(key); keyValues.add(element.value(key)); } }); return keyValues.toArray(new Object[keyValues.size()]); }
@Test @LoadGraphWith(MODERN) public void g_V_hasXage_isXgt_30XX() { final Traversal<Vertex, Vertex> traversal = get_g_V_hasXage_isXgt_30XX(); printTraversalForm(traversal); final List<Vertex> list = traversal.toList(); assertEquals(2, list.size()); for (final Element v : list) { assertTrue(v.<Integer>value("age") > 30); } }
@Test @LoadGraphWith(MODERN) public void g_V_hasXage_gt_30X() { final Traversal<Vertex, Vertex> traversal = get_g_V_hasXage_gt_30X(); printTraversalForm(traversal); final List<Vertex> list = traversal.toList(); assertEquals(2, list.size()); for (final Element v : list) { assertTrue(v.<Integer>value("age") > 30); } }
@Override public <V> V value(final String key) throws NoSuchElementException { return this.element.value(key); }
private void updateExistingProperties(LogOutput dbLog) { Set<String> existing = Sets.intersection(newKeys, oldKeys); existing.forEach(key -> { Property<Object> latestProperty = element.property(key); if (!Objects.equals(latestProperty.value(), prevElement.value(key))) { dbLog.updateProperty(latestProperty); } }); }
@Override public void addStart(final Traverser.Admin<Element> start) { this.value = null == this.bypassTraversal ? start.get().value(this.propertyKey) : TraversalUtil.apply(start, this.bypassTraversal); }
/** * Retrieve the properties associated with a particular element. * The result is a Object[] where odd indices are String keys and even indices are the values. * * @param element the element to retrieve properties from * @param includeId include Element.ID in the key/value list * @param includeLabel include Element.LABEL in the key/value list * @param propertiesToCopy the properties to include with an empty list meaning copy all properties * @return a key/value array of properties where odd indices are String keys and even indices are the values. */ public static Object[] getProperties(final Element element, final boolean includeId, final boolean includeLabel, final Set<String> propertiesToCopy) { final List<Object> keyValues = new ArrayList<>(); if (includeId) { keyValues.add(T.id); keyValues.add(element.id()); } if (includeLabel) { keyValues.add(T.label); keyValues.add(element.label()); } element.keys().forEach(key -> { if (propertiesToCopy.isEmpty() || propertiesToCopy.contains(key)) { keyValues.add(key); keyValues.add(element.value(key)); } }); return keyValues.toArray(new Object[keyValues.size()]); }
@SuppressWarnings("unchecked") private void assertNamesEqual(final Object... objects) { List<Object> list = Lists.newArrayList(objects); Object last = list.get(list.size() - 1); Set<Element> elements = null; if (last instanceof Iterable) { elements = Sets.newHashSet((Iterable<Element>) last); } else if (last instanceof Iterator) { elements = Sets.newHashSet((Iterator<Element>) last); } else if (last instanceof GraphFinalizableQueryBuilder) { elements = ((GraphFinalizableQueryBuilder<Element>) last).toSet(); } else { String typeName = "NULL"; if (last != null) { typeName = last.getClass().getName(); } fail("Last element of 'assertNamesEqual' varargs must either be a Iterable<Element> or a Iterator<Element> (found: " + typeName + ")"); } Set<String> elementNames = elements.stream().map(e -> (String) e.value("name")).collect(Collectors.toSet()); Set<String> names = list.subList(0, list.size() - 1).stream().map(k -> (String) k).collect(Collectors.toSet()); assertEquals(names, elementNames); }
@Test @LoadGraphWith(MODERN) public void g_V_hasXage_isXgt_30XX() { final Traversal<Vertex, Vertex> traversal = get_g_V_hasXage_isXgt_30XX(); printTraversalForm(traversal); final List<Vertex> list = traversal.toList(); assertEquals(2, list.size()); for (final Element v : list) { assertTrue(v.<Integer>value("age") > 30); } }
@Test @LoadGraphWith(MODERN) public void g_V_hasXage_gt_30X() { final Traversal<Vertex, Vertex> traversal = get_g_V_hasXage_gt_30X(); printTraversalForm(traversal); final List<Vertex> list = traversal.toList(); assertEquals(2, list.size()); for (final Element v : list) { assertTrue(v.<Integer>value("age") > 30); } }
public <S, E> boolean test(final Traverser.Admin<S> traverser, final Traversal.Admin<S, E> traversal) { if (this.untilHasContainer != null) { Element e = (Element) traverser.get(); return this.untilHasContainer.getPredicate().test(e.value(this.untilHasContainer.getKey())); this.untilHasContainer = this.untilHasContainers.get(0); Element e = (Element) traverser.get(); return this.untilHasContainer.getPredicate().test(e.value(this.untilHasContainer.getKey()));
public <S, E> boolean test(final Traverser.Admin<S> traverser, final Traversal.Admin<S, E> traversal) { if (this.untilHasContainer != null) { Element e = (Element) traverser.get(); return this.untilHasContainer.getPredicate().test(e.value(this.untilHasContainer.getKey())); this.untilHasContainer = this.untilHasContainers.get(0); Element e = (Element) traverser.get(); return this.untilHasContainer.getPredicate().test(e.value(this.untilHasContainer.getKey()));
@Override public boolean apply(final V element) { ChronoElement chronoElement = (ChronoElement) element; if (chronoElement.isRemoved()) { // never consider removed elements return false; } for (SearchSpecification<?> searchSpec : this.searchSpecifications) { if (element.property(searchSpec.getProperty()).isPresent() == false) { // the property in question is not present, it is NOT possible to make // any decision if it matches the given search criterion or not. In particular, // when the search is negated (e.g. 'not equals'), we decide to have a non-match // for non-existing properties return false; } Object propertyValue = element.value(searchSpec.getProperty()); boolean searchSpecApplies = ChronoGraphQueryUtil.searchSpecApplies(searchSpec, propertyValue); if (searchSpecApplies == false) { // element failed to pass this filter return false; } } // element passed all filters return true; }
for (; results.hasNext(); ) { Element element = results.next(); String modifiedString = element.value("modified");