@Deprecated public PropertyMapStep(final Traversal.Admin traversal, final boolean includeTokens, final PropertyType propertyType, final String... propertyKeys) { this(traversal, propertyType, propertyKeys); this.configure(WithOptions.tokens, includeTokens ? WithOptions.all : WithOptions.none); }
@Override public Set<TraverserRequirement> getRequirements() { return this.getSelfAndChildRequirements(TraverserRequirement.OBJECT); }
final boolean isVertex = element instanceof Vertex; if (this.returnType == PropertyType.VALUE) { if (includeToken(WithOptions.ids)) map.put(T.id, element.id()); if (element instanceof VertexProperty) { if (includeToken(WithOptions.keys)) map.put(T.key, ((VertexProperty<?>) element).key()); if (includeToken(WithOptions.values)) map.put(T.value, ((VertexProperty<?>) element).value()); } else { if (includeToken(WithOptions.labels)) map.put(T.label, element.label());
propertyMapSteps.forEach(step -> { if (step.getPropertyKeys().length > 0 && ElementHelper.keyExists(partitionKey, step.getPropertyKeys())) throw new IllegalStateException("Cannot explicitly request the partitionKey in the traversal"); if (step.getReturnType() == PropertyType.PROPERTY) { } else if (step.getReturnType() == PropertyType.VALUE) { final PropertyMapStep propertyMapStep = new PropertyMapStep(traversal, PropertyType.PROPERTY, step.getPropertyKeys()); propertyMapStep.configure(WithOptions.tokens, step.getIncludedTokens()); TraversalHelper.replaceStep(step, propertyMapStep, traversal); } else { throw new IllegalStateException(String.format("%s is not accounting for a particular %s %s", PartitionStrategy.class.getSimpleName(), PropertyType.class.toString(), step.getReturnType()));
propertyMapStep.isIncludeTokens(), propertyMapStep.getReturnType(), propertyMapStep.getPropertyKeys());
private Collection<String> getRestrictedProperties(Step<?, ?> step) { Collection<String> ret = null; if (step instanceof PropertiesStep<?>) { PropertiesStep<?> ps = (PropertiesStep<?>) step; ret = Arrays.asList(ps.getPropertyKeys()); } else if (step instanceof PropertyMapStep<?, ?>) { PropertyMapStep<?, ?> pms = (PropertyMapStep<?, ?>) step; ret = Arrays.asList(pms.getPropertyKeys()); } // if no property keys are provided, all properties should be returned if (ret != null && ret.isEmpty()) { ret = null; } return ret; }
if ('p' != propertyType) { final Traversal.Admin<?, ?> temp = new DefaultTraversal<>(); temp.addStep(new PropertiesStep<>(temp, PropertyType.PROPERTY, ((PropertyMapStep) step).getPropertyKeys())); if ('v' == propertyType) TraversalHelper.insertTraversal(0, nonCheckPropertyCriterion.clone(), temp); else temp.addStep(checkPropertyCriterion.clone()); ((PropertyMapStep) step).setPropertyTraversal(temp);
public void setPropertyTraversal(final Traversal.Admin<Element, ? extends Property> propertyTraversal) { this.propertyTraversal = this.integrateChild(propertyTraversal); }
/** * Map the {@link Element} to a {@link Map} of the property values key'd according to their {@link Property#key}. * If no property keys are provided, then all property values are retrieved. * * @param includeTokens whether to include {@link T} tokens in the emitted map. * @param propertyKeys the properties to retrieve * @param <E2> the value type of the returned properties * @return the traversal with an appended {@link PropertyMapStep}. * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#valuemap-step" target="_blank">Reference Documentation - ValueMap Step</a> * @since 3.0.0-incubating * @deprecated As of release 3.4.0, deprecated in favor of {@link GraphTraversal#valueMap(String...)} in conjunction with * {@link GraphTraversal#with(String, Object)}. */ @Deprecated public default <E2> GraphTraversal<S, Map<Object, E2>> valueMap(final boolean includeTokens, final String... propertyKeys) { this.asAdmin().getBytecode().addStep(Symbols.valueMap, includeTokens, propertyKeys); return this.asAdmin().addStep(new PropertyMapStep<>(this.asAdmin(), includeTokens, PropertyType.VALUE, propertyKeys)); }
propertyMapSteps.forEach(step -> { if (step.getPropertyKeys().length > 0 && ElementHelper.keyExists(partitionKey, step.getPropertyKeys())) throw new IllegalStateException("Cannot explicitly request the partitionKey in the traversal"); if (step.getReturnType() == PropertyType.PROPERTY) { } else if (step.getReturnType() == PropertyType.VALUE) { final PropertyMapStep propertyMapStep = new PropertyMapStep(traversal, PropertyType.PROPERTY, step.getPropertyKeys()); propertyMapStep.configure(WithOptions.tokens, step.getIncludedTokens()); TraversalHelper.replaceStep(step, propertyMapStep, traversal); } else { throw new IllegalStateException(String.format("%s is not accounting for a particular %s %s", PartitionStrategy.class.getSimpleName(), PropertyType.class.toString(), step.getReturnType()));
propertyMapStep.isIncludeTokens(), propertyMapStep.getReturnType(), propertyMapStep.getPropertyKeys());
private Collection<String> getRestrictedProperties(Step<?, ?> step) { Collection<String> ret = null; if (step instanceof PropertiesStep<?>) { PropertiesStep<?> ps = (PropertiesStep<?>) step; ret = Arrays.asList(ps.getPropertyKeys()); } else if (step instanceof PropertyMapStep<?, ?>) { PropertyMapStep<?, ?> pms = (PropertyMapStep<?, ?>) step; ret = Arrays.asList(pms.getPropertyKeys()); } // if no property keys are provided, all properties should be returned if (ret != null && ret.isEmpty()) { ret = null; } return ret; }
if ('p' != propertyType) { final Traversal.Admin<?, ?> temp = new DefaultTraversal<>(); temp.addStep(new PropertiesStep<>(temp, PropertyType.PROPERTY, ((PropertyMapStep) step).getPropertyKeys())); if ('v' == propertyType) TraversalHelper.insertTraversal(0, nonCheckPropertyCriterion.clone(), temp); else temp.addStep(checkPropertyCriterion.clone()); ((PropertyMapStep) step).setPropertyTraversal(temp);
@Override public void modulateBy(final Traversal.Admin<?, ?> selectTraversal) { this.traversalRing.addTraversal(this.integrateChild(selectTraversal)); }
/** * Map the {@link Element} to a {@link Map} of the properties key'd according to their {@link Property#key}. * If no property keys are provided, then all properties are retrieved. * * @param propertyKeys the properties to retrieve * @param <E2> the value type of the returned properties * @return the traversal with an appended {@link PropertyMapStep}. * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#propertymap-step" target="_blank">Reference Documentation - PropertyMap Step</a> * @since 3.0.0-incubating */ public default <E2> GraphTraversal<S, Map<String, E2>> propertyMap(final String... propertyKeys) { this.asAdmin().getBytecode().addStep(Symbols.propertyMap, propertyKeys); return this.asAdmin().addStep(new PropertyMapStep<>(this.asAdmin(), false, PropertyType.PROPERTY, propertyKeys)); }
private List<String> getRestrictedProperties(Step<?, ?> step) { List<String> ret = null; if (step instanceof PropertiesStep<?>) { PropertiesStep<?> ps = (PropertiesStep<?>) step; ret = Arrays.asList(ps.getPropertyKeys()); } else if (step instanceof PropertyMapStep<?, ?>) { PropertyMapStep<?, ?> pms = (PropertyMapStep<?, ?>) step; ret = Arrays.asList(pms.getPropertyKeys()); } // if no property keys are provided, all properties should be returned if (ret != null && ret.isEmpty()) { ret = null; } return ret; } }
@Override public void setTraversal(final Traversal.Admin<?, ?> parentTraversal) { super.setTraversal(parentTraversal); if (null != this.propertyTraversal) this.integrateChild(this.propertyTraversal); this.traversalRing.getTraversals().forEach(this::integrateChild); }
/** * Map the {@link Element} to a {@link Map} of the property values key'd according to their {@link Property#key}. * If no property keys are provided, then all property values are retrieved. * * @param propertyKeys the properties to retrieve * @param <E2> the value type of the returned properties * @return the traversal with an appended {@link PropertyMapStep}. * @see <a href="http://tinkerpop.apache.org/docs/${project.version}/reference/#valuemap-step" target="_blank">Reference Documentation - ValueMap Step</a> * @since 3.0.0-incubating */ public default <E2> GraphTraversal<S, Map<Object, E2>> valueMap(final String... propertyKeys) { this.asAdmin().getBytecode().addStep(Symbols.valueMap, propertyKeys); return this.asAdmin().addStep(new PropertyMapStep<>(this.asAdmin(), false, PropertyType.VALUE, propertyKeys)); }
@Override public Set<TraverserRequirement> getRequirements() { return this.getSelfAndChildRequirements(TraverserRequirement.OBJECT); }
@Deprecated public PropertyMapStep(final Traversal.Admin traversal, final boolean includeTokens, final PropertyType propertyType, final String... propertyKeys) { this(traversal, propertyType, propertyKeys); this.configure(WithOptions.tokens, includeTokens ? WithOptions.all : WithOptions.none); }