@Test public void toBuilder() { Key k = Key.of(1, 2).toBuilder().append(3).build(); assertThat(k.size()).isEqualTo(3); assertThat(k.getParts()).containsExactly(1L, 2L, 3L).inOrder(); }
@Test public void of() { Key k = Key.of(); assertThat(k.size()).isEqualTo(0); assertThat(k.getParts()).isEmpty(); assertThat(k.size()).isEqualTo(3); assertThat(k.getParts()).containsExactly("a", "b", "c").inOrder(); assertThat(k.size()).isEqualTo(3); assertThat(k.getParts()).containsExactly("a", null, "c").inOrder(); Timestamp.parseTimestamp(timestamp), Date.parseDate(date)); assertThat(k.size()).isEqualTo(10); assertThat(k.getParts()) .containsExactly( assertThat(k.size()).isEqualTo(1); assertThat(k.getParts()).contains(null);
.append(Date.parseDate(date)) .build(); assertThat(k.size()).isEqualTo(10); assertThat(k.getParts()) .containsExactly(
@Override public Key convertToKey(Object key) { Assert.notNull(key, "Key of an entity to be written cannot be null!"); Key k; boolean isIterable = Iterable.class.isAssignableFrom(key.getClass()); boolean isArray = Object[].class.isAssignableFrom(key.getClass()); if ((isIterable || isArray) && !ByteArray.class.isAssignableFrom(key.getClass())) { Key.Builder kb = Key.newBuilder(); for (Object keyPart : (isArray ? (Arrays.asList((Object[]) key)) : ((Iterable) key))) { kb.appendObject(convertKeyPart(keyPart)); } k = kb.build(); if (k.size() == 0) { throw new SpannerDataException( "A key must have at least one component, but 0 were given."); } } else { k = Key.class.isAssignableFrom(key.getClass()) ? (Key) key : Key.of(convertKeyPart(key)); } return k; }
@Override public Key convertToKey(Object key) { Assert.notNull(key, "Key of an entity to be written cannot be null!"); Key k; boolean isIterable = Iterable.class.isAssignableFrom(key.getClass()); boolean isArray = Object[].class.isAssignableFrom(key.getClass()); if ((isIterable || isArray) && !ByteArray.class.isAssignableFrom(key.getClass())) { Key.Builder kb = Key.newBuilder(); for (Object keyPart : (isArray ? (Arrays.asList((Object[]) key)) : ((Iterable) key))) { kb.appendObject(convertKeyPart(keyPart)); } k = kb.build(); if (k.size() == 0) { throw new SpannerDataException( "A key must have at least one component, but 0 were given."); } } else { k = Key.class.isAssignableFrom(key.getClass()) ? (Key) key : Key.of(convertKeyPart(key)); } return k; }