Skip to content

Commit 10f7681

Browse files
author
Mark
committed
added support of transient modifier within VPack de-/serialization
1 parent cd4f860 commit 10f7681

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

ChangeLog

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ v4.1.5 (2017-01-xx)
33
* fixed VPack parsing of fields of type Object
44
* fixed VPack serializing of array with null values (issue #88)
55
* added configuration for custom annotations within VPack de-/serialization
6+
* added support of transient modifier within VPack de-/serialization
67

78
v4.1.4 (2016-12-19)
89
---------------------------

src/main/java/com/arangodb/velocypack/internal/VPackCache.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,8 @@ public Map<String, FieldInfo> getFields(final Type entityClass) {
118118
while (tmp != null && tmp != Object.class) {
119119
final Field[] declaredFields = tmp.getDeclaredFields();
120120
for (final Field field : declaredFields) {
121-
if (!field.isSynthetic() && !Modifier.isStatic(field.getModifiers())) {
121+
if (!field.isSynthetic() && !Modifier.isStatic(field.getModifiers())
122+
&& !Modifier.isTransient(field.getModifiers())) {
122123
field.setAccessible(true);
123124
final FieldInfo fieldInfo = createFieldInfo(field);
124125
if (fieldInfo.serialize || fieldInfo.deserialize) {

src/test/java/com/arangodb/velocypack/VPackSerializeDeserializeTest.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3455,4 +3455,30 @@ public void uuid() {
34553455
assertThat(entity2, is(notNullValue()));
34563456
assertThat(entity2.getUuid(), is(entity.getUuid()));
34573457
}
3458+
3459+
private static class TransientEntity {
3460+
private transient String foo;
3461+
3462+
public TransientEntity() {
3463+
super();
3464+
}
3465+
}
3466+
3467+
@Test
3468+
public void fromTransient() {
3469+
final TransientEntity entity = new TransientEntity();
3470+
entity.foo = "bar";
3471+
final VPackSlice vpack = new VPack.Builder().build().serialize(entity);
3472+
assertThat(vpack, is(notNullValue()));
3473+
assertThat(vpack.isObject(), is(true));
3474+
assertThat(vpack.get("foo").isNone(), is(true));
3475+
}
3476+
3477+
@Test
3478+
public void toTransient() {
3479+
final VPackSlice vpack = new VPackBuilder().add(ValueType.OBJECT).add("foo", "bar").close().slice();
3480+
final TransientEntity entity = new VPack.Builder().build().deserialize(vpack, TransientEntity.class);
3481+
assertThat(entity, is(notNullValue()));
3482+
assertThat(entity.foo, is(nullValue()));
3483+
}
34583484
}

0 commit comments

Comments
 (0)