/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.portal.datasource.executor;
import java.util.HashMap;
import java.util.Map;
import org.elasticsearch.common.collect.Maps;
import org.jdom.Document;
import com.enonic.cms.core.portal.datasource.handler.DataSourceRequest;
public final class DataSourceInvocationCache
{
private final HashMap<String, Document> cache;
public DataSourceInvocationCache()
{
this.cache = Maps.newHashMap();
}
private String createCacheKey( final DataSourceRequest req )
{
final StringBuilder str = new StringBuilder();
str.append( req.getName() );
for ( final Map.Entry<String, String> param : req.getParams().entrySet() )
{
str.append( "-" ).append( param.getKey() ).append( ":" ).append( param.getValue() );
}
return str.toString();
}
public Document get( final DataSourceRequest req )
{
final String key = createCacheKey( req );
return this.cache.get( key );
}
public void put( final DataSourceRequest req, final Document doc )
{
final String key = createCacheKey( req );
this.cache.put( key, doc );
}
}