| 1 21 package com.db4o.foundation; 22 23 24 27 public class TimeStampIdGenerator { 28 29 private long _last; 30 31 public static long idToMilliseconds(long id) { 32 return id >> 15; 33 } 34 35 public TimeStampIdGenerator() { 36 this(0); 37 } 38 39 public TimeStampIdGenerator(long minimumNext) { 40 _last = minimumNext; 41 } 42 43 public long generate() { 44 long t = System.currentTimeMillis(); 45 46 t = t << 15; 47 48 if (t <= _last) { 49 _last ++; 50 } else { 51 _last = t; 52 } 53 return _last; 54 } 55 56 public long last() { 57 return _last; 58 } 59 60 public boolean setMinimumNext(long newMinimum) { 61 if(newMinimum <= _last){ 62 return false; 63 } 64 _last = newMinimum; 65 return true; 66 } 67 } 68 | Popular Tags |