// Path: src/main/java/com/seanchenxi/gwt/storage/client/StorageKeyProvider.java
// public interface StorageKeyProvider {
// 
//   /**
//    * Used for adding additional and generic information to generated key
//    */
//   @Documented
//   @Retention(RetentionPolicy.RUNTIME)
//   @Target(ElementType.METHOD)
//   @interface Key {
// 
//     String value() default "";
// 
//     String prefix() default "";
// 
//     String suffix() default "";
// 
//   }
// 
// }


import com.google.gwt.core.ext.typeinfo.JClassType;
import com.google.gwt.core.ext.typeinfo.JMethod;
import com.google.gwt.core.ext.typeinfo.JPrimitiveType;
import com.google.gwt.core.ext.typeinfo.JType;
import com.seanchenxi.gwt.storage.client.StorageKeyProvider;

    public void setName(String name) {
      toReturn.name = name;
    }

    public void setReturnType(JClassType returnType) {
      toReturn.returnType = returnType;
    }

    public void setKeyValueType(JClassType wrapped) {
      toReturn.keyValueType = wrapped;
    }

    public void setStaticKeyValue(String staticKeyValue) {
      toReturn.staticKeyValue = staticKeyValue;
    }

    public void setKeyPrefix(String keyPrefix) {
      toReturn.keyPrefix = keyPrefix;
    }

    public void setKeySuffix(String keySuffix) {
      toReturn.keySuffix = keySuffix;
    }

    public void setDynamic(boolean dynamic) {
      toReturn.dynamic = dynamic;
    }

    public void setKeyClazz(JClassType keyClazz) {
// Path: src/main/java/com/seanchenxi/gwt/storage/client/StorageKeyProvider.java
// public interface StorageKeyProvider {
// 
//   /**
//    * Used for adding additional and generic information to generated key
//    */
//   @Documented
//   @Retention(RetentionPolicy.RUNTIME)
//   @Target(ElementType.METHOD)
//   @interface Key {
// 
//     String value() default "";
// 
//     String prefix() default "";
// 
//     String suffix() default "";
// 
//   }
// 
// }


// Path: src/main/java/com/seanchenxi/gwt/storage/rebind/StorageKeyProviderMethod.java
import com.google.gwt.core.ext.typeinfo.JClassType;
import com.google.gwt.core.ext.typeinfo.JMethod;
import com.google.gwt.core.ext.typeinfo.JPrimitiveType;
import com.google.gwt.core.ext.typeinfo.JType;
import com.seanchenxi.gwt.storage.client.StorageKeyProvider;


    public void setName(String name) {
      toReturn.name = name;
    }

    public void setReturnType(JClassType returnType) {
      toReturn.returnType = returnType;
    }

    public void setKeyValueType(JClassType wrapped) {
      toReturn.keyValueType = wrapped;
    }

    public void setStaticKeyValue(String staticKeyValue) {
      toReturn.staticKeyValue = staticKeyValue;
    }

    public void setKeyPrefix(String keyPrefix) {
      toReturn.keyPrefix = keyPrefix;
    }

    public void setKeySuffix(String keySuffix) {
      toReturn.keySuffix = keySuffix;
    }

    public void setDynamic(boolean dynamic) {
      toReturn.dynamic = dynamic;
    }

    public void setKeyClazz(JClassType keyClazz) {
      if(OBJECT_TYPE == null){