Package com.illumon.iris.db.schema
Class SchemaService.Delegating
java.lang.Object
com.illumon.iris.db.schema.SchemaService.Delegating
- All Implemented Interfaces:
SchemaService,NamedImplementation,AutoCloseable
- Enclosing interface:
- SchemaService
Delegate all method calls to an implementation object.
This is designed to be overloaded.
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.illumon.iris.db.schema.SchemaService
SchemaService.Delegating -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabout()Information about a SchemaService instance.Add the specified schema to the service.Add the specified schema to the service.addSchema(TableDefinitionSchema newSchema) Add the specified schema to the service.addSchema(TableDefinitionSchema newSchema, String code, String comment) Add the specified schema to the service.org.jdom2.ElementasSchemaXml(Schema schema) booleanAuthenticate using default authentication.booleanauthenticate(String user, String password) Authenticate using the given user and password.booleanauthenticate(String user, String password, String operateAs) Authenticate using the given user and password, operating as the operateAs user.voidclose()booleancontainsNamespace(String namespace) Find out whether the given namespace is known to the schema service.booleancontainsNamespace(String namespace, boolean includeDeleted) Find out whether the given namespace is known to the schema service.booleancontainsSchema(String namespace, String tableName) Find out if the given schema exists.booleancreateNamespace(NamespaceSet namespaceSet, String namespaceName) Add a namespace with the given name to the schema service, in the requested namespace set.booleancreateNamespace(NamespaceSet namespaceSet, String namespaceName, String code, String comment) Add a namespace with the given name to the schema service, in the requested namespace set.voiddeleteSchema(TableDefinitionSchema schema) Delete the specified schema.voiddeleteSchema(TableDefinitionSchema schema, String code, String comment) Delete the specified schema.voiddeleteSchema(String namespace, String tableName) Delete the specified schema.voiddeleteSchema(String namespace, String tableName, String code, String comment) Delete the specified schema.fromDefinition(TableDefinition definition, NamespaceSet namespaceSet) Create aMutableSchemathat supportsSchemaXmlfrom aTableDefinition, using the given namespace set and taking namespace, table name, and storage type from the given TableDefinition.fromDefinition(TableDefinition definition, String namespace, String tableName, int storageType, NamespaceSet set) Create aMutableSchemathat supportsSchemaXmlfrom aTableDefinition, using the specified namespace, table name, storage type andNamespaceSet.fromDefinition(TableDefinition definition, String namespace, String tableName, int storageType, NamespaceSet set, boolean useNanosecondTimePrecision) Create aMutableSchemathat supportsSchemaXmlfrom aTableDefinition, using the specified namespace, table name, storage type andNamespaceSet.fromElement(org.jdom2.Element elem) Get a collection of all known schemas in the system.getLatestSchema(String namespace, String tableName) Get the latest version of theSchemadefined by namespace and table namegetLatestSchemaXml(String namespace, String tableName) getLatestTableDefinition(String namespace, String tableName) Get the latest version of theSchemafor the namespace and table name, and return itsTableDefinition.getLatestTableDefinitionSchema(String namespace, String tableName) Get the latest version of theTableDefinitionSchemadefined by namespace and table namegetNamespaceSet(String namespace) Get theNamespaceSetfor a particular namespace.Convenience method forSchemaService.getLatestSchema(String, String).getSchema(String namespace, String tableName, SchemaVersion version) Get the specified version of theSchemadefined by namespace and table namegetSchemas(NamespaceSet namespaceSet) Get a collection of all known schemas in the system, with the given namespace set.getSchemas(String namespace) Get a collection of all known schemas in the given namespace.Get a map of all known tables in all known namespaces for all namespace sets.Get a collection of the namespaces available.listNamespaces(boolean includeDeleted) Get a collection of the namespaces available.listNamespaces(NamespaceSet namespaceSet) Get a collection of the namespaces available in the given namespace set.listNamespaces(NamespaceSet namespaceSet, boolean includeDeleted) Get a collection of the namespaces available in the given namespace set.listTableNames(String namespace) Get a collection of all table names in the specified namespace.listTableNames(String namespace, boolean includeDeleted) Get a collection of all table names in the specified namespace.voidremoveNamespace(String namespaceName) Remove the given namespace.voidremoveNamespace(String namespaceName, String code, String comment) Remove the given namespace.voidshutdown()Shut down the schema service.updateSchema(Schema newSchema) Update the schema with the same namespace and table name with the specified new schema.updateSchema(Schema newSchema, String code, String comment) Update the schema with the same namespace and table name with the specified new schema.updateSchema(TableDefinitionSchema newSchema) Update the schema with the same namespace and table name with the specified new schema.updateSchema(TableDefinitionSchema newSchema, String code, String comment) Update the schema with the same namespace and table name with the specified new schema.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.illumon.util.type.NamedImplementation
getImplementationNameMethods inherited from interface com.illumon.iris.db.schema.SchemaService
createNamespace, fromDefinition, fromDefinition, getLatestTableDefinitionRequired, getSchemasForNamespaceSet, initializationStage, listNamespaces
-
Constructor Details
-
Delegating
-
-
Method Details
-
about
Description copied from interface:SchemaServiceInformation about a SchemaService instance. Useful for debugging.- Specified by:
aboutin interfaceSchemaService- Returns:
- a string containing information about the instance
-
authenticate
Description copied from interface:SchemaServiceAuthenticate using the given user and password. Implementations are not required to allow re-authentication.- Specified by:
authenticatein interfaceSchemaService- Parameters:
user- the user to authenticatepassword- the password for the user- Returns:
- true only if the authentication succeeded
-
authenticate
public boolean authenticate(@NotNull String user, @NotNull String password, @NotNull String operateAs) Description copied from interface:SchemaServiceAuthenticate using the given user and password, operating as the operateAs user. Implementations are not required to allow re-authentication.- Specified by:
authenticatein interfaceSchemaService- Parameters:
user- the user to authenticatepassword- the password for the useroperateAs- attempt to operate as this effective user- Returns:
- true only if the authentication succeeded
-
authenticate
public boolean authenticate()Description copied from interface:SchemaServiceAuthenticate using default authentication. This will be using the default private key or howeverAuthenticationClientManager.getDefault()has been authenticated.- Specified by:
authenticatein interfaceSchemaService- Returns:
- true only if the authentication succeeded
-
fromDefinition
@NotNull public MutableSchema fromDefinition(@NotNull TableDefinition definition, @NotNull String namespace, @NotNull String tableName, int storageType, @NotNull NamespaceSet set) throws SchemaValidationException Description copied from interface:SchemaServiceCreate aMutableSchemathat supportsSchemaXmlfrom aTableDefinition, using the specified namespace, table name, storage type andNamespaceSet. Values of namespace, table name, storage type and Namespace set from the input definition are not used.- Specified by:
fromDefinitionin interfaceSchemaService- Parameters:
definition- create a schema based on this table definitionnamespace- the namespace of the new schematableName- the table name of the new schemastorageType- the storage type of the tableset- the namespace set for the schema- Returns:
- a new
MutableSchema. - Throws:
SchemaValidationException- if there was a problem creating the new schema.
-
fromDefinition
@NotNull public MutableSchema fromDefinition(@NotNull TableDefinition definition, @NotNull String namespace, @NotNull String tableName, int storageType, @NotNull NamespaceSet set, boolean useNanosecondTimePrecision) throws SchemaValidationException Description copied from interface:SchemaServiceCreate aMutableSchemathat supportsSchemaXmlfrom aTableDefinition, using the specified namespace, table name, storage type andNamespaceSet. Values of namespace, table name, storage type and Namespace set from the input definition are not used.- Specified by:
fromDefinitionin interfaceSchemaService- Parameters:
definition- create a schema based on this table definitionnamespace- the namespace of the new schematableName- the table name of the new schemastorageType- the storage type of the tableset- the namespace set for the schemauseNanosecondTimePrecision- whether to set nanosecond time precision for DateTime columns- Returns:
- a new
MutableSchema. - Throws:
SchemaValidationException- if there was a problem creating the new schema.
-
fromDefinition
@NotNull public MutableSchema fromDefinition(@NotNull TableDefinition definition, @NotNull NamespaceSet namespaceSet) throws SchemaValidationException Description copied from interface:SchemaServiceCreate aMutableSchemathat supportsSchemaXmlfrom aTableDefinition, using the given namespace set and taking namespace, table name, and storage type from the given TableDefinition.- Specified by:
fromDefinitionin interfaceSchemaService- Parameters:
definition- create a schema based on this table definitionnamespaceSet- the namespace set for the schema- Returns:
- a new
MutableSchema. - Throws:
SchemaValidationException- if there was a problem creating the new schema
-
fromElement
Description copied from interface:SchemaService- Specified by:
fromElementin interfaceSchemaService- Parameters:
elem- the element to create the schema from- Returns:
- a new
Schema - Throws:
SchemaValidationException- if the input element is not a properly structured Schema element
-
asElement
- Specified by:
asElementin interfaceSchemaService
-
asSchemaXml
- Specified by:
asSchemaXmlin interfaceSchemaService
-
getLatestSchema
Description copied from interface:SchemaServiceGet the latest version of theSchemadefined by namespace and table name- Specified by:
getLatestSchemain interfaceSchemaService- Parameters:
namespace- the namespace of the tabletableName- the table name- Returns:
- the latest version of namespace.tablename or null if none was found
-
getLatestSchemaXml
Description copied from interface:SchemaServiceGet the latest version of theSchemadefined by namespace and table name, as an implementation supportingSchemaXml.- Specified by:
getLatestSchemaXmlin interfaceSchemaService- Parameters:
namespace- the namespace of the tabletableName- the table name- Returns:
- the latest version of namespace.tablename or null if none was found
-
getSchema
@Nullable public Schema getSchema(@NotNull String namespace, @NotNull String tableName, @NotNull SchemaVersion version) Description copied from interface:SchemaServiceGet the specified version of theSchemadefined by namespace and table name- Specified by:
getSchemain interfaceSchemaService- Parameters:
namespace- the namespace of the tabletableName- the table nameversion- the version of this schema to retrieve- Returns:
- the requested version of the schema for namespace.tableName or null if none was found
-
getAllSchemas
Description copied from interface:SchemaServiceGet a collection of all known schemas in the system. The latest version of each will be returned. // TODO: subject to ACL visibility?- Specified by:
getAllSchemasin interfaceSchemaService- Returns:
- a collection of all known schemas
-
getSchemas
Description copied from interface:SchemaServiceGet a collection of all known schemas in the system, with the given namespace set. The latest version of each will be returned.- Specified by:
getSchemasin interfaceSchemaService- Returns:
- a collection of all known schemas in the given namespace set
-
getSchema
Description copied from interface:SchemaServiceConvenience method forSchemaService.getLatestSchema(String, String).- Specified by:
getSchemain interfaceSchemaService
-
getSchemas
Description copied from interface:SchemaServiceGet a collection of all known schemas in the given namespace. The latest version of each will be returned.- Specified by:
getSchemasin interfaceSchemaService- Returns:
- a collection of all known schemas in the given namespace
-
getLatestTableDefinitionSchema
@Nullable public TableDefinitionSchema getLatestTableDefinitionSchema(@NotNull String namespace, @NotNull String tableName) Description copied from interface:SchemaServiceGet the latest version of theTableDefinitionSchemadefined by namespace and table name- Specified by:
getLatestTableDefinitionSchemain interfaceSchemaService- Parameters:
namespace- the namespace of the tabletableName- the table name- Returns:
- the latest version of namespace.tableName or null if none was found
-
getLatestTableDefinition
@Nullable public TableDefinition getLatestTableDefinition(@NotNull String namespace, @NotNull String tableName) Description copied from interface:SchemaServiceGet the latest version of theSchemafor the namespace and table name, and return itsTableDefinition.- Specified by:
getLatestTableDefinitionin interfaceSchemaService- Parameters:
namespace- The namespace of the tabletableName- The table name- Returns:
- The
TableDefinitionfor the latest version of namespace.tableName or null if none was found
-
getNamespaceSet
@NotNull public NamespaceSet getNamespaceSet(@NotNull String namespace) throws IllegalArgumentException Description copied from interface:SchemaServiceGet theNamespaceSetfor a particular namespace.- Specified by:
getNamespaceSetin interfaceSchemaService- Parameters:
namespace- The namespace name- Returns:
- the namespace set of the namespace
- Throws:
IllegalArgumentException- if the namespace does not exist
-
containsNamespace
Description copied from interface:SchemaServiceFind out whether the given namespace is known to the schema service.- Specified by:
containsNamespacein interfaceSchemaService- Parameters:
namespace- the namespace in questionincludeDeleted- true if deleted namespaces should be considered- Returns:
- true if the namespace is found
-
containsNamespace
Description copied from interface:SchemaServiceFind out whether the given namespace is known to the schema service.- Specified by:
containsNamespacein interfaceSchemaService- Parameters:
namespace- the namespace in question- Returns:
- true if the namespace is found
-
containsSchema
Description copied from interface:SchemaServiceFind out if the given schema exists. Does not check for deleted schemas.- Specified by:
containsSchemain interfaceSchemaService- Parameters:
namespace- the namespace of the tabletableName- the table name- Returns:
- true if a schema is found for namespace.tableName
-
listNamespaces
Description copied from interface:SchemaServiceGet a collection of the namespaces available.- Specified by:
listNamespacesin interfaceSchemaService- Returns:
- a collection of namespace names
-
listNamespaces
Description copied from interface:SchemaServiceGet a collection of the namespaces available.- Specified by:
listNamespacesin interfaceSchemaService- Parameters:
includeDeleted- true if deleted namespaces should be included- Returns:
- a collection of namespace names
-
listNamespaces
Description copied from interface:SchemaServiceGet a collection of the namespaces available in the given namespace set.- Specified by:
listNamespacesin interfaceSchemaService- Parameters:
namespaceSet- list namespaces in this namespace set (User, System)- Returns:
- a collection of namespace names
-
listNamespaces
@NotNull public Collection<String> listNamespaces(@NotNull NamespaceSet namespaceSet, boolean includeDeleted) Description copied from interface:SchemaServiceGet a collection of the namespaces available in the given namespace set.- Specified by:
listNamespacesin interfaceSchemaService- Parameters:
namespaceSet- list namespaces in this set (User, System)includeDeleted- true if deleted namespaces should be included- Returns:
- a collection of namespace names
-
listTableNames
Description copied from interface:SchemaServiceGet a collection of all table names in the specified namespace.- Specified by:
listTableNamesin interfaceSchemaService- Parameters:
namespace- the name of the namespace- Returns:
- a collection of all available schemas in namespace
-
listTableNames
@NotNull public Collection<String> listTableNames(@NotNull String namespace, boolean includeDeleted) Description copied from interface:SchemaServiceGet a collection of all table names in the specified namespace.- Specified by:
listTableNamesin interfaceSchemaService- Parameters:
namespace- the name of the namespaceincludeDeleted- tf deleted schemas should be included- Returns:
- a collection of all available schemas in namespace, empty list if namespace does not exit
-
listAllTables
Description copied from interface:SchemaServiceGet a map of all known tables in all known namespaces for all namespace sets.- Specified by:
listAllTablesin interfaceSchemaService- Returns:
- all the table names, mapped by namespace set and namespace
-
createNamespace
public boolean createNamespace(@NotNull NamespaceSet namespaceSet, @NotNull String namespaceName) throws SchemaException Description copied from interface:SchemaServiceAdd a namespace with the given name to the schema service, in the requested namespace set. Returns true if the namespace was added, false if it already exists. Throws a SchemaException if the namespace could not be added.- Specified by:
createNamespacein interfaceSchemaService- Parameters:
namespaceSet- add namespaceName to this namespace setnamespaceName- name of the new namespace- Returns:
- true if the namespace was added, false if it already exists.
- Throws:
SchemaException- if the namespace could not be added to the given namespace set
-
createNamespace
public boolean createNamespace(@NotNull NamespaceSet namespaceSet, @NotNull String namespaceName, @NotNull String code, @NotNull String comment) throws SchemaException Description copied from interface:SchemaServiceAdd a namespace with the given name to the schema service, in the requested namespace set. Returns true if the namespace was added, false if it already exists. Throws a SchemaException if the namespace could not be added.- Specified by:
createNamespacein interfaceSchemaService- Parameters:
namespaceSet- add namespaceName to this namespace setnamespaceName- name of the new namespacecode- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Returns:
- true if the namespace was added, false if it already exists.
- Throws:
SchemaException- if the namespace could not be added to the given namespace set
-
removeNamespace
Description copied from interface:SchemaServiceRemove the given namespace. The namespace must be empty (contain no schemas).- Specified by:
removeNamespacein interfaceSchemaService- Parameters:
namespaceName- the namespace to remove- Throws:
SchemaException- if the namespace cannot be removed
-
removeNamespace
public void removeNamespace(@NotNull String namespaceName, @NotNull String code, @NotNull String comment) throws SchemaException Description copied from interface:SchemaServiceRemove the given namespace. The namespace must be empty (contain no schemas).- Specified by:
removeNamespacein interfaceSchemaService- Parameters:
namespaceName- the namespace to removecode- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Throws:
SchemaException- if the namespace cannot be removed
-
addSchema
Description copied from interface:SchemaServiceAdd the specified schema to the service.- Specified by:
addSchemain interfaceSchemaService- Parameters:
newSchema- the schema to add- Returns:
- the schema actually stored in the SchemaService
- Throws:
SchemaException- if the schema could not be added
-
addSchema
@NotNull public Schema addSchema(@NotNull Schema newSchema, @NotNull String code, @NotNull String comment) throws SchemaException Description copied from interface:SchemaServiceAdd the specified schema to the service.- Specified by:
addSchemain interfaceSchemaService- Parameters:
newSchema- the schema to addcode- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update * @return the schema actually stored in the SchemaService- Throws:
SchemaException- if the schema could not be added
-
addSchema
Description copied from interface:SchemaServiceAdd the specified schema to the service.- Specified by:
addSchemain interfaceSchemaService- Parameters:
newSchema- the schema to add- Returns:
- the schema actually stored in the SchemaService
- Throws:
SchemaException- if the schema could not be added or already exists
-
addSchema
@NotNull public Schema addSchema(@NotNull TableDefinitionSchema newSchema, @NotNull String code, @NotNull String comment) throws SchemaException Description copied from interface:SchemaServiceAdd the specified schema to the service.- Specified by:
addSchemain interfaceSchemaService- Parameters:
newSchema- the schema to addcode- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Returns:
- the schema actually stored in the SchemaService
- Throws:
SchemaException- if the schema could not be added or already exists
-
updateSchema
@NotNull public Schema updateSchema(@NotNull Schema newSchema) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceUpdate the schema with the same namespace and table name with the specified new schema.- Specified by:
updateSchemain interfaceSchemaService- Parameters:
newSchema- the schema to update with- Throws:
IllegalArgumentException- if the namespace or table does not existSchemaException- if the schema could not be updated
-
updateSchema
@NotNull public Schema updateSchema(@NotNull Schema newSchema, @NotNull String code, @NotNull String comment) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceUpdate the schema with the same namespace and table name with the specified new schema.- Specified by:
updateSchemain interfaceSchemaService- Parameters:
newSchema- the schema to update withcode- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Returns:
- the schema actually stored in the SchemaService
- Throws:
IllegalArgumentException- if the namespace or table does not existSchemaException- if the schema could not be updated
-
updateSchema
@NotNull public Schema updateSchema(@NotNull TableDefinitionSchema newSchema) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceUpdate the schema with the same namespace and table name with the specified new schema.- Specified by:
updateSchemain interfaceSchemaService- Parameters:
newSchema- the schema to update with.- Returns:
- the schema actually stored in the SchemaService
- Throws:
IllegalArgumentException- if the namespace or table does not existSchemaException- if the schema could not be updated
-
updateSchema
@NotNull public Schema updateSchema(@NotNull TableDefinitionSchema newSchema, @NotNull String code, @NotNull String comment) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceUpdate the schema with the same namespace and table name with the specified new schema.- Specified by:
updateSchemain interfaceSchemaService- Parameters:
newSchema- the schema to update with.code- pass-thru to kv persistence, indicates the code source of this updatecomment- pass-thru to kv persistence - a comment for this update- Returns:
- the schema actually stored in the SchemaService
- Throws:
IllegalArgumentException- if the namespace or table does not existSchemaException- if the schema could not be updated
-
deleteSchema
public void deleteSchema(@NotNull String namespace, @NotNull String tableName) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceDelete the specified schema.- Specified by:
deleteSchemain interfaceSchemaService- Parameters:
namespace- the namespace of the schema to deletetableName- the name of the schema to delete- Throws:
IllegalArgumentException- if the namespace or table could not be foundSchemaException- if the schema could not be deleted
-
deleteSchema
public void deleteSchema(@NotNull String namespace, @NotNull String tableName, @NotNull String code, @NotNull String comment) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceDelete the specified schema.- Specified by:
deleteSchemain interfaceSchemaService- Parameters:
namespace- the namespace of the schema to deletetableName- the name of the schema to deletecode- pass-thru to kv persistence, indicates the code source of this deletecomment- pass-thru to kv persistence - a comment for this delete- Throws:
IllegalArgumentException- if the namespace or table could not be foundSchemaException- if the schema could not be deleted
-
deleteSchema
public void deleteSchema(@NotNull TableDefinitionSchema schema) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceDelete the specified schema.- Specified by:
deleteSchemain interfaceSchemaService- Parameters:
schema- the schema to delete- Throws:
IllegalArgumentException- if the namespace or table could not be foundSchemaException- if the schema could not be deleted
-
deleteSchema
public void deleteSchema(@NotNull TableDefinitionSchema schema, @NotNull String code, @NotNull String comment) throws IllegalArgumentException, SchemaException Description copied from interface:SchemaServiceDelete the specified schema.- Specified by:
deleteSchemain interfaceSchemaService- Parameters:
schema- the schema to deletecode- pass-thru to kv persistence, indicates the code source of this deletecomment- pass-thru to kv persistence - a comment for this delete- Throws:
IllegalArgumentException- if the namespace or table could not be foundSchemaException- if the schema could not be deleted
-
shutdown
public void shutdown()Description copied from interface:SchemaServiceShut down the schema service. This may involve cleaning up threads and releasing resources.- Specified by:
shutdownin interfaceSchemaService
-
close
public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceSchemaService
-