Interface TenantManager


@ProviderType public interface TenantManager
The TenantManager service interface defines the API that administrative tools will use to created, update or remove Tenants.

The implementation will make use of TenantCustomizer services to customize management of tenants.

Tenant properties can be created, modified, and removed with the setProperty(Tenant, String, Object), setProperties(Tenant, Map) and removeProperties(Tenant, String...) methods. Please note that every call to any of these methods causes the TenantCustomizer services to be called. To limit these calls for multiple changes the setProperties(Tenant, Map) method should be called.

  • Method Summary

    Modifier and Type
    Method
    Description
    create(String tenantId, Map<String,Object> properties)
    Creates a new tenant with the given tenant ID and the initial set of properties.
    void
    remove(Tenant tenant)
    Removes the given tenant.
    void
    removeProperties(Tenant tenant, String... propertyNames)
    Removes one or more properties from the tenant.
    void
    setProperties(Tenant tenant, Map<String,Object> properties)
    Sets or removes multiple properties on the tenant.
    void
    setProperty(Tenant tenant, String name, Object value)
    Sets a single property of the tenant to a new value or removes the property if the value is null.
  • Method Details

    • create

      Tenant create(String tenantId, Map<String,Object> properties)
      Creates a new tenant with the given tenant ID and the initial set of properties.

      After creating the tenant, the TenantManagerHook.setup(Tenant) method is called to allow customizers to configure additional properties.

      Before returning the newly created tenant object the data is persisted.

      Parameters:
      tenantId - The name of the new tenant. This name must not be null or an empty string. It must also not be the same name as that of an existing tenant.
      properties - An optional map of initial properties. This may be null to not preset any properties. It is recommended, though, that this map contain at least the Tenant.PROP_NAME and Tenant.PROP_DESCRIPTION properties.
      Returns:
      The newly created Tenant instance or null if a tenant with the id already exists.
      Throws:
      NullPointerException - if tenantId is null.
    • setProperty

      void setProperty(Tenant tenant, String name, Object value)
      Sets a single property of the tenant to a new value or removes the property if the value is null.

      Before returning the TenantManagerHook.change(Tenant) method is called to allow customizers to configure additional properties.

      Parameters:
      tenant - The tenant whose property is to be set or remove.
      name - The name of the property to set or remove.
      value - The new value of the property. If this value is null the property is actually removed.
      Throws:
      NullPointerException - if tenant or name is null.
    • setProperties

      void setProperties(Tenant tenant, Map<String,Object> properties)
      Sets or removes multiple properties on the tenant.

      Before returning the TenantManagerHook.change(Tenant) method is called to allow customizers to configure additional properties.

      Parameters:
      tenant - The tenant whose properties are to be modified.
      properties - The map of properties to set or remove. A property whose value is null is removed from the tenant.
      Throws:
      NullPointerException - if tenant or properties is null.
    • removeProperties

      void removeProperties(Tenant tenant, String... propertyNames)
      Removes one or more properties from the tenant.

      Before returning the TenantManagerHook.change(Tenant) method is called to allow customizers to configure additional properties unless the properties parameter is null or empty.

      Parameters:
      tenant - The tenant from which to remove properties.
      propertyNames - The list of properties to be removed. If this is null or empty, nothing happens and the TenantCustomizer is not called.
      Throws:
      NullPointerException - if tenant is null.
    • remove

      void remove(Tenant tenant)
      Removes the given tenant.

      Before returning the TenantManagerHook.remove(Tenant) method is called to allow customizers to implement further cleanup upon tenant removal.

      Parameters:
      tenant - The tenant to remove.
      Throws:
      NullPointerException - if tenant is null