// Path: storebox-harness/src/main/java/net/orange_box/storebox/harness/types/CustomClass.java
// public class CustomClass {
//     
//     private int hashCode;
//     
//     private final String one;
//     private final String two;
//     
//     public CustomClass() {
//         this("", "");
//     }
//     
//     public CustomClass(String one, String two) {
//         this.one = one;
//         this.two = two;
//     }
//     
//     public String getOne() {
//         return one;
//     }
//     
//     public String getTwo() {
//         return two;
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (o == null || !(o instanceof CustomClass)) {
//             return false;
//         }
//         
//         final CustomClass other = (CustomClass) o;
//         return (one.equals(other.one) && two.equals(other.two));
//     }
// 
//     @Override
//     public int hashCode() {
//         if (hashCode == 0) {
//             hashCode = Arrays.hashCode(new String[] {one, two});
//         }
//         
//         return hashCode;
//     }
// }
// 
// Path: storebox-harness/src/main/java/net/orange_box/storebox/harness/types/CustomEnum.java
// public enum CustomEnum {
//     
//     ONE,
//     TWO
// }
// 
// Path: storebox-harness/src/main/java/net/orange_box/storebox/harness/types/adapters/CustomClassListTypeAdapter.java
// public class CustomClassListTypeAdapter extends
//         BaseStringTypeAdapter<List<CustomClass>> {
//     
//     private static final Gson GSON = new Gson();
//     
//     @Nullable
//     @Override
//     public String adaptForPreferences(@Nullable List<CustomClass> value) {
//         return GSON.toJson(value);
//     }
// 
//     @Nullable
//     @Override
//     public List<CustomClass> adaptFromPreferences(@Nullable String value) {
//         return GSON.fromJson(value, new TypeToken<List<CustomClass>>(){}.getType());
//     }
// }
// 
// Path: storebox-harness/src/main/java/net/orange_box/storebox/harness/types/adapters/CustomClassTypeAdapter.java
// public class CustomClassTypeAdapter extends BaseStringTypeAdapter<CustomClass> {
// 
//     @Nullable
//     @Override
//     public String adaptForPreferences(@Nullable CustomClass value) {
//         if (value == null) {
//             return null;
//         }
// 
//         return value.getOne() + "|" + value.getTwo();
//     }
// 
//     @Nullable
//     @Override
//     public CustomClass adaptFromPreferences(@Nullable String value) {
//         if (value == null) {
//             return null;
//         }
// 
//         if (value.length() == 1) {
//             return new CustomClass();
//         } else {
//             final String split[] = value.split("\\|");
// 
//             return new CustomClass(split[0], split[1]);
//         }
//     }
// }


import android.net.Uri;
import net.orange_box.storebox.annotations.method.KeyByString;
import net.orange_box.storebox.annotations.method.TypeAdapter;
import net.orange_box.storebox.harness.types.CustomClass;
import net.orange_box.storebox.harness.types.CustomEnum;
import net.orange_box.storebox.harness.types.adapters.CustomClassListTypeAdapter;
import net.orange_box.storebox.harness.types.adapters.CustomClassTypeAdapter;
import java.util.Date;
import java.util.List;
/*
 * Copyright 2015 Martin Bella
 * 
 * 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 net.orange_box.storebox.harness.interfaces.types;




public interface CustomTypesInterface {
    
    @KeyByString("key_custom_enum")
    CustomEnum getCustomEnum();

    @KeyByString("key_custom_enum")
    CustomEnum getCustomEnum(CustomEnum defValue);
    
    @KeyByString("key_custom_enum")
    void setCustomEnum(CustomEnum value);


    @KeyByString("key_date")
    Date getDate();
    
    @KeyByString("key_date")
    Date getDate(Date defValue);

    @KeyByString("key_date")
    void setDate(Date value);


    @KeyByString("key_double")
    double getDouble();

    @KeyByString("key_double")
    double getDouble(double defValue);

    @KeyByString("key_double")
    void setDouble(double value);


    @KeyByString("key_uri")
    Uri getUri();

    @KeyByString("key_uri")
    Uri getUri(Uri defValue);

    @KeyByString("key_uri")
// Path: storebox-harness/src/main/java/net/orange_box/storebox/harness/types/CustomClass.java
// public class CustomClass {
//     
//     private int hashCode;
//     
//     private final String one;
//     private final String two;
//     
//     public CustomClass() {
//         this("", "");
//     }
//     
//     public CustomClass(String one, String two) {
//         this.one = one;
//         this.two = two;
//     }
//     
//     public String getOne() {
//         return one;
//     }
//     
//     public String getTwo() {
//         return two;
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (o == null || !(o instanceof CustomClass)) {
//             return false;
//         }
//         
//         final CustomClass other = (CustomClass) o;
//         return (one.equals(other.one) && two.equals(other.two));
//     }
// 
//     @Override
//     public int hashCode() {
//         if (hashCode == 0) {
//             hashCode = Arrays.hashCode(new String[] {one, two});
//         }
//         
//         return hashCode;
//     }
// }
// 
// Path: storebox-harness/src/main/java/net/orange_box/storebox/harness/types/CustomEnum.java
// public enum CustomEnum {
//     
//     ONE,
//     TWO
// }
// 
// Path: storebox-harness/src/main/java/net/orange_box/storebox/harness/types/adapters/CustomClassListTypeAdapter.java
// public class CustomClassListTypeAdapter extends
//         BaseStringTypeAdapter<List<CustomClass>> {
//     
//     private static final Gson GSON = new Gson();
//     
//     @Nullable
//     @Override
//     public String adaptForPreferences(@Nullable List<CustomClass> value) {
//         return GSON.toJson(value);
//     }
// 
//     @Nullable
//     @Override
//     public List<CustomClass> adaptFromPreferences(@Nullable String value) {
//         return GSON.fromJson(value, new TypeToken<List<CustomClass>>(){}.getType());
//     }
// }
// 
// Path: storebox-harness/src/main/java/net/orange_box/storebox/harness/types/adapters/CustomClassTypeAdapter.java
// public class CustomClassTypeAdapter extends BaseStringTypeAdapter<CustomClass> {
// 
//     @Nullable
//     @Override
//     public String adaptForPreferences(@Nullable CustomClass value) {
//         if (value == null) {
//             return null;
//         }
// 
//         return value.getOne() + "|" + value.getTwo();
//     }
// 
//     @Nullable
//     @Override
//     public CustomClass adaptFromPreferences(@Nullable String value) {
//         if (value == null) {
//             return null;
//         }
// 
//         if (value.length() == 1) {
//             return new CustomClass();
//         } else {
//             final String split[] = value.split("\\|");
// 
//             return new CustomClass(split[0], split[1]);
//         }
//     }
// }


// Path: storebox-harness/src/main/java/net/orange_box/storebox/harness/interfaces/types/CustomTypesInterface.java
import android.net.Uri;
import net.orange_box.storebox.annotations.method.KeyByString;
import net.orange_box.storebox.annotations.method.TypeAdapter;
import net.orange_box.storebox.harness.types.CustomClass;
import net.orange_box.storebox.harness.types.CustomEnum;
import net.orange_box.storebox.harness.types.adapters.CustomClassListTypeAdapter;
import net.orange_box.storebox.harness.types.adapters.CustomClassTypeAdapter;
import java.util.Date;
import java.util.List;

/*
 * Copyright 2015 Martin Bella
 * 
 * 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 net.orange_box.storebox.harness.interfaces.types;




public interface CustomTypesInterface {
    
    @KeyByString("key_custom_enum")
    CustomEnum getCustomEnum();

    @KeyByString("key_custom_enum")
    CustomEnum getCustomEnum(CustomEnum defValue);
    
    @KeyByString("key_custom_enum")
    void setCustomEnum(CustomEnum value);


    @KeyByString("key_date")
    Date getDate();
    
    @KeyByString("key_date")
    Date getDate(Date defValue);

    @KeyByString("key_date")
    void setDate(Date value);


    @KeyByString("key_double")
    double getDouble();

    @KeyByString("key_double")
    double getDouble(double defValue);

    @KeyByString("key_double")
    void setDouble(double value);


    @KeyByString("key_uri")
    Uri getUri();

    @KeyByString("key_uri")
    Uri getUri(Uri defValue);

    @KeyByString("key_uri")
    void setUri(Uri value);