@Test public void testScopedDirectoryLayerResolvesWithoutMetadata() { MetadataHook hook = name -> Tuple.from("metadata-for-" + name).pack(); ResolverCreateHooks createHooks = new ResolverCreateHooks(ResolverCreateHooks.DEFAULT_CHECK, hook); ResolverResult result = globalScope.resolveWithMetadata("some-key", createHooks).join(); assertArrayEquals(Tuple.from("metadata-for-some-key").pack(), result.getMetadata(), "metadata was added"); ResolverResult resultFromScoped = ScopedDirectoryLayer.global(database) .resolveWithMetadata("some-key", ResolverCreateHooks.getDefault()) .join(); assertEquals(resultFromScoped.getValue(), result.getValue()); assertThat(resultFromScoped.getMetadata(), is(nullValue())); try (FDBRecordContext context = database.openContext()) { assertArrayEquals(globalScope.mustResolveWithMetadata(context, "some-key").join().getMetadata(), Tuple.from("metadata-for-some-key").pack(), "we can still read the metadata with " + globalScope.getClass().getName()); } }
public static ExtendedDirectoryLayer global(@Nonnull FDBDatabase database) { return new ExtendedDirectoryLayer(database, null, null); }
ExtendedDirectoryLayer extends LocatableResolver { public static ExtendedDirectoryLayer global(@Nonnull FDBDatabase database) { return new ExtendedDirectoryLayer(database, null, null); } }
ExtendedDirectoryLayer extends LocatableResolver { public static ExtendedDirectoryLayer global(@Nonnull FDBDatabase database) { return new ExtendedDirectoryLayer(database, null, null); } @Deprecated @API(API.Status.DEPRECATED)  ExtendedDirectoryLayer(@Nonnull FDBRecordContext context, @Nonnull KeySpacePath path);  ExtendedDirectoryLayer(@Nonnull FDBDatabase database, @Nonnull ResolvedKeySpacePath path); private  ExtendedDirectoryLayer(@Nonnull FDBDatabase database,
                                   @Nullable KeySpacePath path,
                                   @Nullable CompletableFuture<ResolvedKeySpacePath> resolvedPathFuture); }
ExtendedDirectoryLayer extends LocatableResolver { public static ExtendedDirectoryLayer global(@Nonnull FDBDatabase database) { return new ExtendedDirectoryLayer(database, null, null); } @Deprecated @API(API.Status.DEPRECATED)  ExtendedDirectoryLayer(@Nonnull FDBRecordContext context, @Nonnull KeySpacePath path);  ExtendedDirectoryLayer(@Nonnull FDBDatabase database, @Nonnull ResolvedKeySpacePath path); private  ExtendedDirectoryLayer(@Nonnull FDBDatabase database,
                                   @Nullable KeySpacePath path,
                                   @Nullable CompletableFuture<ResolvedKeySpacePath> resolvedPathFuture); static ExtendedDirectoryLayer global(@Nonnull FDBDatabase database); @Override CompletableFuture<Void> setMapping(FDBRecordContext context, String key, ResolverResult value); @Override CompletableFuture<Void> updateMetadata(FDBRecordContext context, String key, byte[] metadata); @Override CompletableFuture<Void> setWindow(long count); @Override @Nonnull CompletableFuture<Subspace> getMappingSubspaceAsync(); @Override @Nonnull ResolverResult deserializeValue(byte[] value); @Override @Nonnull CompletableFuture<Subspace> getBaseSubspaceAsync(); }
ExtendedDirectoryLayer extends LocatableResolver { public static ExtendedDirectoryLayer global(@Nonnull FDBDatabase database) { return new ExtendedDirectoryLayer(database, null, null); } @Deprecated @API(API.Status.DEPRECATED)  ExtendedDirectoryLayer(@Nonnull FDBRecordContext context, @Nonnull KeySpacePath path);  ExtendedDirectoryLayer(@Nonnull FDBDatabase database, @Nonnull ResolvedKeySpacePath path); private  ExtendedDirectoryLayer(@Nonnull FDBDatabase database,
                                   @Nullable KeySpacePath path,
                                   @Nullable CompletableFuture<ResolvedKeySpacePath> resolvedPathFuture); static ExtendedDirectoryLayer global(@Nonnull FDBDatabase database); @Override CompletableFuture<Void> setMapping(FDBRecordContext context, String key, ResolverResult value); @Override CompletableFuture<Void> updateMetadata(FDBRecordContext context, String key, byte[] metadata); @Override CompletableFuture<Void> setWindow(long count); @Override @Nonnull CompletableFuture<Subspace> getMappingSubspaceAsync(); @Override @Nonnull ResolverResult deserializeValue(byte[] value); @Override @Nonnull CompletableFuture<Subspace> getBaseSubspaceAsync();  }