org.jbpm.casemgmt.impl.generator

## Class TableCaseIdGenerator

- java.lang.Object
- - org.jbpm.casemgmt.impl.generator.TableCaseIdGenerator

- All Implemented Interfaces:
    CaseIdGenerator

      public class TableCaseIdGenerator
      extends Object
      implements CaseIdGenerator

  Data base tabled backed case id generator. The underlying table keeps single entry per case prefix and updates it (by incrementing current value) on each call to generate method. Generation is done with pessimistic locking to secure correctness and since it's the only operation in transaction it should not cause any performance issues.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TableCaseIdGenerator(TransactionalCommandService commandService)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected CaseIdInfo` | `findCaseIdInfoByPrefix(String prefix)`
    `String` | `generate(String prefix, Map<String,Object> optionalParameters)` Generates next value for given prefix.
    `String` | `getIdentifier()` Identifier of the generator so it can be found and registered at runtime
    `void` | `register(String prefix)` Should be called only one time per given prefix.
    `void` | `unregister(String prefix)` Unregisters given prefix from the generator.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TableCaseIdGenerator

          public TableCaseIdGenerator(TransactionalCommandService commandService)

  - ### Method Detail

    - #### getIdentifier

          public String getIdentifier()

      Description copied from interface: `CaseIdGenerator`
      Identifier of the generator so it can be found and registered at runtime
      Specified by:
        `getIdentifier` in interface `CaseIdGenerator`
      Returns:
        unique identifier

    - #### register

          public void register(String prefix)

      Description copied from interface: `CaseIdGenerator`
      Should be called only one time per given prefix. Subsequent calls with same prefix do not affect the generator state.
      Specified by:
        `register` in interface `CaseIdGenerator`
      Parameters:
        `prefix` - unique prefix that should be used for generating case identifiers

    - #### unregister

          public void unregister(String prefix)

      Description copied from interface: `CaseIdGenerator`
      Unregisters given prefix from the generator. It's up to generator implementation to either remove the prefix and its latest value permanently or resume it in case of further registration of the same prefix.
      Specified by:
        `unregister` in interface `CaseIdGenerator`
      Parameters:
        `prefix` - unique prefix that should be used for generating case identifiers

    - #### generate

          public String generate(String prefix,
                                 Map<String,Object> optionalParameters)
                          throws CasePrefixNotFoundException

      Description copied from interface: `CaseIdGenerator`
      Generates next value for given prefix. Returned value should include the prefix as part of the returned value.
      Specified by:
        `generate` in interface `CaseIdGenerator`
      Parameters:
        `prefix` - unique prefix that should be used for generating case identifiers
        `optionalParameters` - map of optionalParameters that might be helpful for implementation
      Returns:
        complete case id in format (PREFIX-GENERATED_VALUE)
      Throws:
        `CasePrefixNotFoundException` - in case given prefix was not registered

    - #### findCaseIdInfoByPrefix

          protected CaseIdInfo findCaseIdInfoByPrefix(String prefix)

Copyright © 2001–2020 JBoss by Red Hat. All rights reserved.