// Path: examples/serializer-test/src/main/java/com/seanchenxi/gwt/storage/client/value/GenericTestValue.java
// public class GenericTestValue<T extends TestValue> implements IsSerializable{
// 
//   private T testValue;
// 
//   public GenericTestValue(){
// 
//   }
// 
//   public GenericTestValue(T testValue){
//     this.testValue = testValue;
//   }
// 
//   public T getTestValue(){
//     return testValue;
//   }
// 
//   public void setTestValue(T testValue){
//     this.testValue = testValue;
//   }
// 
//   @Override
//   public boolean equals(Object o){
//     if(this == o) return true;
//     if(!(o instanceof GenericTestValue)) return false;
// 
//     GenericTestValue that = (GenericTestValue)o;
// 
//     if(!testValue.equals(that.testValue)) return false;
// 
//     return true;
//   }
// 
//   @Override
//   public int hashCode(){
//     return testValue.hashCode();
//   }
// }
// 
// Path: examples/serializer-test/src/main/java/com/seanchenxi/gwt/storage/client/value/TestValue.java
// public class TestValue implements Serializable {
// 
//   private String value;
// 
//   public TestValue(){}
// 
//   public TestValue(String value){
//     this.value = value;
//   }
// 
//   public String getValue() {
//     return value;
//   }
// 
//   @Override
//   public boolean equals(Object o) {
//     if (this == o) return true;
//     if (!(o instanceof TestValue)) return false;
// 
//     TestValue testValue = (TestValue) o;
// 
//     return value == null ? (testValue.value == null) : value.equals(testValue.value);
//   }
// 
//   @Override
//   public int hashCode() {
//     return value.hashCode();
//   }
// }
// 
// Path: examples/serializer-test/src/main/java/com/seanchenxi/gwt/storage/shared/RpcTestValue.java
// public class RpcTestValue implements IsSerializable {
// 
//   private long id;
// 
//   public RpcTestValue(){}
// 
//   public RpcTestValue(long id){
//     this.id = id;
//   }
// 
//   public long getId(){
//     return id;
//   }
// 
//   public void setId(long id){
//     this.id = id;
//   }
// 
//   @Override
//   public boolean equals(Object o){
//     if(this == o) return true;
//     if(!(o instanceof RpcTestValue)) return false;
// 
//     RpcTestValue that = (RpcTestValue)o;
// 
//     if(id != that.id) return false;
// 
//     return true;
//   }
// 
//   @Override
//   public int hashCode(){
//     return (int)(id ^ (id >>> 32));
//   }
// }


