Module is.codion.framework.model
Package is.codion.framework.model
Class DefaultEntityApplicationModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
java.lang.Object
is.codion.framework.model.DefaultEntityApplicationModel<M,E,T>
- Type Parameters:
M- the type ofDefaultEntityModelthis application model is based onE- the type ofAbstractEntityEditModelused by thisEntityModelT- the type ofEntityTableModelused by thisEntityModel
- All Implemented Interfaces:
EntityApplicationModel<M,E, T>
public class DefaultEntityApplicationModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
extends Object
implements EntityApplicationModel<M,E,T>
A central application model class.
-
Field Summary
Fields inherited from interface is.codion.framework.model.EntityApplicationModel
AUTHENTICATION_REQUIRED, SAVE_DEFAULT_USERNAME, USERNAME_PREFIX -
Constructor Summary
ConstructorsConstructorDescriptionDefaultEntityApplicationModel(is.codion.framework.db.EntityConnectionProvider connectionProvider) Instantiates a new DefaultEntityApplicationModelDefaultEntityApplicationModel(is.codion.framework.db.EntityConnectionProvider connectionProvider, is.codion.common.version.Version version) Instantiates a new DefaultEntityApplicationModel -
Method Summary
Modifier and TypeMethodDescriptionfinal voidaddEntityModel(M entityModel) Adds the given entity model to this modelfinal voidaddEntityModels(M... entityModels) Adds the given entity models to this model.final is.codion.framework.db.EntityConnectionProviderfinal booleancontainsEntityModel(is.codion.framework.domain.entity.EntityType entityType) final booleancontainsEntityModel(Class<? extends M> modelClass) final booleancontainsEntityModel(M entityModel) final booleanfinal is.codion.framework.domain.entity.Entitiesentities()final <C extends M>
CentityModel(is.codion.framework.domain.entity.EntityType entityType) final <C extends M>
CentityModel(Class<C> modelClass) final voidrefresh()Refreshes all data models contained in this application modelvoidSaves any user preferences.final is.codion.common.user.Useruser()final Optional<is.codion.common.version.Version>version()final is.codion.common.state.State
-
Constructor Details
-
DefaultEntityApplicationModel
public DefaultEntityApplicationModel(is.codion.framework.db.EntityConnectionProvider connectionProvider) Instantiates a new DefaultEntityApplicationModel- Parameters:
connectionProvider- the EntityConnectionProvider instance- Throws:
NullPointerException- in case connectionProvider is null
-
DefaultEntityApplicationModel
public DefaultEntityApplicationModel(is.codion.framework.db.EntityConnectionProvider connectionProvider, is.codion.common.version.Version version) Instantiates a new DefaultEntityApplicationModel- Parameters:
connectionProvider- the EntityConnectionProvider instanceversion- the application version- Throws:
NullPointerException- in case connectionProvider is null
-
-
Method Details
-
user
public final is.codion.common.user.User user()- Specified by:
userin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- the current user
-
connectionProvider
public final is.codion.framework.db.EntityConnectionProvider connectionProvider()- Specified by:
connectionProviderin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- the EntityConnectionProvider instance being used by this EntityApplicationModel
-
version
- Specified by:
versionin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- the application version, an empty Optional in case no version information is available
-
entities
public final is.codion.framework.domain.entity.Entities entities()- Specified by:
entitiesin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- the underlying domain entities
-
addEntityModels
Description copied from interface:EntityApplicationModelAdds the given entity models to this model.- Specified by:
addEntityModelsin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
entityModels- the entity models to add
-
addEntityModel
Description copied from interface:EntityApplicationModelAdds the given entity model to this model- Specified by:
addEntityModelin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
entityModel- the detail model
-
containsEntityModel
- Specified by:
containsEntityModelin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
modelClass- the application model class- Returns:
- true if this model contains a EntityModel instance of the given class
-
containsEntityModel
public final boolean containsEntityModel(is.codion.framework.domain.entity.EntityType entityType) - Specified by:
containsEntityModelin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
entityType- the entityType- Returns:
- true if this model contains a EntityModel for the given entityType
-
containsEntityModel
- Specified by:
containsEntityModelin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
entityModel- the entity model- Returns:
- true if this model contains the given EntityModel
-
entityModels
- Specified by:
entityModelsin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- an unmodifiable List containing the EntityModel instances contained in this EntityApplicationModel
-
refresh
public final void refresh()Description copied from interface:EntityApplicationModelRefreshes all data models contained in this application model- Specified by:
refreshin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>>
-
entityModel
- Specified by:
entityModelin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Type Parameters:
C- the model type- Parameters:
modelClass- the model class- Returns:
- the EntityModel of the given type
-
entityModel
- Specified by:
entityModelin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Type Parameters:
C- the model type- Parameters:
entityType- the entityType- Returns:
- the EntityModel based on the given entityType
-
warnAboutUnsavedData
public final is.codion.common.state.State warnAboutUnsavedData()- Specified by:
warnAboutUnsavedDatain interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- the State controlling whether this model warns about unsaved data
- See Also:
-
containsUnsavedData
public final boolean containsUnsavedData()- Specified by:
containsUnsavedDatain interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- true if any edit model associated with this application model contains modified and unsaved data, that is, existing entities that have been modified but not saved
-
savePreferences
public void savePreferences()Description copied from interface:EntityApplicationModelSaves any user preferences. Note that ifEntityModel.USE_CLIENT_PREFERENCESis set to 'false', calling this method has no effect. Remember to call super.savePreferences() when overriding.- Specified by:
savePreferencesin interfaceEntityApplicationModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>>
-