Module is.codion.framework.model
Package is.codion.framework.model
Class DefaultEntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
java.lang.Object
is.codion.framework.model.DefaultEntityModel<M,E,T>
- Type Parameters:
M- the type ofDefaultEntityModelused for detail modelsE- the type ofAbstractEntityEditModelused by thisEntityModelT- the type ofEntityTableModelused by thisEntityModel
- All Implemented Interfaces:
EntityModel<M,E, T>
public class DefaultEntityModel<M extends DefaultEntityModel<M,E,T>,E extends AbstractEntityEditModel,T extends EntityTableModel<E>>
extends Object
implements EntityModel<M,E,T>
A default EntityModel implementation.
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultEntityModel(E editModel) Instantiates a new DefaultEntityModel, without a table modelDefaultEntityModel(T tableModel) Instantiates a new DefaultEntityModel -
Method Summary
Modifier and TypeMethodDescriptionfinal <L extends DetailModelLink<M,E, T>>
LaddDetailModel(L detailModelLink) Adds the given detail model to this model, a side effect if the detail model contains a table model is that it is configured so that a query condition is required for it to show any data, viaEntityTableModel.conditionRequired()final ForeignKeyDetailModelLink<M,E, T> addDetailModel(M detailModel) Adds the given detail model to this model, a side effect if the detail model contains a table model is that it is configured so that a query condition is required for it to show any data, viaEntityTableModel.conditionRequired().final ForeignKeyDetailModelLink<M,E, T> addDetailModel(M detailModel, is.codion.framework.domain.entity.attribute.ForeignKey foreignKey) Adds the given detail model to this model, a side effect if the detail model contains a table model is that it is configured so that a query condition is required for it to show any data, viaEntityTableModel.conditionRequired()Specify the foreign key in case the detail model is based on an entity which contains multiple foreign keys to the same master entity.final voidaddDetailModels(M... detailModels) Adds the given detail model to this model, a side effect if the detail model contains a table model is that it is configured so that a query condition is required for it to show any data, viaEntityTableModel.conditionRequired().final is.codion.framework.db.EntityConnectionDo not cache or keep the connection returned by this method in a long living field, since it may become invalid and thereby unusable.final is.codion.framework.db.EntityConnectionProviderfinal booleancontainsDetailModel(is.codion.framework.domain.entity.EntityType entityType) final booleancontainsDetailModel(Class<? extends M> modelClass) final booleancontainsDetailModel(M detailModel) final booleanfinal <C extends M>
CdetailModel(is.codion.framework.domain.entity.EntityType entityType) Returns a detail model of the given typefinal <C extends M>
CdetailModel(Class<C> modelClass) Returns the first detail model of the given typefinal <L extends DetailModelLink<M,E, T>>
LdetailModelLink(M detailModel) final Collection<M>final <C extends E>
Cfinal is.codion.framework.domain.entity.Entitiesentities()final is.codion.framework.domain.entity.EntityDefinitionfinal is.codion.framework.domain.entity.EntityTypefinal is.codion.common.value.ValueSetObserver<M>final <C extends T>
Cfinal StringtoString()
-
Constructor Details
-
DefaultEntityModel
Instantiates a new DefaultEntityModel, without a table model- Parameters:
editModel- the edit model
-
DefaultEntityModel
Instantiates a new DefaultEntityModel- Parameters:
tableModel- the table model
-
-
Method Details
-
toString
-
entityType
public final is.codion.framework.domain.entity.EntityType entityType()- Specified by:
entityTypein interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- the type of the entity this entity model is based on
-
connectionProvider
public final is.codion.framework.db.EntityConnectionProvider connectionProvider()- Specified by:
connectionProviderin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- the connection provider used by this entity model
-
connection
public final is.codion.framework.db.EntityConnection connection()Description copied from interface:EntityModelDo not cache or keep the connection returned by this method in a long living field, since it may become invalid and thereby unusable.- Specified by:
connectionin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- the connection used by this entity model
-
entities
public final is.codion.framework.domain.entity.Entities entities()- Specified by:
entitiesin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- the underlying domain entities
-
entityDefinition
public final is.codion.framework.domain.entity.EntityDefinition entityDefinition()- Specified by:
entityDefinitionin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- the definition of the underlying entity
-
editModel
- Specified by:
editModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Type Parameters:
C- the edit model type- Returns:
- the
EntityEditModelinstance used by thisEntityModel
-
tableModel
- Specified by:
tableModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Type Parameters:
C- the table model type- Returns:
- the
EntityTableModel
-
containsTableModel
public final boolean containsTableModel()- Specified by:
containsTableModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- true if this
EntityModelcontains aEntityTableModel
-
addDetailModels
Description copied from interface:EntityModelAdds the given detail model to this model, a side effect if the detail model contains a table model is that it is configured so that a query condition is required for it to show any data, viaEntityTableModel.conditionRequired(). Note that each detail model is associated with the first foreign key found referencing this models entity.- Specified by:
addDetailModelsin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
detailModels- the detail models to add
-
addDetailModel
Description copied from interface:EntityModelAdds the given detail model to this model, a side effect if the detail model contains a table model is that it is configured so that a query condition is required for it to show any data, viaEntityTableModel.conditionRequired(). Note that the detail model is associated with the first foreign key found referencing this models entity.- Specified by:
addDetailModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
detailModel- the detail model- Returns:
- the resulting
ForeignKeyDetailModelLink
-
addDetailModel
public final ForeignKeyDetailModelLink<M,E, addDetailModelT> (M detailModel, is.codion.framework.domain.entity.attribute.ForeignKey foreignKey) Description copied from interface:EntityModelAdds the given detail model to this model, a side effect if the detail model contains a table model is that it is configured so that a query condition is required for it to show any data, viaEntityTableModel.conditionRequired()Specify the foreign key in case the detail model is based on an entity which contains multiple foreign keys to the same master entity.- Specified by:
addDetailModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
detailModel- the detail modelforeignKey- the foreign key to base the detail model on- Returns:
- the resulting
ForeignKeyDetailModelLink
-
addDetailModel
Description copied from interface:EntityModelAdds the given detail model to this model, a side effect if the detail model contains a table model is that it is configured so that a query condition is required for it to show any data, viaEntityTableModel.conditionRequired()- Specified by:
addDetailModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Type Parameters:
L- theDetailModelLinktype- Parameters:
detailModelLink- theDetailModelLinkto add- Returns:
- the
DetailModelLink
-
containsDetailModel
- Specified by:
containsDetailModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
modelClass- the detail model class- Returns:
- true if this model contains a detail model of the given class
-
containsDetailModel
public final boolean containsDetailModel(is.codion.framework.domain.entity.EntityType entityType) - Specified by:
containsDetailModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
entityType- the entityType- Returns:
- true if this model contains a detail model for the given entityType
-
containsDetailModel
- Specified by:
containsDetailModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Parameters:
detailModel- the detail model- Returns:
- true if this model contains the given detail model
-
detailModels
- Specified by:
detailModelsin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- an unmodifiable collection containing the detail models this model contains
-
detailModelLink
- Specified by:
detailModelLinkin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Type Parameters:
L- theDetailModelLinktype- Parameters:
detailModel- the detail model- Returns:
- the link for the given detail model
-
linkedDetailModels
- Specified by:
linkedDetailModelsin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Returns:
- detail models with an active link to this model, that is, those that should respond to master model events
- See Also:
-
detailModel
Description copied from interface:EntityModelReturns the first detail model of the given type- Specified by:
detailModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Type Parameters:
C- the model type- Parameters:
modelClass- the type of the requiredEntityModel- Returns:
- the detail model of type
entityModelClass
-
detailModel
Description copied from interface:EntityModelReturns a detail model of the given type- Specified by:
detailModelin interfaceEntityModel<M extends DefaultEntityModel<M,E, T>, E extends AbstractEntityEditModel, T extends EntityTableModel<E>> - Type Parameters:
C- the detail model type- Parameters:
entityType- the entityType of the required EntityModel- Returns:
- the detail model of type
entityModelClass
-