private static void addParentToBuilder(Key parent, Builder builder) { builder.setNamespace(parent.getNamespace()); builder.addAncestors(parent.getAncestors()); if (parent.hasId()) { builder.addAncestors(PathElement.of(parent.getKind(), parent.getId())); } else { builder.addAncestors(PathElement.of(parent.getKind(), parent.getName())); } } }
/** * @return the low-level datastore kind associated with this Key */ public String getKind() { return this.raw.getKind(); }
@Test public void testNewKeyFactory() { DatastoreOptions options = createMock(DatastoreOptions.class); expect(options.getProjectId()).andReturn("ds1").once(); expect(options.getNamespace()).andReturn("ns1").once(); replay(options); KeyFactory keyFactory = DatastoreHelper.newKeyFactory(options); Key key = keyFactory.setKind("k").newKey("bla"); assertEquals("ds1", key.getProjectId()); assertEquals("ns1", key.getNamespace()); assertEquals("k", key.getKind()); assertEquals("bla", key.getName()); verify(options); }
/** */ @Override public void recordHit(Key key) { this.getStat(key.getKind()).hits.incrementAndGet(); }
/** */ @Override public void recordMiss(Key key) { this.getStat(key.getKind()).misses.incrementAndGet(); }
/** * @return the metadata for a kind of entity based on its key * @throws IllegalArgumentException if the kind has not been registered */ public <T> EntityMetadata<T> getMetadata(final com.google.cloud.datastore.Key key) throws IllegalArgumentException { return this.registrar.getMetadataSafe(key.getKind()); }
/** */ @Override public Integer getExpirySeconds(Key key) { final EntityMetadata<?> meta = fact.getMetadata(key.getKind()); return meta == null ? null : meta.getCacheExpirySeconds(); } }
assertEquals(PARTIAL_ENTITY2.getKey().getNamespace(), entity6.getKey().getNamespace()); assertEquals(PARTIAL_ENTITY2.getKey().getAncestors(), entity6.getKey().getAncestors()); assertEquals(PARTIAL_ENTITY2.getKey().getKind(), entity6.getKey().getKind()); assertEquals(PARTIAL_ENTITY2.getKey(), IncompleteKey.newBuilder(entity6.getKey()).build()); assertEquals(PARTIAL_ENTITY2.getKey().getAncestors(), entity6.getKey().getAncestors());
assertEquals(PARTIAL_ENTITY2.getKey().getNamespace(), entity6.getKey().getNamespace()); assertEquals(PARTIAL_ENTITY2.getKey().getAncestors(), entity6.getKey().getAncestors()); assertEquals(PARTIAL_ENTITY2.getKey().getKind(), entity6.getKey().getKind()); assertEquals(PARTIAL_ENTITY2.getKey(), IncompleteKey.newBuilder(entity6.getKey()).build()); assertNotEquals(PARTIAL_ENTITY2.getKey().getPath(), entity6.getKey().getPath());
/** * Converts a datastore entity into a typed pojo object * @return an assembled pojo, or the Entity itself if the kind is not registered, or null if the input value was null */ @SuppressWarnings("unchecked") public <T> T load(final BaseEntity<com.google.cloud.datastore.Key> ent, final LoadContext ctx) { if (ent == null) return null; final EntityMetadata<T> meta = ofy.factory().getMetadata(ent.getKey().getKind()); if (meta == null) return (T)ent; else return meta.load(ent, ctx); } }
@Test public void testAllocateId() { KeyFactory keyFactory = datastore.newKeyFactory().setKind(KIND1); IncompleteKey pk1 = keyFactory.newKey(); Key key1 = datastore.allocateId(pk1); assertEquals(key1.getProjectId(), pk1.getProjectId()); assertEquals(key1.getNamespace(), pk1.getNamespace()); assertEquals(key1.getAncestors(), pk1.getAncestors()); assertEquals(key1.getKind(), pk1.getKind()); assertTrue(key1.hasId()); assertFalse(key1.hasName()); assertEquals(Key.newBuilder(pk1, key1.getId()).build(), key1); Key key2 = datastore.allocateId(pk1); assertNotEquals(key1, key2); assertEquals(Key.newBuilder(pk1, key2.getId()).build(), key2); try { datastore.allocateId(key1); fail("Expecting a failure"); } catch (IllegalArgumentException expected) { assertEquals(expected.getMessage(), "keys must be IncompleteKey instances"); } }
@Test public void testAllocateId() { KeyFactory keyFactory = DATASTORE.newKeyFactory().setKind(KIND1); IncompleteKey pk1 = keyFactory.newKey(); Key key1 = DATASTORE.allocateId(pk1); assertEquals(key1.getProjectId(), pk1.getProjectId()); assertEquals(key1.getNamespace(), pk1.getNamespace()); assertEquals(key1.getAncestors(), pk1.getAncestors()); assertEquals(key1.getKind(), pk1.getKind()); assertTrue(key1.hasId()); assertFalse(key1.hasName()); assertEquals(Key.newBuilder(pk1, key1.getId()).build(), key1); Key key2 = DATASTORE.allocateId(pk1); assertNotEquals(key1, key2); assertEquals(Key.newBuilder(pk1, key2.getId()).build(), key2); }
do { DynamicMessage.Builder elementMessageBuilder = DynamicMessage.newBuilder(elementDescriptor); elementMessageBuilder.setField(elementDescriptor.findFieldByName("type"), key.getKind()); if (key.getName() != null) { elementMessageBuilder.setField(elementDescriptor.findFieldByName("name"), key.getName());
@Override public Iterator<Entity> get(Iterable<Key> keys, ReadOption... readOptions) { keys.forEach(key -> stats.recordDatastoreEntityReads(key.getKind(), 1)); return delegate.get(keys, readOptions); }
@Override public Entity get(Key key, ReadOption... readOptions) { stats.recordDatastoreEntityReads(key.getKind(), 1); return delegate.get(key, readOptions); }
@Override default void delete(Key... keys) { for (Key key : keys) { stats().recordDatastoreEntityDeletes(key.getKind(), 1); } writer().delete(keys); } }
private static void addParentToBuilder(Key parent, Builder builder) { builder.setNamespace(parent.getNamespace()); builder.addAncestors(parent.getAncestors()); if (parent.hasId()) { builder.addAncestors(PathElement.of(parent.getKind(), parent.getId())); } else { builder.addAncestors(PathElement.of(parent.getKind(), parent.getName())); } } }