import java.util.ArrayList;
import java.util.HashMap;
import com.seanchenxi.gwt.storage.client.value.GenericTestValue;
import com.seanchenxi.gwt.storage.client.value.TestValue;
import com.seanchenxi.gwt.storage.shared.RpcTestMapKey;
import com.seanchenxi.gwt.storage.shared.RpcTestMapValue;
import com.seanchenxi.gwt.storage.shared.RpcTestValue;
/*
 * Copyright 2014 Xi CHEN
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.seanchenxi.gwt.storage.client;



public interface KeyProviderGetter extends StorageKeyProvider {

  @Key(prefix = "prefix", suffix = "suffix")
  StorageKey<Boolean> boolKey();

  @Key(prefix = "prefix", value = "byteKey00", suffix = "suffix")
  StorageKey<Byte> byteKey();

  @Key(value = "byteKey00", suffix = "suffix")
  StorageKey<Character> charKey();

  @Key(prefix = "prefix", value = "byteKey00")
  StorageKey<Double> doubleKey();

  @Key(prefix = "prefix")
  StorageKey<Float> floatKey();

  @Key(suffix = "suffix")
  StorageKey<Integer> intKey();

  StorageKey<Long> longKey();

  StorageKey<Short> shortKey();

  StorageKey<String> stringKey();

// Path: examples/serializer-test/src/main/java/com/seanchenxi/gwt/storage/client/value/GenericTestValue.java
// public class GenericTestValue<T extends TestValue> implements IsSerializable{
// 
//   private T testValue;
// 
//   public GenericTestValue(){
// 
//   }
// 
//   public GenericTestValue(T testValue){
//     this.testValue = testValue;
//   }
// 
//   public T getTestValue(){
//     return testValue;
//   }
// 
//   public void setTestValue(T testValue){
//     this.testValue = testValue;
//   }
// 
//   @Override
//   public boolean equals(Object o){
//     if(this == o) return true;
//     if(!(o instanceof GenericTestValue)) return false;
// 
//     GenericTestValue that = (GenericTestValue)o;
// 
//     if(!testValue.equals(that.testValue)) return false;
// 
//     return true;
//   }
// 
//   @Override
//   public int hashCode(){
//     return testValue.hashCode();
//   }
// }
// 
// Path: examples/serializer-test/src/main/java/com/seanchenxi/gwt/storage/client/value/TestValue.java
// public class TestValue implements Serializable {
// 
//   private String value;
// 
//   public TestValue(){}
// 
//   public TestValue(String value){
//     this.value = value;
//   }
// 
//   public String getValue() {
//     return value;
//   }
// 
//   @Override
//   public boolean equals(Object o) {
//     if (this == o) return true;
//     if (!(o instanceof TestValue)) return false;
// 
//     TestValue testValue = (TestValue) o;
// 
//     return value == null ? (testValue.value == null) : value.equals(testValue.value);
//   }
// 
//   @Override
//   public int hashCode() {
//     return value.hashCode();
//   }
// }
// 
// Path: examples/serializer-test/src/main/java/com/seanchenxi/gwt/storage/shared/RpcTestValue.java
// public class RpcTestValue implements IsSerializable {
// 
//   private long id;
// 
//   public RpcTestValue(){}
// 
//   public RpcTestValue(long id){
//     this.id = id;
//   }
// 
//   public long getId(){
//     return id;
//   }
// 
//   public void setId(long id){
//     this.id = id;
//   }
// 
//   @Override
//   public boolean equals(Object o){
//     if(this == o) return true;
//     if(!(o instanceof RpcTestValue)) return false;
// 
//     RpcTestValue that = (RpcTestValue)o;
// 
//     if(id != that.id) return false;
// 
//     return true;
//   }
// 
//   @Override
//   public int hashCode(){
//     return (int)(id ^ (id >>> 32));
//   }
// }


// Path: examples/serializer-test/src/main/java/com/seanchenxi/gwt/storage/client/KeyProviderGetter.java
import java.util.ArrayList;
import java.util.HashMap;
import com.seanchenxi.gwt.storage.client.value.GenericTestValue;
import com.seanchenxi.gwt.storage.client.value.TestValue;
import com.seanchenxi.gwt.storage.shared.RpcTestMapKey;
import com.seanchenxi.gwt.storage.shared.RpcTestMapValue;
import com.seanchenxi.gwt.storage.shared.RpcTestValue;

/*
 * Copyright 2014 Xi CHEN
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.seanchenxi.gwt.storage.client;



public interface KeyProviderGetter extends StorageKeyProvider {

  @Key(prefix = "prefix", suffix = "suffix")
  StorageKey<Boolean> boolKey();

  @Key(prefix = "prefix", value = "byteKey00", suffix = "suffix")
  StorageKey<Byte> byteKey();

  @Key(value = "byteKey00", suffix = "suffix")
  StorageKey<Character> charKey();

  @Key(prefix = "prefix", value = "byteKey00")
  StorageKey<Double> doubleKey();

  @Key(prefix = "prefix")
  StorageKey<Float> floatKey();

  @Key(suffix = "suffix")
  StorageKey<Integer> intKey();

  StorageKey<Long> longKey();

  StorageKey<Short> shortKey();

  StorageKey<String> stringKey();

  StorageKey<Boolean> boolKey(String keyName);