Commit f18fef10 authored by Tobias Meuser's avatar Tobias Meuser
Browse files

Added default caching component to allow easy exchangability

parent 86a6cf5b
/*
* Copyright (c) 2005-2010 KOM – Multimedia Communications Lab
*
* This file is part of Simonstrator.KOM.
*
* Simonstrator.KOM is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* PeerfactSim.KOM is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with PeerfactSim.KOM. If not, see <http://www.gnu.org/licenses/>.
*
*/
package de.tud.kom.p2psim.impl.vehicular;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import de.tudarmstadt.maki.simonstrator.api.component.vehicular.CachingComponent;
public class DefaultCachingComponent implements CachingComponent {
private Map<Class<? extends Object>, List<Object>> _cache = new HashMap<>();
@Override
public <T> List<T> getCacheEntries(Class<T> pCacheEntryClass) {
if (_cache.containsKey(pCacheEntryClass)) {
List<? extends Object> cacheEntries = _cache.get(pCacheEntryClass);
List<T> results = new ArrayList<>();
for (Object object : cacheEntries) {
results.add((T) object);
}
return results;
}
return null;
}
@Override
public <T> void storeCacheEntry(T pCacheEntry) {
if (!_cache.containsKey(pCacheEntry.getClass())) {
_cache.put(pCacheEntry.getClass(), new ArrayList<>());
}
_cache.get(pCacheEntry.getClass()).add(pCacheEntry);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment