diff --git a/src/main/java/com/arangodb/entity/ArangoDBVersion.java b/src/main/java/com/arangodb/entity/ArangoDBVersion.java
index 6eceef582..6f5db7a35 100644
--- a/src/main/java/com/arangodb/entity/ArangoDBVersion.java
+++ b/src/main/java/com/arangodb/entity/ArangoDBVersion.java
@@ -58,4 +58,4 @@ public License getLicense() {
return license;
}
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/arangodb/entity/IndexEntity.java b/src/main/java/com/arangodb/entity/IndexEntity.java
index fdea737f4..0a11fbe06 100644
--- a/src/main/java/com/arangodb/entity/IndexEntity.java
+++ b/src/main/java/com/arangodb/entity/IndexEntity.java
@@ -40,6 +40,7 @@ public class IndexEntity implements Entity {
private Boolean geoJson;
private Boolean constraint;
private Boolean deduplicate;
+ private Boolean inBackground;
public IndexEntity() {
super();
@@ -49,6 +50,10 @@ public String getId() {
return id;
}
+ public Boolean getInBackground() {
+ return inBackground;
+ }
+
public String getName() {
return name;
}
diff --git a/src/main/java/com/arangodb/entity/ServerRole.java b/src/main/java/com/arangodb/entity/ServerRole.java
index 5976e1107..276ac6ef4 100644
--- a/src/main/java/com/arangodb/entity/ServerRole.java
+++ b/src/main/java/com/arangodb/entity/ServerRole.java
@@ -26,4 +26,4 @@
*/
public enum ServerRole {
SINGLE, AGENT, COORDINATOR, PRIMARY, SECONDARY, UNDEFINED
-}
+}
\ No newline at end of file
diff --git a/src/main/java/com/arangodb/model/FulltextIndexOptions.java b/src/main/java/com/arangodb/model/FulltextIndexOptions.java
index a7154afdd..81a56cc0d 100644
--- a/src/main/java/com/arangodb/model/FulltextIndexOptions.java
+++ b/src/main/java/com/arangodb/model/FulltextIndexOptions.java
@@ -28,12 +28,11 @@
* @see API
* Documentation
*/
-public class FulltextIndexOptions {
+public class FulltextIndexOptions extends IndexOptions {
private Iterable fields;
private final IndexType type = IndexType.fulltext;
private Integer minLength;
- private String name;
public FulltextIndexOptions() {
super();
@@ -61,20 +60,6 @@ public Integer getMinLength() {
return minLength;
}
- /**
- * @param name
- * the name of the index
- * @return options
- */
- public FulltextIndexOptions name(final String name) {
- this.name = name;
- return this;
- }
-
- protected String getName() {
- return name;
- }
-
/**
* @param minLength
* Minimum character length of words to index. Will default to a server-defined value if unspecified. It
diff --git a/src/main/java/com/arangodb/model/GeoIndexOptions.java b/src/main/java/com/arangodb/model/GeoIndexOptions.java
index be02489c8..68be48a6c 100644
--- a/src/main/java/com/arangodb/model/GeoIndexOptions.java
+++ b/src/main/java/com/arangodb/model/GeoIndexOptions.java
@@ -27,12 +27,11 @@
*
* @see API Documentation
*/
-public class GeoIndexOptions {
+public class GeoIndexOptions extends IndexOptions {
private Iterable fields;
private final IndexType type = IndexType.geo;
private Boolean geoJson;
- private String name;
public GeoIndexOptions() {
super();
@@ -56,20 +55,6 @@ protected IndexType getType() {
return type;
}
- /**
- * @param name
- * the name of the index
- * @return options
- */
- public GeoIndexOptions name(final String name) {
- this.name = name;
- return this;
- }
-
- protected String getName() {
- return name;
- }
-
public Boolean getGeoJson() {
return geoJson;
}
diff --git a/src/main/java/com/arangodb/model/HashIndexOptions.java b/src/main/java/com/arangodb/model/HashIndexOptions.java
index 20dd13c44..8c6ecd159 100644
--- a/src/main/java/com/arangodb/model/HashIndexOptions.java
+++ b/src/main/java/com/arangodb/model/HashIndexOptions.java
@@ -27,14 +27,13 @@
*
* @see API Documentation
*/
-public class HashIndexOptions {
+public class HashIndexOptions extends IndexOptions {
private Iterable fields;
private final IndexType type = IndexType.hash;
private Boolean unique;
private Boolean sparse;
private Boolean deduplicate;
- private String name;
public HashIndexOptions() {
super();
@@ -99,19 +98,4 @@ public HashIndexOptions deduplicate(final Boolean deduplicate) {
this.deduplicate = deduplicate;
return this;
}
-
- /**
- * @param name
- * the name of the index
- * @return options
- */
- public HashIndexOptions name(final String name) {
- this.name = name;
- return this;
- }
-
- protected String getName() {
- return name;
- }
-
}
diff --git a/src/main/java/com/arangodb/model/IndexOptions.java b/src/main/java/com/arangodb/model/IndexOptions.java
new file mode 100644
index 000000000..fbf6f431f
--- /dev/null
+++ b/src/main/java/com/arangodb/model/IndexOptions.java
@@ -0,0 +1,67 @@
+/*
+ * DISCLAIMER
+ *
+ * Copyright 2019 ArangoDB GmbH, Cologne, Germany
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Copyright holder is ArangoDB GmbH, Cologne, Germany
+ */
+
+package com.arangodb.model;
+
+import com.arangodb.entity.IndexType;
+
+/**
+ * @author Heiko Kernbach
+ *
+ * This class is used for all index similarities
+ */
+public class IndexOptions {
+
+ private Boolean inBackground;
+ private String name;
+
+ public IndexOptions() {
+ super();
+ }
+
+ /**
+ * @param inBackground
+ * create the the index in the background
+ * this is a RocksDB only flag.
+ * @return options
+ */
+ public IndexOptions inBackground(final Boolean inBackground) {
+ this.inBackground = inBackground;
+ return this;
+ }
+
+ public Boolean getInBackground() {
+ return inBackground;
+ }
+
+ /**
+ * @param name
+ * the name of the index
+ * @return options
+ */
+ public IndexOptions name(final String name) {
+ this.name = name;
+ return this;
+ }
+
+ protected String getName() {
+ return name;
+ }
+}
diff --git a/src/main/java/com/arangodb/model/PersistentIndexOptions.java b/src/main/java/com/arangodb/model/PersistentIndexOptions.java
index fbf9a24ee..6a73bd6d8 100644
--- a/src/main/java/com/arangodb/model/PersistentIndexOptions.java
+++ b/src/main/java/com/arangodb/model/PersistentIndexOptions.java
@@ -28,11 +28,10 @@
* @see API
* Documentation
*/
-public class PersistentIndexOptions {
+public class PersistentIndexOptions extends IndexOptions {
private Iterable fields;
protected IndexType type = IndexType.persistent;
- private String name;
private Boolean unique;
private Boolean sparse;
@@ -72,20 +71,6 @@ public PersistentIndexOptions unique(final Boolean unique) {
return this;
}
- /**
- * @param name
- * the name of the index
- * @return options
- */
- public PersistentIndexOptions name(final String name) {
- this.name = name;
- return this;
- }
-
- protected String getName() {
- return name;
- }
-
public Boolean getSparse() {
return sparse;
}
diff --git a/src/main/java/com/arangodb/model/SkiplistIndexOptions.java b/src/main/java/com/arangodb/model/SkiplistIndexOptions.java
index b6bcd754b..e77c3cca0 100644
--- a/src/main/java/com/arangodb/model/SkiplistIndexOptions.java
+++ b/src/main/java/com/arangodb/model/SkiplistIndexOptions.java
@@ -27,14 +27,13 @@
*
* @see API Documentation
*/
-public class SkiplistIndexOptions {
+public class SkiplistIndexOptions extends IndexOptions {
private Iterable fields;
private final IndexType type = IndexType.skiplist;
private Boolean unique;
private Boolean sparse;
private Boolean deduplicate;
- private String name;
public SkiplistIndexOptions() {
super();
@@ -99,19 +98,4 @@ public SkiplistIndexOptions deduplicate(final Boolean deduplicate) {
this.deduplicate = deduplicate;
return this;
}
-
- /**
- * @param name
- * the name of the index
- * @return options
- */
- public SkiplistIndexOptions name(final String name) {
- this.name = name;
- return this;
- }
-
- protected String getName() {
- return name;
- }
-
}
diff --git a/src/test/java/com/arangodb/util/ArangoSerializationTest.java b/src/test/java/com/arangodb/util/ArangoSerializationTest.java
index 780ac39ff..f4fda0c41 100644
--- a/src/test/java/com/arangodb/util/ArangoSerializationTest.java
+++ b/src/test/java/com/arangodb/util/ArangoSerializationTest.java
@@ -76,6 +76,14 @@ public void serializeNullValues() {
assertThat(vpack.get("foo").isNull(), is(true));
}
+ @Test
+ public void skipSerializeNullValues() {
+ final BaseDocument entity = new BaseDocument();
+ entity.addAttribute("bar", null);
+ final VPackSlice vpack = util.serialize(entity);
+ assertThat(vpack.get("bar").isNone(), is(true));
+ }
+
@Test
public void serializeType() {
final Collection list = new ArrayList();