// Path: hibernate4-memcached-core/src/main/java/kr/pe/kwonnam/hibernate4memcached/memcached/CacheNamespace.java
// public class CacheNamespace implements Serializable {
//     /**
//      * name of region
//      */
//     private String name;
// 
//     /**
//      * if this value is true, the memcached adapter should implement namespace pattern
//      * or ignore namespace pattern.
//      * <p/>
//      * see <a href="https://code.google.com/p/memcached/wiki/NewProgrammingTricks#Namespacing">Memcached Namespacing</a>
//      */
//     private boolean namespaceExpirationRequired;
// 
//     public CacheNamespace(String name, boolean namespaceExpirationRequired) {
//         this.name = name;
//         this.namespaceExpirationRequired = namespaceExpirationRequired;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public boolean isNamespaceExpirationRequired() {
//         return namespaceExpirationRequired;
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (o == null) {
//             return false;
//         }
//         if (this == o) {
//             return true;
//         }
//         if (getClass() != o.getClass()) {
//             return false;
//         }
// 
//         CacheNamespace otherCacheNamespace = (CacheNamespace) o;
// 
//         return new EqualsBuilder().append(name, otherCacheNamespace.name)
//                 .append(namespaceExpirationRequired, otherCacheNamespace.namespaceExpirationRequired).isEquals();
//     }
// 
//     @Override
//     public int hashCode() {
//         return new HashCodeBuilder().append(name).append(namespaceExpirationRequired).toHashCode();
//     }
// 
//     @Override
//     public String toString() {
//         return new ToStringBuilder(this).append("name", name).append("namespaceExpirationRequired", namespaceExpirationRequired).toString();
//     }
// }
// 
// 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.CacheNamespace;
import kr.pe.kwonnam.hibernate4memcached.memcached.MemcachedAdapter;
import kr.pe.kwonnam.hibernate4memcached.util.OverridableReadOnlyProperties;
package kr.pe.kwonnam.hibernate4memcached;


/**
* @author KwonNam Son (kwon37xi@gmail.com)
*/
public class FakeMemcachedAdapter implements MemcachedAdapter {
    boolean initCalled = false;

    public boolean isInitCalled() {
        return initCalled;
    }

    @Override
    public void init(OverridableReadOnlyProperties properties) {
        initCalled = true;
    }

    @Override
    public void destroy() {
    }

    @Override
    public Object get(CacheNamespace cacheNamespace, String key) {
        return null;
    }

    @Override
    public void set(CacheNamespace cacheNamespace, String key, Object value, int expirySeconds) {

    }

    @Override
    public void delete(CacheNamespace cacheNamespace, String key) {
    }

    @Override
// Path: hibernate4-memcached-core/src/main/java/kr/pe/kwonnam/hibernate4memcached/memcached/CacheNamespace.java
// public class CacheNamespace implements Serializable {
//     /**
//      * name of region
//      */
//     private String name;
// 
//     /**
//      * if this value is true, the memcached adapter should implement namespace pattern
//      * or ignore namespace pattern.
//      * <p/>
//      * see <a href="https://code.google.com/p/memcached/wiki/NewProgrammingTricks#Namespacing">Memcached Namespacing</a>
//      */
//     private boolean namespaceExpirationRequired;
// 
//     public CacheNamespace(String name, boolean namespaceExpirationRequired) {
//         this.name = name;
//         this.namespaceExpirationRequired = namespaceExpirationRequired;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public boolean isNamespaceExpirationRequired() {
//         return namespaceExpirationRequired;
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (o == null) {
//             return false;
//         }
//         if (this == o) {
//             return true;
//         }
//         if (getClass() != o.getClass()) {
//             return false;
//         }
// 
//         CacheNamespace otherCacheNamespace = (CacheNamespace) o;
// 
//         return new EqualsBuilder().append(name, otherCacheNamespace.name)
//                 .append(namespaceExpirationRequired, otherCacheNamespace.namespaceExpirationRequired).isEquals();
//     }
// 
//     @Override
//     public int hashCode() {
//         return new HashCodeBuilder().append(name).append(namespaceExpirationRequired).toHashCode();
//     }
// 
//     @Override
//     public String toString() {
//         return new ToStringBuilder(this).append("name", name).append("namespaceExpirationRequired", namespaceExpirationRequired).toString();
//     }
// }
// 
// 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/test/java/kr/pe/kwonnam/hibernate4memcached/FakeMemcachedAdapter.java
import kr.pe.kwonnam.hibernate4memcached.memcached.CacheNamespace;
import kr.pe.kwonnam.hibernate4memcached.memcached.MemcachedAdapter;
import kr.pe.kwonnam.hibernate4memcached.util.OverridableReadOnlyProperties;

package kr.pe.kwonnam.hibernate4memcached;


/**
* @author KwonNam Son (kwon37xi@gmail.com)
*/
public class FakeMemcachedAdapter implements MemcachedAdapter {
    boolean initCalled = false;

    public boolean isInitCalled() {
        return initCalled;
    }

    @Override
    public void init(OverridableReadOnlyProperties properties) {
        initCalled = true;
    }

    @Override
    public void destroy() {
    }

    @Override
    public Object get(CacheNamespace cacheNamespace, String key) {
        return null;
    }

    @Override
    public void set(CacheNamespace cacheNamespace, String key, Object value, int expirySeconds) {

    }

    @Override
    public void delete(CacheNamespace cacheNamespace, String key) {
    }

    @Override
    public long increaseCounter(CacheNamespace cacheNamespace, String key, long by, long defaultValue, int expirySeconds) {