[ https://issues.apache.org/jira/browse/TINKERPOP-2965?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17741928#comment-17741928 ]
ASF GitHub Bot commented on TINKERPOP-2965: ------------------------------------------- spmallette commented on code in PR #2124: URL: https://github.com/apache/tinkerpop/pull/2124#discussion_r1259489604 ########## gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/DepthComparator.java: ########## @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.tinkerpop.gremlin.process.traversal.util; + +import org.apache.tinkerpop.gremlin.process.traversal.Step; +import org.apache.tinkerpop.gremlin.process.traversal.step.util.EmptyStep; + +import java.util.Comparator; + +/** + * A {@code Comparator} that compares steps on the depth of the traversal that they are in. + */ +public final class DepthComparator implements Comparator<Step<?,?>> { + + private static final DepthComparator instance = new DepthComparator(); + + private DepthComparator() {} + + public static DepthComparator instance() { + return instance; + } + + @Override + public int compare(final Step<?, ?> step1, final Step<?, ?> step2) { + return getDepth(step2) - getDepth(step1); + } + + private int getDepth(final Step<?,?> step) { Review Comment: oh, yeah, that could be simplified. i think i had something else happening there where `depth` made more sense. good catch. > FilterRankingStrategy removing labels it shouldn't in certain conditions > ------------------------------------------------------------------------ > > Key: TINKERPOP-2965 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2965 > Project: TinkerPop > Issue Type: Bug > Components: process > Affects Versions: 3.6.3 > Reporter: Stephen Mallette > Assignee: Stephen Mallette > Priority: Critical > > This traversal demonstrates it: > {code} > g.V().as('n').where( > __.or( > __.select('n').hasLabel('Tag'), > __.select('n').hasLabel('Person') > ) > ).select('n').project('n').by(__.valueMap().with('~tinkerpop.valueMap.tokens')) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)