Class TableCaseIdGenerator

  • All Implemented Interfaces:
    org.jbpm.casemgmt.api.generator.CaseIdGenerator

    public class TableCaseIdGenerator
    extends Object
    implements org.jbpm.casemgmt.api.generator.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 Detail

      • TableCaseIdGenerator

        public TableCaseIdGenerator​(org.jbpm.shared.services.impl.TransactionalCommandService commandService)
    • Method Detail

      • getIdentifier

        public String getIdentifier()
        Specified by:
        getIdentifier in interface org.jbpm.casemgmt.api.generator.CaseIdGenerator
      • register

        public void register​(String prefix)
        Specified by:
        register in interface org.jbpm.casemgmt.api.generator.CaseIdGenerator
      • unregister

        public void unregister​(String prefix)
        Specified by:
        unregister in interface org.jbpm.casemgmt.api.generator.CaseIdGenerator
      • resolveCaseIdPrefix

        public String resolveCaseIdPrefix​(String expression,
                                          Map<String,​Object> optionalParameters)
        Specified by:
        resolveCaseIdPrefix in interface org.jbpm.casemgmt.api.generator.CaseIdGenerator
      • generate

        public String generate​(String prefix,
                               Map<String,​Object> optionalParameters)
        Specified by:
        generate in interface org.jbpm.casemgmt.api.generator.CaseIdGenerator
      • findCaseIdInfoByPrefix

        protected CaseIdInfo findCaseIdInfoByPrefix​(String prefix)