andThen(ConsumerWithIO super T> after) {
- Objects.requireNonNull(after);
- return (T t) -> { accept(t); after.accept(t); };
- }
-}
diff --git a/src/main/java/it/cavallium/strangedb/functionalinterfaces/FunctionWithIO.java b/src/main/java/it/cavallium/strangedb/functionalinterfaces/FunctionWithIO.java
deleted file mode 100644
index ae814c9..0000000
--- a/src/main/java/it/cavallium/strangedb/functionalinterfaces/FunctionWithIO.java
+++ /dev/null
@@ -1,78 +0,0 @@
-package it.cavallium.strangedb.functionalinterfaces;
-
-import java.io.IOException;
-import java.util.Objects;
-
-/**
- * Represents a function that accepts one argument and produces a result.
- *
- * This is a functional interface
- * whose functional method is {@link #apply(Object)}.
- *
- * @param the type of the input to the function
- * @param the type of the result of the function
- *
- * @since 1.8
- */
-@FunctionalInterface
-public interface FunctionWithIO {
-
- /**
- * Applies this function to the given argument.
- *
- * @param t the function argument
- * @return the function result
- */
- R apply(T t) throws IOException;
-
- /**
- * Returns a composed function that first applies the {@code before}
- * function to its input, and then applies this function to the result.
- * If evaluation of either function throws an exception, it is relayed to
- * the caller of the composed function.
- *
- * @param the type of input to the {@code before} function, and to the
- * composed function
- * @param before the function to apply before this function is applied
- * @return a composed function that first applies the {@code before}
- * function and then applies this function
- * @throws NullPointerException if before is null
- *
- * @see #andThen(FunctionWithIO)
- */
- default FunctionWithIO compose(FunctionWithIO super V, ? extends T> before) {
- Objects.requireNonNull(before);
- return (V v) -> apply(before.apply(v));
- }
-
- /**
- * Returns a composed function that first applies this function to
- * its input, and then applies the {@code after} function to the result.
- * If evaluation of either function throws an exception, it is relayed to
- * the caller of the composed function.
- *
- * @param the type of output of the {@code after} function, and of the
- * composed function
- * @param after the function to apply after this function is applied
- * @return a composed function that first applies this function and then
- * applies the {@code after} function
- * @throws NullPointerException if after is null
- *
- * @see #compose(FunctionWithIO)
- */
- default FunctionWithIO andThen(FunctionWithIO super R, ? extends V> after) {
- Objects.requireNonNull(after);
- return (T t) -> after.apply(apply(t));
- }
-
- /**
- * Returns a function that always returns its input argument.
- *
- * @param the type of the input and output objects to the function
- * @return a function that always returns its input argument
- */
- static FunctionWithIO identity() {
- return t -> t;
- }
-}
-
diff --git a/src/main/java/it/cavallium/strangedb/functionalinterfaces/RunnableWithIO.java b/src/main/java/it/cavallium/strangedb/functionalinterfaces/RunnableWithIO.java
deleted file mode 100644
index 1cbc30e..0000000
--- a/src/main/java/it/cavallium/strangedb/functionalinterfaces/RunnableWithIO.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package it.cavallium.strangedb.functionalinterfaces;
-
-import java.io.IOException;
-
-@FunctionalInterface
-public interface RunnableWithIO {
- /**
- * When an object implementing interface Runnable
is used
- * to create a thread, starting the thread causes the object's
- * run
method to be called in that separately executing
- * thread.
- *
- * The general contract of the method run
is that it may
- * take any action whatsoever.
- *
- * @see java.lang.Thread#run()
- */
- public abstract void run() throws IOException;
-}
diff --git a/src/main/java/it/cavallium/strangedb/functionalinterfaces/SupplierWithIO.java b/src/main/java/it/cavallium/strangedb/functionalinterfaces/SupplierWithIO.java
deleted file mode 100644
index d38a8f9..0000000
--- a/src/main/java/it/cavallium/strangedb/functionalinterfaces/SupplierWithIO.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package it.cavallium.strangedb.functionalinterfaces;
-
-import java.io.IOException;
-
-@FunctionalInterface
-public interface SupplierWithIO {
- public T getWithIO() throws IOException;
-}
\ No newline at end of file
diff --git a/src/main/java/it/cavallium/strangedb/annotations/DbClass.java b/src/main/java/it/cavallium/strangedb/java/annotations/DbClass.java
similarity index 85%
rename from src/main/java/it/cavallium/strangedb/annotations/DbClass.java
rename to src/main/java/it/cavallium/strangedb/java/annotations/DbClass.java
index 48cc148..a24974f 100644
--- a/src/main/java/it/cavallium/strangedb/annotations/DbClass.java
+++ b/src/main/java/it/cavallium/strangedb/java/annotations/DbClass.java
@@ -1,4 +1,4 @@
-package it.cavallium.strangedb.annotations;
+package it.cavallium.strangedb.java.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/it/cavallium/strangedb/annotations/DbDataType.java b/src/main/java/it/cavallium/strangedb/java/annotations/DbDataType.java
similarity index 59%
rename from src/main/java/it/cavallium/strangedb/annotations/DbDataType.java
rename to src/main/java/it/cavallium/strangedb/java/annotations/DbDataType.java
index fea7214..0f6b4a7 100644
--- a/src/main/java/it/cavallium/strangedb/annotations/DbDataType.java
+++ b/src/main/java/it/cavallium/strangedb/java/annotations/DbDataType.java
@@ -1,4 +1,4 @@
-package it.cavallium.strangedb.annotations;
+package it.cavallium.strangedb.java.annotations;
public enum DbDataType {
ENHANCED_OBJECT,
diff --git a/src/main/java/it/cavallium/strangedb/annotations/DbField.java b/src/main/java/it/cavallium/strangedb/java/annotations/DbField.java
similarity index 86%
rename from src/main/java/it/cavallium/strangedb/annotations/DbField.java
rename to src/main/java/it/cavallium/strangedb/java/annotations/DbField.java
index 44b99af..489b1a1 100644
--- a/src/main/java/it/cavallium/strangedb/annotations/DbField.java
+++ b/src/main/java/it/cavallium/strangedb/java/annotations/DbField.java
@@ -1,4 +1,4 @@
-package it.cavallium.strangedb.annotations;
+package it.cavallium.strangedb.java.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/it/cavallium/strangedb/annotations/DbPrimitiveField.java b/src/main/java/it/cavallium/strangedb/java/annotations/DbPrimitiveField.java
similarity index 86%
rename from src/main/java/it/cavallium/strangedb/annotations/DbPrimitiveField.java
rename to src/main/java/it/cavallium/strangedb/java/annotations/DbPrimitiveField.java
index 056a603..eb50598 100644
--- a/src/main/java/it/cavallium/strangedb/annotations/DbPrimitiveField.java
+++ b/src/main/java/it/cavallium/strangedb/java/annotations/DbPrimitiveField.java
@@ -1,4 +1,4 @@
-package it.cavallium.strangedb.annotations;
+package it.cavallium.strangedb.java.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/it/cavallium/strangedb/annotations/DbPrimitiveType.java b/src/main/java/it/cavallium/strangedb/java/annotations/DbPrimitiveType.java
similarity index 66%
rename from src/main/java/it/cavallium/strangedb/annotations/DbPrimitiveType.java
rename to src/main/java/it/cavallium/strangedb/java/annotations/DbPrimitiveType.java
index 7867ab0..b338071 100644
--- a/src/main/java/it/cavallium/strangedb/annotations/DbPrimitiveType.java
+++ b/src/main/java/it/cavallium/strangedb/java/annotations/DbPrimitiveType.java
@@ -1,4 +1,4 @@
-package it.cavallium.strangedb.annotations;
+package it.cavallium.strangedb.java.annotations;
public enum DbPrimitiveType {
BOOLEAN,
diff --git a/src/main/java/it/cavallium/strangedb/annotations/DbPropertyGetter.java b/src/main/java/it/cavallium/strangedb/java/annotations/DbPropertyGetter.java
similarity index 86%
rename from src/main/java/it/cavallium/strangedb/annotations/DbPropertyGetter.java
rename to src/main/java/it/cavallium/strangedb/java/annotations/DbPropertyGetter.java
index 6e4a31f..808045e 100644
--- a/src/main/java/it/cavallium/strangedb/annotations/DbPropertyGetter.java
+++ b/src/main/java/it/cavallium/strangedb/java/annotations/DbPropertyGetter.java
@@ -1,4 +1,4 @@
-package it.cavallium.strangedb.annotations;
+package it.cavallium.strangedb.java.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/it/cavallium/strangedb/annotations/DbPropertySetter.java b/src/main/java/it/cavallium/strangedb/java/annotations/DbPropertySetter.java
similarity index 86%
rename from src/main/java/it/cavallium/strangedb/annotations/DbPropertySetter.java
rename to src/main/java/it/cavallium/strangedb/java/annotations/DbPropertySetter.java
index 5678c48..b7f5593 100644
--- a/src/main/java/it/cavallium/strangedb/annotations/DbPropertySetter.java
+++ b/src/main/java/it/cavallium/strangedb/java/annotations/DbPropertySetter.java
@@ -1,4 +1,4 @@
-package it.cavallium.strangedb.annotations;
+package it.cavallium.strangedb.java.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/src/main/java/it/cavallium/strangedb/database/DatabaseDataInitializer.java b/src/main/java/it/cavallium/strangedb/java/database/DatabaseDataInitializer.java
similarity index 97%
rename from src/main/java/it/cavallium/strangedb/database/DatabaseDataInitializer.java
rename to src/main/java/it/cavallium/strangedb/java/database/DatabaseDataInitializer.java
index 019d54f..792fd7f 100644
--- a/src/main/java/it/cavallium/strangedb/database/DatabaseDataInitializer.java
+++ b/src/main/java/it/cavallium/strangedb/java/database/DatabaseDataInitializer.java
@@ -1,8 +1,8 @@
-package it.cavallium.strangedb.database;
+package it.cavallium.strangedb.java.database;
-import it.cavallium.strangedb.annotations.*;
+import it.cavallium.strangedb.java.annotations.*;
import org.apache.commons.lang3.reflect.FieldUtils;
-import it.cavallium.strangedb.EnhancedObject;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
import java.io.IOException;
import java.lang.reflect.Field;
diff --git a/src/main/java/it/cavallium/strangedb/database/DatabaseEnhancedObjectUpgrader.java b/src/main/java/it/cavallium/strangedb/java/database/DatabaseEnhancedObjectUpgrader.java
similarity index 89%
rename from src/main/java/it/cavallium/strangedb/database/DatabaseEnhancedObjectUpgrader.java
rename to src/main/java/it/cavallium/strangedb/java/database/DatabaseEnhancedObjectUpgrader.java
index 2718b71..c820dfa 100644
--- a/src/main/java/it/cavallium/strangedb/database/DatabaseEnhancedObjectUpgrader.java
+++ b/src/main/java/it/cavallium/strangedb/java/database/DatabaseEnhancedObjectUpgrader.java
@@ -1,9 +1,9 @@
-package it.cavallium.strangedb.database;
+package it.cavallium.strangedb.java.database;
-import it.cavallium.strangedb.annotations.DbDataType;
-import it.cavallium.strangedb.annotations.DbPrimitiveType;
+import it.cavallium.strangedb.java.annotations.DbDataType;
+import it.cavallium.strangedb.java.annotations.DbPrimitiveType;
import it.unimi.dsi.fastutil.longs.LongList;
-import it.cavallium.strangedb.EnhancedObjectUpgrader;
+import it.cavallium.strangedb.java.objects.EnhancedObjectUpgrader;
import java.io.IOException;
import java.util.function.Supplier;
diff --git a/src/main/java/it/cavallium/strangedb/java/database/DatabaseJava.java b/src/main/java/it/cavallium/strangedb/java/database/DatabaseJava.java
new file mode 100644
index 0000000..0b47c06
--- /dev/null
+++ b/src/main/java/it/cavallium/strangedb/java/database/DatabaseJava.java
@@ -0,0 +1,62 @@
+package it.cavallium.strangedb.java.database;
+
+import it.cavallium.strangedb.database.DatabaseCore;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.functionalinterfaces.FunctionWithIO;
+
+import java.io.IOException;
+import java.nio.file.Path;
+
+public class DatabaseJava extends DatabaseCore implements IDatabaseTools {
+ private final IDatabaseTools databaseTools;
+ private final DatabaseObjectsIO objectsIO;
+ private EnhancedObject loadedRootObject;
+
+ public DatabaseJava(Path dataFile, Path blocksMetaFile, Path referencesMetaFile) throws IOException {
+ super(dataFile, blocksMetaFile, referencesMetaFile);
+ this.databaseTools = this;
+ this.objectsIO = new DatabaseObjectsIO(databaseTools, referencesIO);
+ }
+
+ @Override
+ public synchronized void close() throws IOException {
+ if (this.closed) {
+ throw new IOException("The database has been already closed!");
+ }
+ this.objectsIO.setEnhancedObject(0, loadedRootObject);
+ }
+
+ public T loadRoot(Class type, FunctionWithIO ifAbsent) throws IOException {
+ if (loadedRootObject != null) {
+ throw new RuntimeException("Root already set!");
+ }
+ T root;
+ if (referencesMetadata.getFirstFreeReference() > 0) {
+ root = objectsIO.loadEnhancedObject(0, type);
+ } else {
+ if (objectsIO.newNullObject() != 0) {
+ throw new IOException("Can't allocate root!");
+ } else {
+ root = ifAbsent.apply(DatabaseJava.this);
+ objectsIO.setEnhancedObject(0, root);
+ }
+ }
+ loadedRootObject = root;
+ return root;
+ }
+
+ protected void registerClass(Class> type, int id) {
+ this.objectsIO.registerClass(type, id);
+ }
+
+ @Override
+ public void initializeEnhancedObject(EnhancedObject enhancedObject) throws IOException {
+ this.objectsIO.getDataInitializer().initializeDbObject(enhancedObject);
+ }
+
+ @Override
+ public IObjectsIO getObjectsIO() {
+ return objectsIO;
+ }
+
+}
diff --git a/src/main/java/it/cavallium/strangedb/database/DatabaseObjectsIO.java b/src/main/java/it/cavallium/strangedb/java/database/DatabaseObjectsIO.java
similarity index 98%
rename from src/main/java/it/cavallium/strangedb/database/DatabaseObjectsIO.java
rename to src/main/java/it/cavallium/strangedb/java/database/DatabaseObjectsIO.java
index cd31b2d..5e2dde1 100644
--- a/src/main/java/it/cavallium/strangedb/database/DatabaseObjectsIO.java
+++ b/src/main/java/it/cavallium/strangedb/java/database/DatabaseObjectsIO.java
@@ -1,9 +1,12 @@
-package it.cavallium.strangedb.database;
+package it.cavallium.strangedb.java.database;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
-import it.cavallium.strangedb.annotations.*;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.objects.EnhancedObjectFullInfo;
+import it.cavallium.strangedb.database.references.DatabaseReferencesIO;
+import it.cavallium.strangedb.java.annotations.*;
import it.unimi.dsi.fastutil.booleans.BooleanArrayList;
import it.unimi.dsi.fastutil.bytes.ByteArrayList;
import it.unimi.dsi.fastutil.chars.CharArrayList;
@@ -12,7 +15,6 @@ import it.unimi.dsi.fastutil.longs.LongArrayList;
import it.unimi.dsi.fastutil.longs.LongList;
import it.unimi.dsi.fastutil.shorts.ShortArrayList;
import org.apache.commons.lang3.reflect.FieldUtils;
-import it.cavallium.strangedb.EnhancedObject;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
diff --git a/src/main/java/it/cavallium/strangedb/database/IDataInitializer.java b/src/main/java/it/cavallium/strangedb/java/database/IDataInitializer.java
similarity index 56%
rename from src/main/java/it/cavallium/strangedb/database/IDataInitializer.java
rename to src/main/java/it/cavallium/strangedb/java/database/IDataInitializer.java
index 27815cf..5fcdc21 100644
--- a/src/main/java/it/cavallium/strangedb/database/IDataInitializer.java
+++ b/src/main/java/it/cavallium/strangedb/java/database/IDataInitializer.java
@@ -1,6 +1,6 @@
-package it.cavallium.strangedb.database;
+package it.cavallium.strangedb.java.database;
-import it.cavallium.strangedb.EnhancedObject;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
import java.io.IOException;
diff --git a/src/main/java/it/cavallium/strangedb/database/IDatabaseTools.java b/src/main/java/it/cavallium/strangedb/java/database/IDatabaseTools.java
similarity index 52%
rename from src/main/java/it/cavallium/strangedb/database/IDatabaseTools.java
rename to src/main/java/it/cavallium/strangedb/java/database/IDatabaseTools.java
index 06ebc36..069f0d6 100644
--- a/src/main/java/it/cavallium/strangedb/database/IDatabaseTools.java
+++ b/src/main/java/it/cavallium/strangedb/java/database/IDatabaseTools.java
@@ -1,6 +1,7 @@
-package it.cavallium.strangedb.database;
+package it.cavallium.strangedb.java.database;
-import it.cavallium.strangedb.EnhancedObject;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.database.IObjectsIO;
import java.io.IOException;
diff --git a/src/main/java/it/cavallium/strangedb/database/IObjectsIO.java b/src/main/java/it/cavallium/strangedb/java/database/IObjectsIO.java
similarity index 90%
rename from src/main/java/it/cavallium/strangedb/database/IObjectsIO.java
rename to src/main/java/it/cavallium/strangedb/java/database/IObjectsIO.java
index 93a28fd..b5f7504 100644
--- a/src/main/java/it/cavallium/strangedb/database/IObjectsIO.java
+++ b/src/main/java/it/cavallium/strangedb/java/database/IObjectsIO.java
@@ -1,7 +1,7 @@
-package it.cavallium.strangedb.database;
+package it.cavallium.strangedb.java.database;
-import it.cavallium.strangedb.EnhancedObject;
-import it.cavallium.strangedb.annotations.DbDataType;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.annotations.DbDataType;
import it.unimi.dsi.fastutil.longs.LongArrayList;
import it.unimi.dsi.fastutil.longs.LongList;
diff --git a/src/main/java/it/cavallium/strangedb/EnhancedObject.java b/src/main/java/it/cavallium/strangedb/java/objects/EnhancedObject.java
similarity index 91%
rename from src/main/java/it/cavallium/strangedb/EnhancedObject.java
rename to src/main/java/it/cavallium/strangedb/java/objects/EnhancedObject.java
index 6623861..07b4b1f 100644
--- a/src/main/java/it/cavallium/strangedb/EnhancedObject.java
+++ b/src/main/java/it/cavallium/strangedb/java/objects/EnhancedObject.java
@@ -1,14 +1,13 @@
-package it.cavallium.strangedb;
+package it.cavallium.strangedb.java.objects;
-import it.cavallium.strangedb.database.EnhancedObjectFullInfo;
-import it.cavallium.strangedb.database.IDatabaseTools;
+import it.cavallium.strangedb.java.database.IDatabaseTools;
import org.apache.commons.lang3.NotImplementedException;
import org.apache.commons.lang3.reflect.MethodUtils;
-import it.cavallium.strangedb.annotations.DbClass;
-import it.cavallium.strangedb.annotations.DbDataType;
-import it.cavallium.strangedb.annotations.DbPrimitiveType;
-import it.cavallium.strangedb.annotations.DbPropertyGetter;
-import it.cavallium.strangedb.annotations.DbPropertySetter;
+import it.cavallium.strangedb.java.annotations.DbClass;
+import it.cavallium.strangedb.java.annotations.DbDataType;
+import it.cavallium.strangedb.java.annotations.DbPrimitiveType;
+import it.cavallium.strangedb.java.annotations.DbPropertyGetter;
+import it.cavallium.strangedb.java.annotations.DbPropertySetter;
import java.io.IOException;
import java.lang.reflect.Field;
diff --git a/src/main/java/it/cavallium/strangedb/database/EnhancedObjectFullInfo.java b/src/main/java/it/cavallium/strangedb/java/objects/EnhancedObjectFullInfo.java
similarity index 81%
rename from src/main/java/it/cavallium/strangedb/database/EnhancedObjectFullInfo.java
rename to src/main/java/it/cavallium/strangedb/java/objects/EnhancedObjectFullInfo.java
index 29df6c1..161bc55 100644
--- a/src/main/java/it/cavallium/strangedb/database/EnhancedObjectFullInfo.java
+++ b/src/main/java/it/cavallium/strangedb/java/objects/EnhancedObjectFullInfo.java
@@ -1,7 +1,7 @@
-package it.cavallium.strangedb.database;
+package it.cavallium.strangedb.java.objects;
-import it.cavallium.strangedb.annotations.DbDataType;
-import it.cavallium.strangedb.annotations.DbPrimitiveType;
+import it.cavallium.strangedb.java.annotations.DbDataType;
+import it.cavallium.strangedb.java.annotations.DbPrimitiveType;
import java.lang.reflect.Field;
@@ -33,15 +33,15 @@ public class EnhancedObjectFullInfo {
this.loadedPropertyValues = loadedPropertyValues;
}
- int getVersion() {
+ public int getVersion() {
return version;
}
- long[] getFieldReferences() {
+ public long[] getFieldReferences() {
return fieldReferences;
}
- DbDataType[] getFieldTypes() {
+ public DbDataType[] getFieldTypes() {
return fieldTypes;
}
@@ -61,15 +61,15 @@ public class EnhancedObjectFullInfo {
return primitiveFields;
}
- long[] getPropertyReferences() {
+ public long[] getPropertyReferences() {
return propertyReferences;
}
- DbDataType[] getPropertyTypes() {
+ public DbDataType[] getPropertyTypes() {
return propertyTypes;
}
- Object[] getLoadedPropertyValues() {
+ public Object[] getLoadedPropertyValues() {
return loadedPropertyValues;
}
}
diff --git a/src/main/java/it/cavallium/strangedb/EnhancedObjectUpgrader.java b/src/main/java/it/cavallium/strangedb/java/objects/EnhancedObjectUpgrader.java
similarity index 90%
rename from src/main/java/it/cavallium/strangedb/EnhancedObjectUpgrader.java
rename to src/main/java/it/cavallium/strangedb/java/objects/EnhancedObjectUpgrader.java
index c557ec3..dfa40c7 100644
--- a/src/main/java/it/cavallium/strangedb/EnhancedObjectUpgrader.java
+++ b/src/main/java/it/cavallium/strangedb/java/objects/EnhancedObjectUpgrader.java
@@ -1,7 +1,7 @@
-package it.cavallium.strangedb;
+package it.cavallium.strangedb.java.objects;
-import it.cavallium.strangedb.annotations.DbDataType;
-import it.cavallium.strangedb.annotations.DbPrimitiveType;
+import it.cavallium.strangedb.java.annotations.DbDataType;
+import it.cavallium.strangedb.java.annotations.DbPrimitiveType;
import java.io.IOException;
import java.util.function.Supplier;
diff --git a/src/main/java/it/cavallium/strangedb/lists/EnhancedObjectStrandeDbList.java b/src/main/java/it/cavallium/strangedb/java/objects/lists/EnhancedObjectStrandeDbList.java
similarity index 76%
rename from src/main/java/it/cavallium/strangedb/lists/EnhancedObjectStrandeDbList.java
rename to src/main/java/it/cavallium/strangedb/java/objects/lists/EnhancedObjectStrandeDbList.java
index 1a9da7c..ae629e0 100644
--- a/src/main/java/it/cavallium/strangedb/lists/EnhancedObjectStrandeDbList.java
+++ b/src/main/java/it/cavallium/strangedb/java/objects/lists/EnhancedObjectStrandeDbList.java
@@ -1,10 +1,10 @@
-package it.cavallium.strangedb.lists;
+package it.cavallium.strangedb.java.objects.lists;
import it.unimi.dsi.fastutil.longs.LongArrayList;
-import it.cavallium.strangedb.EnhancedObject;
-import it.cavallium.strangedb.database.IDatabaseTools;
-import it.cavallium.strangedb.annotations.DbDataType;
-import it.cavallium.strangedb.annotations.DbField;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.database.IDatabaseTools;
+import it.cavallium.strangedb.java.annotations.DbDataType;
+import it.cavallium.strangedb.java.annotations.DbField;
import java.io.IOException;
diff --git a/src/main/java/it/cavallium/strangedb/lists/ObjectStrandeDbList.java b/src/main/java/it/cavallium/strangedb/java/objects/lists/ObjectStrandeDbList.java
similarity index 76%
rename from src/main/java/it/cavallium/strangedb/lists/ObjectStrandeDbList.java
rename to src/main/java/it/cavallium/strangedb/java/objects/lists/ObjectStrandeDbList.java
index 1d36279..79fe971 100644
--- a/src/main/java/it/cavallium/strangedb/lists/ObjectStrandeDbList.java
+++ b/src/main/java/it/cavallium/strangedb/java/objects/lists/ObjectStrandeDbList.java
@@ -1,9 +1,9 @@
-package it.cavallium.strangedb.lists;
+package it.cavallium.strangedb.java.objects.lists;
import it.unimi.dsi.fastutil.longs.LongArrayList;
-import it.cavallium.strangedb.database.IDatabaseTools;
-import it.cavallium.strangedb.annotations.DbDataType;
-import it.cavallium.strangedb.annotations.DbField;
+import it.cavallium.strangedb.java.database.IDatabaseTools;
+import it.cavallium.strangedb.java.annotations.DbDataType;
+import it.cavallium.strangedb.java.annotations.DbField;
import java.io.IOException;
diff --git a/src/main/java/it/cavallium/strangedb/lists/StrandeDbList.java b/src/main/java/it/cavallium/strangedb/java/objects/lists/StrandeDbList.java
similarity index 92%
rename from src/main/java/it/cavallium/strangedb/lists/StrandeDbList.java
rename to src/main/java/it/cavallium/strangedb/java/objects/lists/StrandeDbList.java
index 164534d..8ded793 100644
--- a/src/main/java/it/cavallium/strangedb/lists/StrandeDbList.java
+++ b/src/main/java/it/cavallium/strangedb/java/objects/lists/StrandeDbList.java
@@ -1,8 +1,8 @@
-package it.cavallium.strangedb.lists;
+package it.cavallium.strangedb.java.objects.lists;
import it.unimi.dsi.fastutil.longs.LongArrayList;
-import it.cavallium.strangedb.EnhancedObject;
-import it.cavallium.strangedb.database.IDatabaseTools;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.database.IDatabaseTools;
import java.io.IOException;
import java.util.StringJoiner;
diff --git a/src/test/java/it/cavallium/strangedb/tests/Clean.java b/src/test/java/it/cavallium/strangedb/tests/Clean.java
index dd32f5e..fc32e0d 100644
--- a/src/test/java/it/cavallium/strangedb/tests/Clean.java
+++ b/src/test/java/it/cavallium/strangedb/tests/Clean.java
@@ -3,12 +3,12 @@ package it.cavallium.strangedb.tests;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import it.cavallium.strangedb.EnhancedObject;
-import it.cavallium.strangedb.database.IDatabaseTools;
-import it.cavallium.strangedb.annotations.DbDataType;
-import it.cavallium.strangedb.annotations.DbField;
-import it.cavallium.strangedb.annotations.DbPropertyGetter;
-import it.cavallium.strangedb.annotations.DbPropertySetter;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.database.IDatabaseTools;
+import it.cavallium.strangedb.java.annotations.DbDataType;
+import it.cavallium.strangedb.java.annotations.DbField;
+import it.cavallium.strangedb.java.annotations.DbPropertyGetter;
+import it.cavallium.strangedb.java.annotations.DbPropertySetter;
import it.cavallium.strangedb.utils.NTestUtils;
import java.io.IOException;
diff --git a/src/test/java/it/cavallium/strangedb/tests/EnhancedClassUpdate.java b/src/test/java/it/cavallium/strangedb/tests/EnhancedClassUpdate.java
index 9480857..db8fde4 100644
--- a/src/test/java/it/cavallium/strangedb/tests/EnhancedClassUpdate.java
+++ b/src/test/java/it/cavallium/strangedb/tests/EnhancedClassUpdate.java
@@ -1,9 +1,10 @@
package it.cavallium.strangedb.tests;
+import it.cavallium.strangedb.database.DatabaseCore;
+import it.cavallium.strangedb.java.database.DatabaseJava;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
-import it.cavallium.strangedb.database.Database;
import java.io.IOException;
import java.nio.file.Files;
@@ -16,14 +17,14 @@ public class EnhancedClassUpdate {
private Path path1;
private Path path2;
private Path path3;
- private Database db;
+ private DatabaseJava db;
@Before
public void setUp() throws Exception {
path1 = Files.createTempFile("db-tests-", ".db");
path2 = Files.createTempFile("db-tests-", ".db");
path3 = Files.createTempFile("db-tests-", ".db");
- db = new Database(path1, path2, path3);
+ db = new DatabaseJava(path1, path2, path3);
OldClass root = db.loadRoot(OldClass.class, OldClass::new);
root.field1 = "Abc";
root.field2 = 12;
@@ -33,7 +34,7 @@ public class EnhancedClassUpdate {
@Test
public void shouldUpdateClass() throws IOException {
- db = new Database(path1, path2, path3);
+ db = new DatabaseJava(path1, path2, path3);
V2Class root = db.loadRoot(V2Class.class, V2Class::new);
assertEquals(root.field4, "Abc");
assertEquals(root.field2, 12);
diff --git a/src/test/java/it/cavallium/strangedb/tests/MultipleEnhancedObjects.java b/src/test/java/it/cavallium/strangedb/tests/MultipleEnhancedObjects.java
index b0096af..23cd1db 100644
--- a/src/test/java/it/cavallium/strangedb/tests/MultipleEnhancedObjects.java
+++ b/src/test/java/it/cavallium/strangedb/tests/MultipleEnhancedObjects.java
@@ -1,11 +1,11 @@
package it.cavallium.strangedb.tests;
-import it.cavallium.strangedb.EnhancedObject;
-import it.cavallium.strangedb.annotations.DbDataType;
-import it.cavallium.strangedb.annotations.DbField;
-import it.cavallium.strangedb.annotations.DbPropertyGetter;
-import it.cavallium.strangedb.annotations.DbPropertySetter;
-import it.cavallium.strangedb.database.IDatabaseTools;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.annotations.DbDataType;
+import it.cavallium.strangedb.java.annotations.DbField;
+import it.cavallium.strangedb.java.annotations.DbPropertyGetter;
+import it.cavallium.strangedb.java.annotations.DbPropertySetter;
+import it.cavallium.strangedb.java.database.IDatabaseTools;
import it.cavallium.strangedb.utils.NTestUtils;
import org.junit.After;
import org.junit.Before;
diff --git a/src/test/java/it/cavallium/strangedb/tests/OldClass.java b/src/test/java/it/cavallium/strangedb/tests/OldClass.java
index 2eaa557..68660d1 100644
--- a/src/test/java/it/cavallium/strangedb/tests/OldClass.java
+++ b/src/test/java/it/cavallium/strangedb/tests/OldClass.java
@@ -1,11 +1,11 @@
package it.cavallium.strangedb.tests;
-import it.cavallium.strangedb.annotations.DbPrimitiveField;
-import it.cavallium.strangedb.annotations.DbPrimitiveType;
-import it.cavallium.strangedb.EnhancedObject;
-import it.cavallium.strangedb.database.IDatabaseTools;
-import it.cavallium.strangedb.annotations.DbDataType;
-import it.cavallium.strangedb.annotations.DbField;
+import it.cavallium.strangedb.java.annotations.DbPrimitiveField;
+import it.cavallium.strangedb.java.annotations.DbPrimitiveType;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.database.IDatabaseTools;
+import it.cavallium.strangedb.java.annotations.DbDataType;
+import it.cavallium.strangedb.java.annotations.DbField;
import java.io.IOException;
diff --git a/src/test/java/it/cavallium/strangedb/tests/Performance.java b/src/test/java/it/cavallium/strangedb/tests/Performance.java
index 0b18e81..f75ef56 100644
--- a/src/test/java/it/cavallium/strangedb/tests/Performance.java
+++ b/src/test/java/it/cavallium/strangedb/tests/Performance.java
@@ -1,13 +1,14 @@
package it.cavallium.strangedb.tests;
-import it.cavallium.strangedb.annotations.*;
import it.cavallium.strangedb.functionalinterfaces.RunnableWithIO;
-import it.cavallium.strangedb.lists.EnhancedObjectStrandeDbList;
-import it.cavallium.strangedb.lists.ObjectStrandeDbList;
+import it.cavallium.strangedb.java.annotations.*;
+import it.cavallium.strangedb.java.database.DatabaseJava;
+import it.cavallium.strangedb.java.objects.lists.EnhancedObjectStrandeDbList;
+import it.cavallium.strangedb.java.objects.lists.ObjectStrandeDbList;
import it.unimi.dsi.fastutil.longs.LongArrayList;
-import it.cavallium.strangedb.database.Database;
-import it.cavallium.strangedb.EnhancedObject;
-import it.cavallium.strangedb.database.IDatabaseTools;
+import it.cavallium.strangedb.database.DatabaseCore;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.database.IDatabaseTools;
import it.cavallium.strangedb.VariableWrapper;
import java.io.IOException;
@@ -23,7 +24,7 @@ public class Performance {
private static Path dbDataFile;
private static Path dbBlocksFile;
private static Path dbReferencesFile;
- private static Database db;
+ private static DatabaseJava db;
/**
*
@@ -48,8 +49,8 @@ public class Performance {
System.out.println("-------------------------------------------------------+-----------------------------------------------------------------");
System.out.println("Test name Total Time | Time at 1 Time at 10 Time at 100 Time at 1K Time at 10K");
System.out.println("-------------------------------------------------------+-----------------------------------------------------------------");
- testS("Database creation", 3000, Performance::deleteDb, Performance::generateDb, () -> {});
- testS("Database root creation", 3000, Performance::regenDb, () -> db.loadRoot(PreloadedListContainer.class, PreloadedListContainer::new), () -> {});
+ testS("DatabaseCore creation", 3000, Performance::deleteDb, Performance::generateDb, () -> {});
+ testS("DatabaseCore root creation", 3000, Performance::regenDb, () -> db.loadRoot(PreloadedListContainer.class, PreloadedListContainer::new), () -> {});
final VariableWrapper preloadedListContainer = new VariableWrapper<>(null);
final VariableWrapper simpleEnhancedObjectContainer = new VariableWrapper<>(null);
testS("ObjectStrandeDbList creation", 3000, () -> {
@@ -267,7 +268,7 @@ public class Performance {
dbDataFile = Files.createFile(rootDirectory.resolve("db_data.dat"));
dbBlocksFile = Files.createFile(rootDirectory.resolve("db_blocks.dat"));
dbReferencesFile = Files.createFile(rootDirectory.resolve("db_references.dat"));
- db = new Database(dbDataFile, dbBlocksFile, dbReferencesFile);
+ db = new DatabaseJava(dbDataFile, dbBlocksFile, dbReferencesFile);
}
public static void deleteDb() throws IOException {
diff --git a/src/test/java/it/cavallium/strangedb/tests/V2Class.java b/src/test/java/it/cavallium/strangedb/tests/V2Class.java
index bd7ae53..d5bf5a9 100644
--- a/src/test/java/it/cavallium/strangedb/tests/V2Class.java
+++ b/src/test/java/it/cavallium/strangedb/tests/V2Class.java
@@ -1,13 +1,13 @@
package it.cavallium.strangedb.tests;
-import it.cavallium.strangedb.EnhancedObjectUpgrader;
-import it.cavallium.strangedb.annotations.DbDataType;
-import it.cavallium.strangedb.annotations.DbField;
-import it.cavallium.strangedb.annotations.DbPrimitiveField;
-import it.cavallium.strangedb.annotations.DbPrimitiveType;
-import it.cavallium.strangedb.EnhancedObject;
-import it.cavallium.strangedb.database.IDatabaseTools;
-import it.cavallium.strangedb.annotations.DbClass;
+import it.cavallium.strangedb.java.objects.EnhancedObjectUpgrader;
+import it.cavallium.strangedb.java.annotations.DbDataType;
+import it.cavallium.strangedb.java.annotations.DbField;
+import it.cavallium.strangedb.java.annotations.DbPrimitiveField;
+import it.cavallium.strangedb.java.annotations.DbPrimitiveType;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.database.IDatabaseTools;
+import it.cavallium.strangedb.java.annotations.DbClass;
import java.io.IOException;
diff --git a/src/test/java/it/cavallium/strangedb/utils/NSimplestClass.java b/src/test/java/it/cavallium/strangedb/utils/NSimplestClass.java
index e27c533..c86f685 100644
--- a/src/test/java/it/cavallium/strangedb/utils/NSimplestClass.java
+++ b/src/test/java/it/cavallium/strangedb/utils/NSimplestClass.java
@@ -1,9 +1,10 @@
package it.cavallium.strangedb.utils;
-import it.cavallium.strangedb.annotations.DbPrimitiveField;
-import it.cavallium.strangedb.annotations.DbPrimitiveType;
-import it.cavallium.strangedb.database.Database;
-import it.cavallium.strangedb.EnhancedObject;
+import it.cavallium.strangedb.java.annotations.DbPrimitiveField;
+import it.cavallium.strangedb.java.annotations.DbPrimitiveType;
+import it.cavallium.strangedb.database.DatabaseCore;
+import it.cavallium.strangedb.java.database.DatabaseJava;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
import java.io.IOException;
@@ -16,7 +17,7 @@ public class NSimplestClass extends EnhancedObject {
}
- public NSimplestClass(Database database) throws IOException {
+ public NSimplestClass(DatabaseJava database) throws IOException {
super(database);
field1 = true;
}
diff --git a/src/test/java/it/cavallium/strangedb/utils/NTestUtils.java b/src/test/java/it/cavallium/strangedb/utils/NTestUtils.java
index e7c4a4b..e79be44 100644
--- a/src/test/java/it/cavallium/strangedb/utils/NTestUtils.java
+++ b/src/test/java/it/cavallium/strangedb/utils/NTestUtils.java
@@ -1,11 +1,12 @@
package it.cavallium.strangedb.utils;
-import it.cavallium.strangedb.annotations.*;
+import it.cavallium.strangedb.database.DatabaseCore;
import it.cavallium.strangedb.functionalinterfaces.RunnableWithIO;
+import it.cavallium.strangedb.java.annotations.*;
+import it.cavallium.strangedb.java.database.DatabaseJava;
import it.unimi.dsi.fastutil.longs.LongArrayList;
-import it.cavallium.strangedb.database.Database;
-import it.cavallium.strangedb.EnhancedObject;
-import it.cavallium.strangedb.database.IDatabaseTools;
+import it.cavallium.strangedb.java.objects.EnhancedObject;
+import it.cavallium.strangedb.java.database.IDatabaseTools;
import java.io.File;
import java.io.IOException;
@@ -23,7 +24,7 @@ public class NTestUtils {
public static class WrappedDb {
- private Database db;
+ private DatabaseJava db;
private Path tempDir;
private RunnableWithIO r;
@@ -46,8 +47,8 @@ public class NTestUtils {
return this;
}
- private Database openDatabase() throws IOException {
- return new Database(tempDir.resolve(Paths.get("data.db")), tempDir.resolve(Paths.get("blocks.dat")), tempDir.resolve(Paths.get("references.dat")));
+ private DatabaseJava openDatabase() throws IOException {
+ return new DatabaseJava(tempDir.resolve(Paths.get("data.db")), tempDir.resolve(Paths.get("blocks.dat")), tempDir.resolve(Paths.get("references.dat")));
}
public void delete() throws IOException {
@@ -55,7 +56,7 @@ public class NTestUtils {
deleteDir(tempDir);
}
- public Database get() {
+ public DatabaseJava get() {
return db;
}