/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.portal.datasource.handler.context;
import org.jdom.Document;
import org.jdom.Element;
import org.springframework.stereotype.Component;
import com.enonic.cms.framework.util.JDOMUtil;
import com.enonic.cms.framework.xml.XMLDocumentFactory;
import com.enonic.cms.core.portal.VerticalSession;
import com.enonic.cms.core.portal.datasource.handler.DataSourceRequest;
import com.enonic.cms.core.portal.datasource.handler.base.SimpleDataSourceHandler;
@Component("ds.GetSessionContextHandler")
public final class GetSessionContextHandler
extends SimpleDataSourceHandler
{
public GetSessionContextHandler()
{
super( "getSessionContext" );
}
@Override
public Document handle( final DataSourceRequest req )
throws Exception
{
final Document document = new Document();
final VerticalSession verticalSession = req.getVerticalSession();
if ( verticalSession != null )
{
document.addContent( buildVerticalSessionXml( verticalSession ) );
}
else
{
document.setRootElement( new Element( "session" ) );
}
return document;
}
private Element buildVerticalSessionXml( final VerticalSession session )
{
final Document doc = XMLDocumentFactory.create( session.toXML() ).getAsJDOMDocument();
return (Element) JDOMUtil.getFirstElement( doc.getRootElement() ).detach();
}
}