/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.api.mock;
import java.io.Serializable;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import com.enonic.cms.api.plugin.PluginEnvironment;
/**
* Mock implementation of the abstract PluginEnvironment class.
*/
public class MockPluginEnvironment
implements PluginEnvironment
{
/**
* Shared objects.
*/
private final Map<String, Serializable> sharedMap = new HashMap<String, Serializable>();
/**
* Http servlet request.
*/
private HttpServletRequest currentRequest;
/**
* Return the current request.
*/
public HttpServletRequest getCurrentRequest()
{
return this.currentRequest;
}
/**
* Set the current request.
*/
public void setCurrentRequest( HttpServletRequest currentRequest )
{
this.currentRequest = currentRequest;
}
/**
* Return the current session.
*/
public HttpSession getCurrentSession()
{
return this.currentRequest != null ? this.currentRequest.getSession( true ) : null;
}
/**
* Return shared object by name.
*/
public Serializable getSharedObject( String name )
{
return this.sharedMap.get( name );
}
/**
* Set the shared object.
*/
public void setSharedObject( String name, Serializable object )
{
this.sharedMap.put( name, object );
}
/**
* Return shared object names.
*/
public Set<String> getSharedObjectNames( String prefix )
{
HashSet<String> set = new HashSet<String>();
for ( String key : this.sharedMap.keySet() )
{
if ( ( prefix == null ) || key.startsWith( prefix ) )
{
set.add( key );
}
}
return set;
}
}