protected final Integer computeBucket(final String path) { return this.storageOrder.bucket(path, this.depth); }
/** * @see CanonicalNodeNameOrder#bucket(String, int) */ public int bucket(final Node ref, final int depth) { return CanonicalNodeNameOrder.bucket(ref.getName(), depth); } }
/** * @return the bucket corresponding to {@code nodeId} at depth {@code depthIndex} as mandated by * {@link CanonicalNodeNameOrder} */ public final int canonicalBucket(final NodeId nodeId, final int depthIndex) { int bucket = CanonicalNodeNameOrder.bucket(nodeId.name(), depthIndex); return bucket; }
/** * @return the bucket corresponding to {@code nodeId} at depth {@code depthIndex} as mandated by * {@link CanonicalNodeNameOrder} */ public final int canonicalBucket(final NodeId nodeId, final int depthIndex) { int bucket = CanonicalNodeNameOrder.bucket(nodeId.name(), depthIndex); return bucket; }
/** * @see CanonicalNodeNameOrder#bucket(String, int) */ public Integer bucket(final Node ref, final int depth) { return CanonicalNodeNameOrder.bucket(ref.getName(), depth); } }
protected final Integer computeBucket(final String path) { return CanonicalNodeNameOrder.bucket(path, this.depth); }
int childBucket = ORDER.bucket(childName, bucketIndex.depthIndex()); boolean applies = childBucket == bucketIndex.lastIndex().intValue();
Integer bucket = refOrder.bucket(directChildName, subtreesDepth); ImmutableSortedMap<Integer, Bucket> buckets = parent.buckets(); Bucket subtreeBucket = buckets.get(bucket);
Integer bucket = refOrder.bucket(directChildName, subtreesDepth); Bucket subtreeBucket = parent.getBucket(bucket.intValue()).orElse(null); if (subtreeBucket == null) {
@Test public void testHash() { assertEquals(590701660006484765L, CanonicalNodeNameOrder.INSTANCE.hashCodeLong("0").longValue()); assertEquals(590700560494856554L, CanonicalNodeNameOrder.INSTANCE.hashCodeLong("1").longValue()); assertEquals(590699460983228343L, CanonicalNodeNameOrder.INSTANCE.hashCodeLong("2").longValue()); assertEquals(590698361471600132L, CanonicalNodeNameOrder.INSTANCE.hashCodeLong("3").longValue()); assertEquals(287424979109030320L, CanonicalNodeNameOrder.INSTANCE.hashCodeLong("f1").longValue()); assertEquals(1791227333405493115L, CanonicalNodeNameOrder.INSTANCE .hashCodeLong("some-rather-large-feature-identifier").longValue()); String node1Name = "Lines.1"; String node2Name = "Points.1"; UnsignedLong node1Hash = CanonicalNodeNameOrder.INSTANCE.hashCodeLong(node1Name); UnsignedLong node2Hash = CanonicalNodeNameOrder.INSTANCE.hashCodeLong(node2Name); assertFalse(node1Hash.equals(node2Hash)); assertFalse(0 == CanonicalNodeNameOrder.INSTANCE.compare(node1Hash.longValue(), node1Name, node2Hash.longValue(), node2Name)); // If the bits are the same, the compare should fall back to string compare int nameCompare = node1Name.compareTo(node2Name); assertEquals(nameCompare, CanonicalNodeNameOrder.INSTANCE.compare(1L, node1Name, 1L, node2Name)); for (int i = 0; i < 8; i++) { assertTrue(CanonicalNodeNameOrder.bucket(node1Name, i) == CanonicalNodeNameOrder .bucket(node1Hash.longValue(), i)); } }