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();