package org.om.core.impl.mapping.registry;
import java.util.Collections;
import java.util.Map;
import java.util.WeakHashMap;
import org.om.core.api.mapping.EntityMapping;
import org.om.core.api.mapping.extractor.EntityMappingExtractor;
/**
* Very, very simple caching registry.
*
* @author Jakob Külzer
*/
public class SimpleCachingOnDemandMappingRegistry extends OnDemandMappingRegistry {
private final Map<String, EntityMapping> map = Collections.synchronizedMap(new WeakHashMap<String, EntityMapping>());
public SimpleCachingOnDemandMappingRegistry(EntityMappingExtractor entityMappingExtractor) {
super(entityMappingExtractor);
}
@Override
public EntityMapping getMapping(Class<?> clazz) {
if (map.containsKey(clazz.getName()))
return map.get(clazz.getName());
final EntityMapping mapping = super.getMapping(clazz);
map.put(clazz.getName(), mapping);
return mapping;
}
}