Class AutoincrementCounter


  • public class AutoincrementCounter
    extends java.lang.Object
    AutoincrementCounter is a not so general counter for the specific purposes of autoincrement columns. It can be thought of as an in-memory autoincrement column. The counting or incrementing is done in fashion identical to the AUTOINCREMENTVALUE in SYSCOLUMNS.

    To create a counter, the user must call the constructor with a start value, increment and optionally a final value. In addition the caller must specify the schema name, table name and column name uniquely identifying the counter.

    When a counter is created it is in an invalid state-- to initialize it, the user must call either update or reset(false). The value of a counter can be changed by either calling reset or update.

    • Constructor Summary

      Constructors 
      Constructor Description
      AutoincrementCounter​(java.lang.Long start, long increment, long finalValue, java.lang.String s, java.lang.String t, java.lang.String c, int position)
      constructor
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void flushToDisk​(TransactionController tc, DataDictionary dd, UUID tableUUID)
      flush a counter to disk; i.e write the current value of the counter into the row in SYSCOLUMNS.
      int getColumnPosition()
      get the column position in the table for which this counter has been created.
      java.lang.Long getCurrentValue()
      get the current value of the counter.
      java.lang.String getIdentity()
      return the identity of the counter.
      java.lang.Long getStartValue()
      get the start value
      static java.lang.String makeIdentity​(java.lang.String s, java.lang.String t, java.lang.String c)
      make a unique key for the counter.
      static java.lang.String makeIdentity​(TableDescriptor td, ColumnDescriptor cd)
      make a unique key for the counter.
      void reset​(boolean begin)
      reset to the counter to the beginning or the end.
      java.lang.String toString()  
      long update()
      update the counter to its next value.
      long update​(long t)
      update the counter.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • start

        private java.lang.Long start
      • increment

        private long increment
      • identity

        private java.lang.String identity
      • finalValue

        private long finalValue
      • schemaName

        private java.lang.String schemaName
      • tableName

        private java.lang.String tableName
      • columnName

        private java.lang.String columnName
      • counter

        private long counter
      • columnPosition

        private int columnPosition
      • initialized

        private boolean initialized
    • Constructor Detail

      • AutoincrementCounter

        public AutoincrementCounter​(java.lang.Long start,
                                    long increment,
                                    long finalValue,
                                    java.lang.String s,
                                    java.lang.String t,
                                    java.lang.String c,
                                    int position)
        constructor
        Parameters:
        start - The start value of the counter; is a java object as it can also be null.
        increment - how much to increment the counter by.
        finalValue - the finalvalue of the counter. used by reset
        s -
        t -
        c -
    • Method Detail

      • makeIdentity

        public static java.lang.String makeIdentity​(java.lang.String s,
                                                    java.lang.String t,
                                                    java.lang.String c)
        make a unique key for the counter.
      • reset

        public void reset​(boolean begin)
        reset to the counter to the beginning or the end.
        Parameters:
        begin - if TRUE reset to beginning and mark it uninitialized.
      • update

        public long update​(long t)
        update the counter.
        Parameters:
        t - update the counter to this value.
      • update

        public long update()
                    throws StandardException
        update the counter to its next value.
        Throws:
        StandardException - if the counter has not yet been initialized and the Start value is NULL.
      • getCurrentValue

        public java.lang.Long getCurrentValue()
        get the current value of the counter. An uninitialized counter means the current value is NULL.
      • getIdentity

        public java.lang.String getIdentity()
        return the identity of the counter.
      • flushToDisk

        public void flushToDisk​(TransactionController tc,
                                DataDictionary dd,
                                UUID tableUUID)
                         throws StandardException
        flush a counter to disk; i.e write the current value of the counter into the row in SYSCOLUMNS.
        Parameters:
        tc - TransactionController to use
        dd - DataDictionary to use.
        tableUUID - I might have the table name but I need more information
        Throws:
        StandardException - standard Derby exception.
      • getColumnPosition

        public int getColumnPosition()
        get the column position in the table for which this counter has been created.
        Returns:
        the position of the corresponding column in the table (1-based)
      • getStartValue

        public java.lang.Long getStartValue()
        get the start value
        Returns:
        the initial value of the counter
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object