Class DerbyFhirDatabase
- java.lang.Object
-
- org.linuxforhealth.fhir.schema.derby.DerbyFhirDatabase
-
- All Implemented Interfaces:
java.lang.AutoCloseable,IConnectionProvider
public class DerbyFhirDatabase extends java.lang.Object implements java.lang.AutoCloseable, IConnectionProvider
An Apache Derby implementation of the IBM FHIR Server database (useful for supporting unit tests).
-
-
Constructor Summary
Constructors Constructor Description DerbyFhirDatabase()The default constructor will initialize the database at "derby/fhirDB".DerbyFhirDatabase(java.lang.String dbPath)Initialize the database using the given file-system path and build tables for all the resource typesDerbyFhirDatabase(java.lang.String dbPath, java.util.Set<java.lang.String> resourceTypeNames)Construct a Derby database at the specified path and deploy the IBM FHIR Server schema.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidcommitTransaction()Commit the current transaction if there's an actual connection associated with this thread (i.e.VersionHistoryServicecreateVersionHistoryService()Create the version history table and a simple service which is used to access information from it.voiddescribe(java.lang.String arg0, java.lang.StringBuilder arg1, java.lang.String arg2)Describe self, for writing configuration information to log file for test record purposesjava.sql.ConnectiongetConnection()Obtain a new connection to a data-source which this provider has been configured for.java.lang.StringgetSchemaName()Get the FHIR data schema nameIDatabaseTranslatorgetTranslator()Get the translator associated with this connection provider.voidpopulateResourceTypeAndParameterNameTableEntries()prepopulates the bootstrapped derby database with static lookup data.voidrollbackTransaction()Roll back the transaction for the connection associated with this thread, if one exists-
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.linuxforhealth.fhir.database.utils.api.IConnectionProvider
getPoolSize
-
-
-
-
Constructor Detail
-
DerbyFhirDatabase
public DerbyFhirDatabase() throws java.sql.SQLExceptionThe default constructor will initialize the database at "derby/fhirDB".- Throws:
java.sql.SQLException
-
DerbyFhirDatabase
public DerbyFhirDatabase(java.lang.String dbPath) throws java.sql.SQLExceptionInitialize the database using the given file-system path and build tables for all the resource types- Parameters:
dbPath-- Throws:
java.sql.SQLException
-
DerbyFhirDatabase
public DerbyFhirDatabase(java.lang.String dbPath, java.util.Set<java.lang.String> resourceTypeNames) throws java.sql.SQLExceptionConstruct a Derby database at the specified path and deploy the IBM FHIR Server schema.- Throws:
java.sql.SQLException
-
-
Method Detail
-
getSchemaName
public java.lang.String getSchemaName()
Get the FHIR data schema name- Returns:
-
populateResourceTypeAndParameterNameTableEntries
public void populateResourceTypeAndParameterNameTableEntries() throws java.sql.SQLExceptionprepopulates the bootstrapped derby database with static lookup data.- Throws:
java.sql.SQLException
-
createVersionHistoryService
public VersionHistoryService createVersionHistoryService() throws java.sql.SQLException
Create the version history table and a simple service which is used to access information from it.- Throws:
java.sql.SQLException
-
close
public void close() throws java.lang.Exception- Specified by:
closein interfacejava.lang.AutoCloseable- Throws:
java.lang.Exception
-
commitTransaction
public void commitTransaction() throws java.sql.SQLExceptionDescription copied from interface:IConnectionProviderCommit the current transaction if there's an actual connection associated with this thread (i.e. if getConnection() has been called at least once), otherwise do nothing.- Specified by:
commitTransactionin interfaceIConnectionProvider- Throws:
java.sql.SQLException
-
describe
public void describe(java.lang.String arg0, java.lang.StringBuilder arg1, java.lang.String arg2)Description copied from interface:IConnectionProviderDescribe self, for writing configuration information to log file for test record purposes- Specified by:
describein interfaceIConnectionProvider
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLExceptionDescription copied from interface:IConnectionProviderObtain a new connection to a data-source which this provider has been configured for.- Specified by:
getConnectionin interfaceIConnectionProvider- Returns:
- Throws:
java.sql.SQLException
-
getTranslator
public IDatabaseTranslator getTranslator()
Description copied from interface:IConnectionProviderGet the translator associated with this connection provider. Supports interpretation of SQLExceptions and the ability to tweak SQL statements to handle differences between databases- Specified by:
getTranslatorin interfaceIConnectionProvider- Returns:
-
rollbackTransaction
public void rollbackTransaction() throws java.sql.SQLExceptionDescription copied from interface:IConnectionProviderRoll back the transaction for the connection associated with this thread, if one exists- Specified by:
rollbackTransactionin interfaceIConnectionProvider- Throws:
java.sql.SQLException
-
-