Skip to content

Commit 684d31a

Browse files
committed
move buildFlatStoreOptions() into BoxStoreBuilder; seems a better fit ("build") and makes BoxStore shorter
1 parent a30a331 commit 684d31a

File tree

2 files changed

+36
-40
lines changed

2 files changed

+36
-40
lines changed

objectbox-java/src/main/java/io/objectbox/BoxStore.java

Lines changed: 1 addition & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616

1717
package io.objectbox;
1818

19-
import com.google.flatbuffers.FlatBufferBuilder;
20-
2119
import org.greenrobot.essentials.collections.LongHashMap;
2220

2321
import java.io.Closeable;
@@ -49,7 +47,6 @@
4947
import io.objectbox.exception.DbSchemaException;
5048
import io.objectbox.internal.NativeLibraryLoader;
5149
import io.objectbox.internal.ObjectBoxThreadPool;
52-
import io.objectbox.model.FlatStoreOptions;
5350
import io.objectbox.reactive.DataObserver;
5451
import io.objectbox.reactive.DataPublisher;
5552
import io.objectbox.reactive.SubscriptionBuilder;
@@ -225,7 +222,7 @@ public static boolean isObjectBrowserAvailable() {
225222
canonicalPath = getCanonicalPath(directory);
226223
verifyNotAlreadyOpen(canonicalPath);
227224

228-
handle = nativeCreateWithFlatOptions(buildFlatStoreOptions(builder, canonicalPath), builder.model);
225+
handle = nativeCreateWithFlatOptions(builder.buildFlatStoreOptions(canonicalPath), builder.model);
229226
int debugFlags = builder.debugFlags;
230227
if (debugFlags != 0) {
231228
debugTxRead = (debugFlags & DebugFlags.LOG_TRANSACTIONS_READ) != 0;
@@ -268,42 +265,6 @@ public static boolean isObjectBrowserAvailable() {
268265
queryAttempts = Math.max(builder.queryAttempts, 1);
269266
}
270267

271-
private static byte[] buildFlatStoreOptions(BoxStoreBuilder builder, String canonicalPath) {
272-
FlatBufferBuilder fbb = new FlatBufferBuilder();
273-
// FlatBuffer default values are set in generated code, e.g. may be different from here, so always store value.
274-
fbb.forceDefaults(true);
275-
276-
// Add non-integer values first...
277-
int directoryPathOffset = fbb.createString(canonicalPath);
278-
279-
FlatStoreOptions.startFlatStoreOptions(fbb);
280-
281-
// ...then build options.
282-
FlatStoreOptions.addDirectoryPath(fbb, directoryPathOffset);
283-
FlatStoreOptions.addMaxDbSizeInKByte(fbb, builder.maxSizeInKByte);
284-
FlatStoreOptions.addFileMode(fbb, builder.fileMode);
285-
FlatStoreOptions.addMaxReaders(fbb, builder.maxReaders);
286-
int validateOnOpenMode = builder.validateOnOpenMode;
287-
if (validateOnOpenMode != 0) {
288-
FlatStoreOptions.addValidateOnOpen(fbb, validateOnOpenMode);
289-
long validateOnOpenPageLimit = builder.validateOnOpenPageLimit;
290-
if (validateOnOpenPageLimit != 0) {
291-
FlatStoreOptions.addValidateOnOpenPageLimit(fbb, validateOnOpenPageLimit);
292-
}
293-
}
294-
if(builder.skipReadSchema) FlatStoreOptions.addSkipReadSchema(fbb, builder.skipReadSchema);
295-
if(builder.usePreviousCommit) FlatStoreOptions.addUsePreviousCommit(fbb, builder.usePreviousCommit);
296-
if(builder.readOnly) FlatStoreOptions.addReadOnly(fbb, builder.readOnly);
297-
int debugFlags = builder.debugFlags;
298-
if (debugFlags != 0) {
299-
FlatStoreOptions.addDebugFlags(fbb, debugFlags);
300-
}
301-
302-
int offset = FlatStoreOptions.endFlatStoreOptions(fbb);
303-
fbb.finish(offset);
304-
return fbb.sizedByteArray();
305-
}
306-
307268
static String getCanonicalPath(File directory) {
308269
if (directory.exists()) {
309270
if (!directory.isDirectory()) {

objectbox-java/src/main/java/io/objectbox/BoxStoreBuilder.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package io.objectbox;
1818

19+
import com.google.flatbuffers.FlatBufferBuilder;
20+
import io.objectbox.model.FlatStoreOptions;
1921
import org.greenrobot.essentials.io.IoUtils;
2022

2123
import java.io.BufferedInputStream;
@@ -452,6 +454,39 @@ public BoxStoreBuilder initialDbFile(Factory<InputStream> initialDbFileFactory)
452454
return this;
453455
}
454456

457+
byte[] buildFlatStoreOptions(String canonicalPath) {
458+
FlatBufferBuilder fbb = new FlatBufferBuilder();
459+
// FlatBuffer default values are set in generated code, e.g. may be different from here, so always store value.
460+
fbb.forceDefaults(true);
461+
462+
// Add non-integer values first...
463+
int directoryPathOffset = fbb.createString(canonicalPath);
464+
465+
FlatStoreOptions.startFlatStoreOptions(fbb);
466+
467+
// ...then build options.
468+
FlatStoreOptions.addDirectoryPath(fbb, directoryPathOffset);
469+
FlatStoreOptions.addMaxDbSizeInKByte(fbb, maxSizeInKByte);
470+
FlatStoreOptions.addFileMode(fbb, fileMode);
471+
FlatStoreOptions.addMaxReaders(fbb, maxReaders);
472+
if (validateOnOpenMode != 0) {
473+
FlatStoreOptions.addValidateOnOpen(fbb, validateOnOpenMode);
474+
if (validateOnOpenPageLimit != 0) {
475+
FlatStoreOptions.addValidateOnOpenPageLimit(fbb, validateOnOpenPageLimit);
476+
}
477+
}
478+
if(skipReadSchema) FlatStoreOptions.addSkipReadSchema(fbb, skipReadSchema);
479+
if(usePreviousCommit) FlatStoreOptions.addUsePreviousCommit(fbb, usePreviousCommit);
480+
if(readOnly) FlatStoreOptions.addReadOnly(fbb, readOnly);
481+
if (debugFlags != 0) {
482+
FlatStoreOptions.addDebugFlags(fbb, debugFlags);
483+
}
484+
485+
int offset = FlatStoreOptions.endFlatStoreOptions(fbb);
486+
fbb.finish(offset);
487+
return fbb.sizedByteArray();
488+
}
489+
455490
/**
456491
* Builds a {@link BoxStore} using any given configuration.
457492
*/

0 commit comments

Comments
 (0)