Class DefaultCachingSerialNumberGenerator

  • All Implemented Interfaces:
    SerialNumberGenerator

    public class DefaultCachingSerialNumberGenerator
    extends java.lang.Object
    implements SerialNumberGenerator
    Default implementation of SerialNumberGenerator which caches number ranges for each key.

    Cache size may be specified in project.properties like this:

        # set cache size for single series 'myseries' to 50
        numberseries.cache.size.myseries=50
    
        # set default cache size to 999
        numberseries.cache.size=999
     
    • Constructor Detail

      • DefaultCachingSerialNumberGenerator

        public DefaultCachingSerialNumberGenerator​(Tenant t,
                                                   SerialNumberDAO dao)
    • Method Detail

      • createSeries

        public void createSeries​(java.lang.String key,
                                 int type,
                                 long startValue,
                                 java.lang.String template)
        Description copied from interface: SerialNumberGenerator
        Creates a new number series with the specified key, type and start value.
        Specified by:
        createSeries in interface SerialNumberGenerator
        Parameters:
        key - the series key
        type - the type; use one of NumberSeries.TYPE_ALPHANUMERIC and NumberSeries.TYPE_NUMERIC
        startValue - the start value - must be positive long
        template - the template to be applied on generated value
      • getUniqueNumber

        public NumberSeries getUniqueNumber​(java.lang.String key)
        Description copied from interface: SerialNumberGenerator
        Generates a new unique number for the given series. The returned number is consumed and will never be returned again. Please note that transactions have no effect upon number generation!
        Specified by:
        getUniqueNumber in interface SerialNumberGenerator
        Parameters:
        key - the series key
      • resetSeries

        public void resetSeries​(java.lang.String key,
                                int type,
                                long startValue)
        Description copied from interface: SerialNumberGenerator
        Resets type and start value of a existing series. Please use with care since duplicate numbers are likely to be generated if start value is moved 'back'!
        Specified by:
        resetSeries in interface SerialNumberGenerator
        Parameters:
        key - the series key
        type - the series type
        startValue - the start value
      • clearAll

        public void clearAll()
        Description copied from interface: SerialNumberGenerator
        Completely clear all (cached) ranges. This is only called after the 'numberseries' table has been dropped.
        Specified by:
        clearAll in interface SerialNumberGenerator
      • getTenant

        protected Tenant getTenant()
      • getCacheSize

        protected int getCacheSize​(java.lang.String key)