Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.robrua.orianna.store;
  
  import java.util.HashMap;
  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 implements DataStore {
     private final Map<Class<?>, Map<ObjectOriannaObject<?>>> cache = new HashMap<>();
     private final Map<Class<?>, BooleanhaveAll = new HashMap<>();
 
     @Override
     public <T extends OriannaObject<?>> void delete(final Class<T> typefinal List<?> keys) {
         if(keys.isEmpty()) {
             return;
         }
 
         final Map<ObjectOriannaObject<?>> forType = .get(type);
         if(forType == null) {
             return;
         }
 
         for(final Object key : keys) {
             forType.remove(key);
         }
     }
 
     @Override
     public <T extends OriannaObject<?>> void delete(final Class<T> typefinal Object key) {
         final Map<ObjectOriannaObject<?>> forType = .get(type);
         if(forType == null) {
             return;
         }
 
         forType.remove(key);
     }
 
     @SuppressWarnings("unchecked")
     @Override
     public <T extends OriannaObject<?>> List<T> get(final Class<T> typefinal List<?> keys) {
         final List<T> list = new ArrayList<>(keys.size());
         if(keys.isEmpty()) {
             return list;
         }
 
         final Map<ObjectOriannaObject<?>> forType = .get(type);
         if(forType == null) {
             for(int i = 0; i < keys.size(); i++) {
                 list.add(null);
             }
 
             return list;
         }
 
         for(int i = 0; i < keys.size(); i++) {
             list.add(i, (T)forType.get(keys.get(i)));
         }
 
         return list;
     }
 
     @SuppressWarnings("unchecked")
     @Override
     public <T extends OriannaObject<?>> T get(final Class<T> typefinal Object key) {
         final Map<ObjectOriannaObject<?>> forType = .get(type);
         if(forType == null) {
             return null;
         }
 
         return (T)forType.get(key);
     }
 
     @SuppressWarnings("unchecked")
     @Override
     public <T extends OriannaObject<?>> List<T> getAll(final Class<T> type) {
         final Boolean haveAll = this..get(type);
 
         if(haveAll == null || haveAll == .) {
             return null;
         }
 
         final Map<ObjectOriannaObject<?>> forType = .get(type);
         if(forType == null) {
             return null;
         }
 
         final List<T> results = new ArrayList<>((Collection<T>)forType.values());
         return results;
     }
 
     @Override
    public <T extends OriannaObject<?>> void store(final List<T> objsfinal List<?> keysfinal boolean isFullSet) {
        if(keys.size() != objs.size()) {
            throw new IllegalArgumentException("Each object must have a key");
        }
        else if(keys.isEmpty()) {
            return;
        }
        final Class<?> clazz = objs.get(0).getClass();
        if(isFullSet) {
            .put(clazztrue);
        }
        Map<ObjectOriannaObject<?>> forType = .get(clazz);
        if(forType == null) {
            forType = new HashMap<>();
            .put(clazzforType);
        }
        for(int i = 0; i < keys.size(); i++) {
            forType.put(keys.get(i), objs.get(i));
        }
    }
    @Override
    public <T extends OriannaObject<?>> void store(final T objfinal Object key) {
        final Class<?> clazz = obj.getClass();
        Map<ObjectOriannaObject<?>> forType = .get(clazz);
        if(forType == null) {
            forType = new HashMap<>();
            .put(clazzforType);
        }
        forType.put(keyobj);
    }
New to GrepCode? Check out our FAQ X