Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.robrua.orianna.store;
  
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.List;
  import java.util.Map;
  
An in-memory cache for data

Author(s):
Rob Rua (FatalElement - NA) (robrua@alumni.cmu.edu)
 
 public class Cache extends DataStore {
     private final Map<Class<? extends OriannaObject<?>>, Map<ObjectOriannaObject<?>>> cache = new HashMap<>();
     private final Map<Class<? extends OriannaObject<?>>, BooleanhaveAll = new HashMap<>();
 
     @Override
     protected <T extends OriannaObject<?>> boolean checkHasAll(final Class<T> type) {
         final Boolean val = .get(type);
 
         if(val == null) {
             return false;
         }
 
         return val.booleanValue();
     }
 
     @Override
     protected <T extends OriannaObject<?>> void doDelete(final Class<T> typefinal List<?> keys) {
         final Map<ObjectOriannaObject<?>> stored = .get(type);
 
         if(stored != null) {
             for(final Object key : keys) {
                 stored.remove(key);
             }
         }
     }
 
     @Override
     protected <T extends OriannaObject<?>> void doDelete(final Class<T> typefinal Object key) {
         final Map<ObjectOriannaObject<?>> stored = .get(type);
 
         if(stored != null) {
             stored.remove(key);
         }
     }
 
     @SuppressWarnings("unchecked")
     @Override
     protected <T extends OriannaObject<?>> List<T> doGet(final Class<T> typefinal List<?> keys) {
         final Map<ObjectOriannaObject<?>> stored = .get(type);
 
         final List<T> result = new ArrayList<>(keys.size());
         if(stored == null) {
             for(int i = 0; i < keys.size(); i++) {
                 result.add(null);
             }
         }
         else {
             for(final Object key : keys) {
                 result.add((T)stored.get(key));
             }
         }
 
         return result;
     }
 
     @SuppressWarnings("unchecked")
     @Override
     protected <T extends OriannaObject<?>> T doGet(final Class<T> typefinal Object key) {
         final Map<ObjectOriannaObject<?>> stored = .get(type);
 
         if(stored == null) {
             return null;
         }
 
         return (T)stored.get(key);
     }
 
     @SuppressWarnings("unchecked")
     @Override
     protected <T extends OriannaObject<?>> List<T> doGetAll(final Class<T> type) {
         final Map<ObjectOriannaObject<?>> stored = .get(type);
 
         if(stored == null) {
             return Collections.emptyList();
         }
 
         final List<T> result = new ArrayList<>();
         for(final Object val : stored.values()) {
             result.add((T)val);
         }
         return result;
     }
 
    @SuppressWarnings("unchecked")
    @Override
    public <T extends OriannaObject<?>> Iterator<T> doGetIterator(final Class<T> type) {
        final Map<ObjectOriannaObject<?>> stored = .get(type);
        if(stored == null) {
            return Collections.emptyIterator();
        }
        return (Iterator<T>)stored.values().iterator();
    }
    @Override
    protected <T extends OriannaObject<?>> void doStore(final Class<T> typefinal List<T> objsfinal List<?> keysfinal boolean isFullSet) {
        if(isFullSet) {
            .put(type.);
        }
        Map<ObjectOriannaObject<?>> stored = .get(type);
        if(stored == null) {
            stored = new HashMap<>();
            .put(typestored);
        }
        for(int i = 0; i < objs.size(); i++) {
            stored.put(keys.get(i), objs.get(i));
        }
    }
    @SuppressWarnings("unchecked")
    @Override
    protected <T extends OriannaObject<?>> void doStore(final T objfinal Object key) {
        final Class<T> type = (Class<T>)obj.getClass();
        Map<ObjectOriannaObject<?>> stored = .get(type);
        if(stored == null) {
            stored = new HashMap<>();
            .put(typestored);
        }
        stored.put(keyobj);
    }
New to GrepCode? Check out our FAQ X