- 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 voidConfigures a database, for example run migration scripts.default voidconfigure(Connection connection) Configures a database connection for applications using this domain model, for example adding extensions or properties.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 parameter 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 parameter 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.
-