/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.portal.rendering.viewtransformer;
import java.io.IOException;
import java.util.Map;
import com.enonic.cms.core.portal.instruction.PostProcessInstructionSerializer;
import com.enonic.cms.core.portal.instruction.RenderWindowInstruction;
import com.enonic.cms.core.structure.page.Region;
import com.enonic.cms.core.structure.page.RegionOrigin;
import com.enonic.cms.core.structure.page.Window;
public final class RegionTransformationParameter
extends AbstractTransformationParameter
implements TransformationParameter
{
private Region region;
private Map<String, Object> queryParams;
private boolean inPage;
public RegionTransformationParameter( Region region )
{
super( region.getName(), resolveOrigin( region ) );
this.region = region;
}
private static TransformationParameterOrigin resolveOrigin( Region region )
{
if ( region.getOrigin().equals( RegionOrigin.PAGE ) )
{
return TransformationParameterOrigin.PAGE;
}
else if ( region.getOrigin().equals( RegionOrigin.PAGETEMPLATE ) )
{
return TransformationParameterOrigin.PAGETEMPLATE;
}
throw new IllegalArgumentException( "Unsupported region origin: " + region.getOrigin() );
}
public boolean isInPage()
{
return inPage;
}
public void setInPage( boolean inPage )
{
this.inPage = inPage;
}
public void setQueryParams( Map<String, Object> queryParams )
{
this.queryParams = queryParams;
}
public String getSeparator()
{
return region.getSeparator();
}
public Map<String, Object> getQueryParams()
{
return queryParams;
}
public Object getValue()
{
return generateWindowPlaceholdersInRegion();
}
private String generateWindowPlaceholdersInRegion()
{
StringBuffer result = new StringBuffer();
for ( Window window : region.getWindows() )
{
RenderWindowInstruction instruction = new RenderWindowInstruction();
instruction.setPortletWindowKey( window.getKey().asString() );
//instruction.setParams( getQueryParams() );
try
{
result.append( PostProcessInstructionSerializer.serialize( instruction ) );
}
catch ( IOException e )
{
}
}
return result.toString();
}
}