// Path: app/src/main/java/com/futurice/android/reservator/common/CacheMap.java
// public class CacheMap<K, V> {
//     private final HashMap<K, Bucket> map;
// 
//     public CacheMap() {
//         this.map = new HashMap<K, Bucket>();
//     }
// 
//     public V get(K key) {
//         Bucket b = map.get(key);
// 
//         if (b == null || b.getExpireMillis() < System.currentTimeMillis()) {
//             return null;
//         } else {
//             return b.getValue();
//         }
//     }
// 
//     public void put(K key, V value, long duration) {
//         map.put(key, new Bucket(value, System.currentTimeMillis() + duration));
//     }
// 
//     public void remove(K key) {
//         map.remove(key);
//     }
// 
//     public void clear() {
//         this.map.clear();
//     }
// 
//     private class Bucket {
//         private long expireAt;
//         private V value;
// 
//         public Bucket(V value, long expireAt) {
//             this.value = value;
//             this.expireAt = expireAt;
//         }
// 
//         public V getValue() {
//             return value;
//         }
// 
//         public long getExpireMillis() {
//             return expireAt;
//         }
//     }
// }


import java.util.Vector;
import android.util.Log;
import com.futurice.android.reservator.common.CacheMap;
package com.futurice.android.reservator.model;




public class CachedDataProxy extends DataProxy {
    // private static final long CACHE_ROOMS_FOR = 3600*1000; // 1 hour
    private static final long CACHE_RESERVATION_FOR = 60 * 1000; // 1 minute

    private final DataProxy dataProxy;
// Path: app/src/main/java/com/futurice/android/reservator/common/CacheMap.java
// public class CacheMap<K, V> {
//     private final HashMap<K, Bucket> map;
// 
//     public CacheMap() {
//         this.map = new HashMap<K, Bucket>();
//     }
// 
//     public V get(K key) {
//         Bucket b = map.get(key);
// 
//         if (b == null || b.getExpireMillis() < System.currentTimeMillis()) {
//             return null;
//         } else {
//             return b.getValue();
//         }
//     }
// 
//     public void put(K key, V value, long duration) {
//         map.put(key, new Bucket(value, System.currentTimeMillis() + duration));
//     }
// 
//     public void remove(K key) {
//         map.remove(key);
//     }
// 
//     public void clear() {
//         this.map.clear();
//     }
// 
//     private class Bucket {
//         private long expireAt;
//         private V value;
// 
//         public Bucket(V value, long expireAt) {
//             this.value = value;
//             this.expireAt = expireAt;
//         }
// 
//         public V getValue() {
//             return value;
//         }
// 
//         public long getExpireMillis() {
//             return expireAt;
//         }
//     }
// }


// Path: app/src/main/java/com/futurice/android/reservator/model/CachedDataProxy.java
import java.util.Vector;
import android.util.Log;
import com.futurice.android.reservator.common.CacheMap;

package com.futurice.android.reservator.model;




public class CachedDataProxy extends DataProxy {
    // private static final long CACHE_ROOMS_FOR = 3600*1000; // 1 hour
    private static final long CACHE_RESERVATION_FOR = 60 * 1000; // 1 minute

    private final DataProxy dataProxy;
    private final CacheMap<String, Vector<Reservation>> reservationCache;