public default <S> S getScopeValue(final Pop pop, final String key, final Traverser.Admin<?> traverser) throws IllegalArgumentException { final Object object = traverser.get(); if (object instanceof Map && ((Map<String, S>) object).containsKey(key)) return ((Map<String, S>) object).get(key); /// if (traverser.getSideEffects().exists(key)) return traverser.getSideEffects().get(key); /// final Path path = traverser.path(); if (path.hasLabel(key)) return path.get(pop, key); /// throw new IllegalArgumentException("Neither the sideEffects, map, nor path has a " + key + "-key: " + this); }
@Override protected E map(final Traverser.Admin<S> traverser) { E end = null; final Iterator<E> keyIterator = TraversalUtil.applyAll(traverser, this.keyTraversal); if (keyIterator.hasNext()) { final E key = keyIterator.next(); final Object object = traverser.get(); if (object instanceof Map && ((Map) object).containsKey(key)) end = (E) ((Map) object).get(key); else if (key instanceof String) { final String skey = (String) key; if (traverser.getSideEffects().exists(skey)) { end = traverser.getSideEffects().get((String) key); } else { final Path path = traverser.path(); if (path.hasLabel(skey)) end = null == pop ? path.get(skey) : path.get(pop, skey); } } } return null != end ? TraversalUtil.applyNullable(end, this.selectTraversal) : null; }
public default <S> S getNullableScopeValue(final Pop pop, final String key, final Traverser.Admin<?> traverser) { final Object object = traverser.get(); if (object instanceof Map && ((Map<String, S>) object).containsKey(key)) return ((Map<String, S>) object).get(key); /// if (traverser.getSideEffects().exists(key)) return traverser.getSideEffects().get(key); /// final Path path = traverser.path(); if (path.hasLabel(key)) return path.get(pop, key); /// return null; }
@Override protected E map(final Traverser.Admin<S> traverser) { E end = null; final Iterator<E> keyIterator = TraversalUtil.applyAll(traverser, this.keyTraversal); if (keyIterator.hasNext()) { final E key = keyIterator.next(); final Object object = traverser.get(); if (object instanceof Map && ((Map) object).containsKey(key)) end = (E) ((Map) object).get(key); else if (key instanceof String) { final String skey = (String) key; if (traverser.getSideEffects().exists(skey)) { end = traverser.getSideEffects().get((String) key); } else { final Path path = traverser.path(); if (path.hasLabel(skey)) end = null == pop ? path.get(skey) : path.get(pop, skey); } } } return null != end ? TraversalUtil.applyNullable(end, this.selectTraversal) : null; }
public default <S> S getScopeValue(final Pop pop, final String key, final Traverser.Admin<?> traverser) throws IllegalArgumentException { final Object object = traverser.get(); if (object instanceof Map && ((Map<String, S>) object).containsKey(key)) return ((Map<String, S>) object).get(key); /// if (traverser.getSideEffects().exists(key)) return traverser.getSideEffects().get(key); /// final Path path = traverser.path(); if (path.hasLabel(key)) return path.get(pop, key); /// throw new IllegalArgumentException("Neither the sideEffects, map, nor path has a " + key + "-key: " + this); }
public default <S> S getNullableScopeValue(final Pop pop, final String key, final Traverser.Admin<?> traverser) { final Object object = traverser.get(); if (object instanceof Map && ((Map<String, S>) object).containsKey(key)) return ((Map<String, S>) object).get(key); /// if (traverser.getSideEffects().exists(key)) return traverser.getSideEffects().get(key); /// final Path path = traverser.path(); if (path.hasLabel(key)) return path.get(pop, key); /// return null; }
@Override public TraversalSideEffects getSideEffects() { return this.baseTraverser.getSideEffects(); }
/** * Get a particular value from the side-effects of the traverser (thus, traversal). * * @param sideEffectKey the key of the value to get from the sideEffects * @param <A> the type of the returned object * @return the object in the sideEffects of the respective key */ public default <A> A sideEffects(final String sideEffectKey) throws IllegalArgumentException { return this.asAdmin().getSideEffects().<A>get(sideEffectKey); }
/** * Add a particular value to the respective side-effect of the traverser (thus, traversal). * * @param sideEffectKey the key of the value to set int the sideEffects * @param sideEffectValue the value to set for the sideEffect key */ public default void sideEffects(final String sideEffectKey, final Object sideEffectValue) throws IllegalArgumentException { this.asAdmin().getSideEffects().add(sideEffectKey, sideEffectValue); }
@Override public TraversalSideEffects getSideEffects() { return this.baseTraverser.getSideEffects(); }
/** * Get a particular value from the side-effects of the traverser (thus, traversal). * * @param sideEffectKey the key of the value to get from the sideEffects * @param <A> the type of the returned object * @return the object in the sideEffects of the respective key */ public default <A> A sideEffects(final String sideEffectKey) throws IllegalArgumentException { return this.asAdmin().getSideEffects().<A>get(sideEffectKey); }
/** * Add a particular value to the respective side-effect of the traverser (thus, traversal). * * @param sideEffectKey the key of the value to set int the sideEffects * @param sideEffectValue the value to set for the sideEffect key */ public default void sideEffects(final String sideEffectKey, final Object sideEffectValue) throws IllegalArgumentException { this.asAdmin().getSideEffects().add(sideEffectKey, sideEffectValue); }