getQueries() throws IOException;
/**
* Returns a reference to any available table in this access
* database, including system tables.
*
* Warning, this method is not designed for common use, only for the
* occassional time when access to a system table is necessary. Messing
* with system tables can strip the paint off your house and give your whole
* family a permanent, orange afro. You have been warned.
*
* @param tableName Table name, may be a system table
* @return The table, or {@code null} if it doesn't exist
* @usage _intermediate_method_
*/
public Table getSystemTable(String tableName) throws IOException;
/**
* @return the core properties for the database
* @usage _general_method_
*/
public PropertyMap getDatabaseProperties() throws IOException;
/**
* @return the summary properties for the database
* @usage _general_method_
*/
public PropertyMap getSummaryProperties() throws IOException;
/**
* @return the user-defined properties for the database
* @usage _general_method_
*/
public PropertyMap getUserDefinedProperties() throws IOException;
/**
* @return the current database password, or {@code null} if none set.
* @usage _general_method_
*/
public String getDatabasePassword() throws IOException;
/**
* Create a new table in this database
* @param name Name of the table to create in this database
* @param linkedDbName path to the linked database
* @param linkedTableName name of the table in the linked database
* @usage _general_method_
*/
public void createLinkedTable(String name, String linkedDbName,
String linkedTableName)
throws IOException;
/**
* Flushes any current changes to the database file (and any linked
* databases) to disk.
* @usage _general_method_
*/
public void flush() throws IOException;
/**
* Close the database file (and any linked databases). A Database
* must be closed after use or changes could be lost and the Database
* file corrupted. A Database instance should be treated like any other
* external resource which would be closed in a finally block (e.g. an
* OutputStream or jdbc Connection).
* @usage _general_method_
*/
public void close() throws IOException;
/**
* Gets the currently configured ErrorHandler (always non-{@code null}).
* This will be used to handle all errors unless overridden at the Table or
* Cursor level.
* @usage _intermediate_method_
*/
public ErrorHandler getErrorHandler();
/**
* Sets a new ErrorHandler. If {@code null}, resets to the
* {@link ErrorHandler#DEFAULT}.
* @usage _intermediate_method_
*/
public void setErrorHandler(ErrorHandler newErrorHandler);
/**
* Gets the currently configured LinkResolver (always non-{@code null}).
* This will be used to handle all linked database loading.
* @usage _intermediate_method_
*/
public LinkResolver getLinkResolver();
/**
* Sets a new LinkResolver. If {@code null}, resets to the
* {@link LinkResolver#DEFAULT}.
* @usage _intermediate_method_
*/
public void setLinkResolver(LinkResolver newLinkResolver);
/**
* Returns an unmodifiable view of the currently loaded linked databases,
* mapped from the linked database file name to the linked database. This
* information may be useful for implementing a LinkResolver.
* @usage _intermediate_method_
*/
public Map getLinkedDatabases();
/**
* Returns {@code true} if this Database links to the given Table, {@code
* false} otherwise.
* @usage _general_method_
*/
public boolean isLinkedTable(Table table) throws IOException;
/**
* Gets currently configured TimeZone (always non-{@code null}).
* @usage _intermediate_method_
*/
public TimeZone getTimeZone();
/**
* Sets a new TimeZone. If {@code null}, resets to the default value.
* @usage _intermediate_method_
*/
public void setTimeZone(TimeZone newTimeZone);
/**
* Gets currently configured Charset (always non-{@code null}).
* @usage _intermediate_method_
*/
public Charset getCharset();
/**
* Sets a new Charset. If {@code null}, resets to the default value.
* @usage _intermediate_method_
*/
public void setCharset(Charset newCharset);
/**
* Gets currently configured {@link Table.ColumnOrder} (always non-{@code
* null}).
* @usage _intermediate_method_
*/
public Table.ColumnOrder getColumnOrder();
/**
* Sets a new Table.ColumnOrder. If {@code null}, resets to the default value.
* @usage _intermediate_method_
*/
public void setColumnOrder(Table.ColumnOrder newColumnOrder);
/**
* Gets current foreign-key enforcement policy.
* @usage _intermediate_method_
*/
public boolean isEnforceForeignKeys();
/**
* Sets a new foreign-key enforcement policy. If {@code null}, resets to
* the default value.
* @usage _intermediate_method_
*/
public void setEnforceForeignKeys(Boolean newEnforceForeignKeys);
/**
* Gets current allow auto number insert policy. By default, jackcess does
* not allow auto numbers to be inserted or updated directly (they are
* always handled internally by the Table). Setting this policy to {@code
* true} allows the caller to optionally set the value explicitly when
* adding or updating rows (if a value is not provided, it will still be
* handled internally by the Table). This value can be set database-wide
* using {@link #setAllowAutoNumberInsert} and/or on a per-table basis using
* {@link Table#setAllowAutoNumberInsert} (and/or on a jvm-wide using the
* {@link #ALLOW_AUTONUM_INSERT_PROPERTY} system property). Note that
* enabling this feature should be done with care to reduce the
* chances of screwing up the database.
*
* @usage _intermediate_method_
*/
public boolean isAllowAutoNumberInsert();
/**
* Sets the new auto number insert policy for the database (unless
* overridden at the Table level). If {@code null}, resets to the default
* value.
* @usage _intermediate_method_
*/
public void setAllowAutoNumberInsert(Boolean allowAutoNumInsert);
/**
* Gets the current expression evaluation policy. Expression evaluation is
* currently an experimental feature, and is therefore disabled by default.
*/
public boolean isEvaluateExpressions();
/**
* Sets the current expression evaluation policy. Expression evaluation is
* currently an experimental feature, and is therefore disabled by default.
* If {@code null}, resets to the default value.
* @usage _intermediate_method_
*/
public void setEvaluateExpressions(Boolean evaluateExpressions);
/**
* Gets currently configured ColumnValidatorFactory (always non-{@code null}).
* @usage _intermediate_method_
*/
public ColumnValidatorFactory getColumnValidatorFactory();
/**
* Sets a new ColumnValidatorFactory. If {@code null}, resets to the
* default value. The configured ColumnValidatorFactory will be used to
* create ColumnValidator instances on any user tables loaded from
* this point onward (this will not be used for system tables).
* @usage _intermediate_method_
*/
public void setColumnValidatorFactory(ColumnValidatorFactory newFactory);
/**
* Returns the FileFormat of this database (which may involve inspecting the
* database itself).
* @throws IllegalStateException if the file format cannot be determined
* @usage _general_method_
*/
public FileFormat getFileFormat() throws IOException;
/**
* Returns the EvalConfig for configuring expression evaluation.
*/
public EvalConfig getEvalConfig();
}