// Path: jbase-cache/src/main/java/com/jayqqaa12/jbase/cache/core/Cache.java
// public interface Cache {
// 
//   CacheObject get(String key) throws CacheException;
// 
// 
//   void set(String key, CacheObject value) throws CacheException;
// 
// 
//   void set(String key, CacheObject value, int expire) throws CacheException;
// 
//   void delete(String key) throws CacheException;
// 
// 
// }
// 
// Path: jbase-cache/src/main/java/com/jayqqaa12/jbase/cache/core/CacheObject.java
// @Data
// @Builder
// @AllArgsConstructor
// @NoArgsConstructor
// public class CacheObject<T> implements Serializable {
// 
//   private String region;
//   private String key;
//   private T value;
// 
//   private long loadTime;
// 
// 
//   /**
//    * 过期时长 单位：秒
//    */
//   private int expire;
// 
//   public boolean canAutoLoad() {
// 
//     return  
//         (System.currentTimeMillis() - loadTime > expire * 900);
//   }
// 
// 
//   public boolean isEmpty() {
//     return value == null;
//   }
// 
// 
// }
// 
// Path: jbase-cache/src/main/java/com/jayqqaa12/jbase/cache/serializer/CacheSerializer.java
// public interface CacheSerializer {
// 
//     byte[] serialize(Object obj)  ;
// 
//     Object deserialize(byte[] bytes)  ;
// 
// }
// 
// Path: jbase-cache/src/main/java/com/jayqqaa12/jbase/cache/util/CacheException.java
// public class CacheException extends RuntimeException {
// 
//     private static final long serialVersionUID = -5112528854998647834L;
// 
//     public CacheException(String s) {
//         super(s);
//     }
// 
//     public CacheException(String s, Throwable e) {
//         super(s, e);
//     }
// 
//     public CacheException(Throwable e) {
//         super(e);
//     }
// 
// }


import com.jayqqaa12.jbase.cache.core.Cache;
import com.jayqqaa12.jbase.cache.core.CacheObject;
import com.jayqqaa12.jbase.cache.serializer.CacheSerializer;
import com.jayqqaa12.jbase.cache.util.CacheException;
import java.io.IOException;
package com.jayqqaa12.jbase.cache.provider;



public abstract class SerializerCache implements Cache {

  private final CacheSerializer cacheSerializer;

  public SerializerCache(CacheSerializer cacheSerializer) {
    this.cacheSerializer = cacheSerializer;

  }

  @Override
  public CacheObject get(String key) throws CacheException {
    try {
// Path: jbase-cache/src/main/java/com/jayqqaa12/jbase/cache/core/Cache.java
// public interface Cache {
// 
//   CacheObject get(String key) throws CacheException;
// 
// 
//   void set(String key, CacheObject value) throws CacheException;
// 
// 
//   void set(String key, CacheObject value, int expire) throws CacheException;
// 
//   void delete(String key) throws CacheException;
// 
// 
// }
// 
// Path: jbase-cache/src/main/java/com/jayqqaa12/jbase/cache/core/CacheObject.java
// @Data
// @Builder
// @AllArgsConstructor
// @NoArgsConstructor
// public class CacheObject<T> implements Serializable {
// 
//   private String region;
//   private String key;
//   private T value;
// 
//   private long loadTime;
// 
// 
//   /**
//    * 过期时长 单位：秒
//    */
//   private int expire;
// 
//   public boolean canAutoLoad() {
// 
//     return  
//         (System.currentTimeMillis() - loadTime > expire * 900);
//   }
// 
// 
//   public boolean isEmpty() {
//     return value == null;
//   }
// 
// 
// }
// 
// Path: jbase-cache/src/main/java/com/jayqqaa12/jbase/cache/serializer/CacheSerializer.java
// public interface CacheSerializer {
// 
//     byte[] serialize(Object obj)  ;
// 
//     Object deserialize(byte[] bytes)  ;
// 
// }
// 
// Path: jbase-cache/src/main/java/com/jayqqaa12/jbase/cache/util/CacheException.java
// public class CacheException extends RuntimeException {
// 
//     private static final long serialVersionUID = -5112528854998647834L;
// 
//     public CacheException(String s) {
//         super(s);
//     }
// 
//     public CacheException(String s, Throwable e) {
//         super(s, e);
//     }
// 
//     public CacheException(Throwable e) {
//         super(e);
//     }
// 
// }


// Path: jbase-cache/src/main/java/com/jayqqaa12/jbase/cache/provider/SerializerCache.java
import com.jayqqaa12.jbase.cache.core.Cache;
import com.jayqqaa12.jbase.cache.core.CacheObject;
import com.jayqqaa12.jbase.cache.serializer.CacheSerializer;
import com.jayqqaa12.jbase.cache.util.CacheException;
import java.io.IOException;

package com.jayqqaa12.jbase.cache.provider;



public abstract class SerializerCache implements Cache {

  private final CacheSerializer cacheSerializer;

  public SerializerCache(CacheSerializer cacheSerializer) {
    this.cacheSerializer = cacheSerializer;

  }

  @Override
  public CacheObject get(String key) throws CacheException {
    try {
      byte[] bytes = getByte(key);