public interface Database
Modifier and Type | Method and Description |
---|---|
void |
connect(java.util.Map<java.lang.String,java.lang.String> credentials)
Connect to database via credentials
|
void |
connect(java.lang.String uri)
Connect to database via connection url
|
<T extends BaseModel> |
delete(T object,
java.lang.Class<T> modelClass)
Deletes object in database which matches provided object
|
<T extends BaseModel> |
fetchAll(java.lang.Class<T> modelClass)
Fetch all objects which matches model class
|
<T extends BaseModel> |
fetchMatching(java.lang.Class<T> modelClass,
java.lang.String key,
java.lang.Object value)
Fetch all objects which match provided conditions
|
<T extends BaseModel> |
filter(java.lang.Class<T> modelClass,
java.lang.String field,
FilterExpression expression,
java.lang.Object value,
java.util.stream.Stream<T> objects)
Returns all object which match
|
OperationManager |
getOperationManager()
Returns manager of operations
|
void |
initModel(java.util.Collection<java.lang.Class<? extends BaseModel>> modelClasses)
Initialize table in database.
|
boolean |
isConnectionValid()
Checks is connection to database valid
|
void |
registerSerializer(java.lang.Class<?> serializedObjectClass,
java.lang.Class<? extends Serializer> serializerClass)
Register new object serializer
|
<T extends BaseModel> |
save(T object,
java.lang.Class<T> modelClass)
Save object
|
<T extends BaseModel> |
save(T object,
java.lang.Class<T> modelClass,
java.util.Map<java.lang.String,java.lang.Object> options)
Save object
|
<T extends BaseModel> |
saveMany(java.util.Collection<T> objects,
java.lang.Class<T> modelClass)
Save Many object
|
<T extends BaseModel> |
saveMany(java.util.Collection<T> objects,
java.lang.Class<T> modelClass,
java.util.Map<java.lang.String,java.lang.Object> options)
Save Many object
|
void |
terminateConnection()
Terminates connections
|
OperationManager getOperationManager()
void connect(java.lang.String uri) throws AlreadyConnectedException
uri
- URI stringAlreadyConnectedException
- Already connected to databasevoid connect(java.util.Map<java.lang.String,java.lang.String> credentials) throws AlreadyConnectedException
credentials
- Map with defined keys and values as credentialsAlreadyConnectedException
- Already connected to databasevoid registerSerializer(java.lang.Class<?> serializedObjectClass, java.lang.Class<? extends Serializer> serializerClass)
serializedObjectClass
- Class of object which is going to be used with provided serializerserializerClass
- Class of serializervoid initModel(java.util.Collection<java.lang.Class<? extends BaseModel>> modelClasses) throws ModelAnnotationMissingException, MoreThanOnePrimaryKeyException, NoPrimaryKeyException
modelClasses
- One or multiple class of modelsModelAnnotationMissingException
- Exception when model is not using @Model annotationMoreThanOnePrimaryKeyException
- Exception when model have more than one field set as primary keyNoPrimaryKeyException
- Exception when model don't have field as primary key<T extends BaseModel> java.util.List<T> fetchAll(java.lang.Class<T> modelClass) throws ModelAnnotationMissingException, NotConnectedToDatabaseException, ModelNotInitializedException, NoSerializerFoundException, java.lang.reflect.InvocationTargetException, java.lang.InstantiationException, java.lang.IllegalAccessException
T
- Model classmodelClass
- Model classModelAnnotationMissingException
- Exception when model is not using @Model annotationNotConnectedToDatabaseException
- Not connected to databaseModelNotInitializedException
- Model wasn't initializedNoSerializerFoundException
- Serializer for field model wasn't foundjava.lang.reflect.InvocationTargetException
- Java exception when wasn't able to invoke methodjava.lang.InstantiationException
- Java exception when model class wasn't able to create own instancejava.lang.IllegalAccessException
- Java security exception<T extends BaseModel> java.util.List<T> fetchMatching(java.lang.Class<T> modelClass, java.lang.String key, java.lang.Object value) throws NotConnectedToDatabaseException, ModelNotInitializedException, ModelAnnotationMissingException, NoSerializerFoundException, java.lang.reflect.InvocationTargetException, java.lang.InstantiationException, java.lang.IllegalAccessException
T
- Model classmodelClass
- Model classkey
- Object key in database (field name)value
- Not serialized value of fieldModelAnnotationMissingException
- Exception when model is not using @Model annotationNotConnectedToDatabaseException
- Not connected to databaseModelNotInitializedException
- Model wasn't initializedNoSerializerFoundException
- Serializer for field model wasn't foundjava.lang.reflect.InvocationTargetException
- Java exception when wasn't able to invoke methodjava.lang.InstantiationException
- Java exception when model class wasn't able to create own instancejava.lang.IllegalAccessException
- Java security exception<T extends BaseModel> void saveMany(java.util.Collection<T> objects, java.lang.Class<T> modelClass) throws NoSerializerFoundException, java.lang.reflect.InvocationTargetException, java.lang.InstantiationException, java.lang.IllegalAccessException, NotConnectedToDatabaseException
T
- Model classobjects
- Collection of objectsmodelClass
- class of object modelNoSerializerFoundException
- Serializer for field model wasn't foundjava.lang.InstantiationException
- Java exception when model class wasn't able to create own instancejava.lang.IllegalAccessException
- Java security exceptionjava.lang.reflect.InvocationTargetException
- Java exception when wasn't able to invoke methodNotConnectedToDatabaseException
- Not connected to database<T extends BaseModel> void saveMany(java.util.Collection<T> objects, java.lang.Class<T> modelClass, java.util.Map<java.lang.String,java.lang.Object> options) throws NoSerializerFoundException, java.lang.reflect.InvocationTargetException, java.lang.InstantiationException, java.lang.IllegalAccessException, NotConnectedToDatabaseException
T
- Model classobjects
- Collection of objectsmodelClass
- class of object modeloptions
- Options for savingNoSerializerFoundException
- Serializer for field model wasn't foundjava.lang.InstantiationException
- Java exception when model class wasn't able to create own instancejava.lang.IllegalAccessException
- Java security exceptionjava.lang.reflect.InvocationTargetException
- Java exception when wasn't able to invoke methodNotConnectedToDatabaseException
- Not connected to database<T extends BaseModel> void save(T object, java.lang.Class<T> modelClass) throws NoSerializerFoundException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, NotConnectedToDatabaseException
T
- Model classobject
- objectmodelClass
- class of object modelNoSerializerFoundException
- Serializer for field model wasn't foundjava.lang.InstantiationException
- Java exception when model class wasn't able to create own instancejava.lang.IllegalAccessException
- Java security exceptionjava.lang.reflect.InvocationTargetException
- Java exception when wasn't able to invoke methodNotConnectedToDatabaseException
- Not connected to database<T extends BaseModel> void save(T object, java.lang.Class<T> modelClass, java.util.Map<java.lang.String,java.lang.Object> options) throws NoSerializerFoundException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException, NotConnectedToDatabaseException
T
- Model classobject
- objectmodelClass
- class of object modeloptions
- Options for savingNoSerializerFoundException
- Serializer for field model wasn't foundjava.lang.InstantiationException
- Java exception when model class wasn't able to create own instancejava.lang.IllegalAccessException
- Java security exceptionjava.lang.reflect.InvocationTargetException
- Java exception when wasn't able to invoke methodNotConnectedToDatabaseException
- Not connected to database<T extends BaseModel> java.util.List<T> filter(java.lang.Class<T> modelClass, java.lang.String field, FilterExpression expression, java.lang.Object value, java.util.stream.Stream<T> objects)
T
- Model classmodelClass
- class of object modelfield
- matching fieldexpression
- expression from enumvalue
- matched value to fieldobjects
- provided stream of objects<T extends BaseModel> void delete(T object, java.lang.Class<T> modelClass) throws NotConnectedToDatabaseException, NoSerializerFoundException, java.lang.InstantiationException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
T
- Model classmodelClass
- Model classobject
- objectNotConnectedToDatabaseException
- Not connected to databaseNoSerializerFoundException
- Serializer for field model wasn't foundjava.lang.InstantiationException
- Java exception when model class wasn't able to create own instancejava.lang.IllegalAccessException
- Java security exceptionjava.lang.reflect.InvocationTargetException
- Java exception when wasn't able to invoke methodboolean isConnectionValid()
void terminateConnection() throws NotConnectedToDatabaseException
NotConnectedToDatabaseException
- Not connected to database