- All Known Implementing Classes:
DomainModel
,SchemaDomain
,TestDomain
public interface Domain
Represents an application domain model, entities, reports and database operations.
-
Method Summary
Modifier and TypeMethodDescriptiondefault void
configure
(DatabaseConnection connection) Configures a database connection for applications using this domain model, for example adding extensions or properties.default void
Configures a database, for example run migration scripts.domains()
entities()
<C,
T, R> DatabaseFunction<C, T, R> function
(FunctionType<C, T, R> functionType) Retrieves the function of the given type.Map<FunctionType<?,
?, ?>, DatabaseFunction<?, ?, ?>> <C,
T> DatabaseProcedure<C, T> procedure
(ProcedureType<C, T> procedureType) Retrieves the procedure of the given type.Map<ProcedureType<?,
?>, DatabaseProcedure<?, ?>> <T,
R, P> Report<T, R, P> report
(ReportType<T, R, P> reportType) Retrieves the report of the given type.Map<ReportType<?,
?, ?>, Report<?, ?, ?>> reports()
type()
-
Method Details
-
type
DomainType type()- Returns:
- the domain type identifying this domain model
-
entities
Entities entities()- Returns:
- the Domain entities
-
reports
Map<ReportType<?,?, reports()?>, Report<?, ?, ?>> - Returns:
- an unmodifiable view of this domain's reports
-
procedures
Map<ProcedureType<?,?>, procedures()DatabaseProcedure<?, ?>> - Returns:
- an unmodifiable view of this domain's procedures
-
functions
Map<FunctionType<?,?, functions()?>, DatabaseFunction<?, ?, ?>> - Returns:
- an unmodifiable view of this domain's functions
-
report
Retrieves the report of the given type.- Type Parameters:
T
- the report typeR
- the report result typeP
- the report parameters type- Parameters:
reportType
- the report type- Returns:
- the report
- Throws:
IllegalArgumentException
- in case the report is not found
-
procedure
Retrieves the procedure of the given type.- Type Parameters:
C
- the type of the database connection this procedure requiresT
- the argument type- Parameters:
procedureType
- the procedure type- Returns:
- the procedure
- Throws:
IllegalArgumentException
- in case the procedure is not found
-
function
Retrieves the function of the given type.- Type Parameters:
C
- the type of the database connection this function requiresT
- the argument typeR
- the result type- Parameters:
functionType
- the function type- Returns:
- the function
- Throws:
IllegalArgumentException
- in case the function is not found
-
configure
Configures a database connection for applications using this domain model, for example adding extensions or properties. Called each time a new connection based on this domain is created.- Parameters:
connection
- the connection to configure- Throws:
DatabaseException
- in case of an exception
-
configure
Configures a database, for example run migration scripts. Only called once per database instance.- Parameters:
database
- the database- Throws:
DatabaseException
- in case of an exception
-
domains
- Returns:
- a list containing all the Domains registered with
ServiceLoader
.
-