// Path: hibernate4-memcached-core/src/main/java/kr/pe/kwonnam/hibernate4memcached/memcached/MemcachedAdapter.java
// public interface MemcachedAdapter {
//     /**
//      * Lifecycle callback to perform initialization.
//      *
//      * @param properties the defined cfg properties
//      */
//     void init(OverridableReadOnlyProperties properties);
// 
//     /**
//      * Lifecycle callback to perform cleanup.
//      */
//     void destroy();
// 
//     /**
//      * get value from memcached
//      */
//     Object get(CacheNamespace cacheNamespace, String key);
// 
//     /**
//      * set value to memcache with expirySeconds
//      */
//     void set(CacheNamespace cacheNamespace, String key, Object value, int expirySeconds);
// 
//     /**
//      * delete key from memcached
//      */
//     void delete(CacheNamespace cacheNamespace, String key);
// 
//     /**
//      * increase given increment couter and return new value.
//      *
//      * @param cacheNamespace cache namespace
//      * @param key            counter key
//      * @param by             the amount of increment
//      * @param defaultValue   default value when the key missing
//      * @return increased value
//      */
//     long increaseCounter(CacheNamespace cacheNamespace, String key, long by, long defaultValue, int expirySeconds);
// 
//     /**
//      * get current value from increment counter
//      *
//      * @param cacheNamespace cache namespace
//      * @param key            counter key
//      * @param defaultValue   default value when the key missing
//      * @return current value of counter without increment
//      */
//     long getCounter(CacheNamespace cacheNamespace, String key, long defaultValue, int expirySeconds);
// 
//     /**
//      * Evict namespace
//      *
//      * @param cacheNamespace cache namespace
//      */
//     void evictAll(CacheNamespace cacheNamespace);
// }
// 
// Path: hibernate4-memcached-core/src/main/java/kr/pe/kwonnam/hibernate4memcached/util/OverridableReadOnlyProperties.java
// public interface OverridableReadOnlyProperties {
//     String getProperty(String key);
// 
//     String getProperty(String key, String defaultValue);
// 
//     String getRequiredProperty(String key);
// }


import kr.pe.kwonnam.hibernate4memcached.memcached.MemcachedAdapter;
import kr.pe.kwonnam.hibernate4memcached.util.OverridableReadOnlyProperties;
import org.hibernate.cfg.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
package kr.pe.kwonnam.hibernate4memcached.timestamper;


/**
 * next timestamp based System.currentTimeMillis
 * <p/>
 * If strictly increasing timestamp required, use {@link HibernateCacheTimestamperMemcachedImpl}.
 *
 * @author KwonNam Son (kwon37xi@gmail.com)
 */
public class HibernateCacheTimestamperJvmImpl implements HibernateCacheTimestamper {
    private Logger log = LoggerFactory.getLogger(HibernateCacheTimestamperJvmImpl.class);

    @Override
    public void setSettings(Settings settings) {
        // no op
    }

    @Override
    public void setProperties(OverridableReadOnlyProperties properties) {
        // no op
    }

    @Override
// Path: hibernate4-memcached-core/src/main/java/kr/pe/kwonnam/hibernate4memcached/memcached/MemcachedAdapter.java
// public interface MemcachedAdapter {
//     /**
//      * Lifecycle callback to perform initialization.
//      *
//      * @param properties the defined cfg properties
//      */
//     void init(OverridableReadOnlyProperties properties);
// 
//     /**
//      * Lifecycle callback to perform cleanup.
//      */
//     void destroy();
// 
//     /**
//      * get value from memcached
//      */
//     Object get(CacheNamespace cacheNamespace, String key);
// 
//     /**
//      * set value to memcache with expirySeconds
//      */
//     void set(CacheNamespace cacheNamespace, String key, Object value, int expirySeconds);
// 
//     /**
//      * delete key from memcached
//      */
//     void delete(CacheNamespace cacheNamespace, String key);
// 
//     /**
//      * increase given increment couter and return new value.
//      *
//      * @param cacheNamespace cache namespace
//      * @param key            counter key
//      * @param by             the amount of increment
//      * @param defaultValue   default value when the key missing
//      * @return increased value
//      */
//     long increaseCounter(CacheNamespace cacheNamespace, String key, long by, long defaultValue, int expirySeconds);
// 
//     /**
//      * get current value from increment counter
//      *
//      * @param cacheNamespace cache namespace
//      * @param key            counter key
//      * @param defaultValue   default value when the key missing
//      * @return current value of counter without increment
//      */
//     long getCounter(CacheNamespace cacheNamespace, String key, long defaultValue, int expirySeconds);
// 
//     /**
//      * Evict namespace
//      *
//      * @param cacheNamespace cache namespace
//      */
//     void evictAll(CacheNamespace cacheNamespace);
// }
// 
// Path: hibernate4-memcached-core/src/main/java/kr/pe/kwonnam/hibernate4memcached/util/OverridableReadOnlyProperties.java
// public interface OverridableReadOnlyProperties {
//     String getProperty(String key);
// 
//     String getProperty(String key, String defaultValue);
// 
//     String getRequiredProperty(String key);
// }


// Path: hibernate4-memcached-core/src/main/java/kr/pe/kwonnam/hibernate4memcached/timestamper/HibernateCacheTimestamperJvmImpl.java
import kr.pe.kwonnam.hibernate4memcached.memcached.MemcachedAdapter;
import kr.pe.kwonnam.hibernate4memcached.util.OverridableReadOnlyProperties;
import org.hibernate.cfg.Settings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

package kr.pe.kwonnam.hibernate4memcached.timestamper;


/**
 * next timestamp based System.currentTimeMillis
 * <p/>
 * If strictly increasing timestamp required, use {@link HibernateCacheTimestamperMemcachedImpl}.
 *
 * @author KwonNam Son (kwon37xi@gmail.com)
 */
public class HibernateCacheTimestamperJvmImpl implements HibernateCacheTimestamper {
    private Logger log = LoggerFactory.getLogger(HibernateCacheTimestamperJvmImpl.class);

    @Override
    public void setSettings(Settings settings) {
        // no op
    }

    @Override
    public void setProperties(OverridableReadOnlyProperties properties) {
        // no op
    }

    @Override
    public void setMemcachedAdapter(MemcachedAdapter memcachedAdapter) {