/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.upgrade.task.datasource.method;
import java.util.List;
import org.jdom.Element;
import com.google.common.collect.Lists;
final class GetContentConverter
extends DataSourceMethodConverter
{
public GetContentConverter()
{
super( "getContent" );
}
@Override
public Element convert( final String[] params )
{
List<Integer> validLengths = Lists.newArrayList( 5, 6, 8, 9, 10 );
final int numberOfParams = params.length;
if ( !validLengths.contains( numberOfParams ) )
{
return null;
}
if ( numberOfParams == 5 )
{
/*
public XMLDocument getContent(5)
0 int[] contentKey,
1 int parentLevel,
2 int childrenLevel,
3 int parentChildrenLevel,
4 boolean updateStatistics );
*/
return method().param( "contentKeys", params[0] ).param( "includeData", "true" ).param( "childrenLevel", params[2] ).param(
"parentLevel", params[1] ).build();
}
if ( numberOfParams == 6 )
{
/*
public XMLDocument getContent(6)
0 int[] contentKey,
1 int parentLevel,
2 int childrenLevel,
3 int parentChildrenLevel,
4 boolean updateStatistics,
5 boolean includeUserRights );
*/
return method().param( "contentKeys", params[0] ).param( "includeData", "true" ).param( "childrenLevel", params[2] ).param(
"parentLevel", params[1] ).build();
}
if ( numberOfParams == 9 )
{
/*
public XMLDocument getContent(9)
0 int[] contentKey,
1 int parentLevel,
2 int childrenLevel,
3 int parentChildrenLevel,
4 boolean updateStatistics,
5 boolean includeUserRights,
6 int[] filterByCategories,
7 boolean categoryRecursive,
8 int[] filterByContentTypes );
*/
return method().param( "contentKeys", params[0] ).param( "includeData", "true" ).param( "childrenLevel", params[2] ).param(
"parentLevel", params[1] ).build();
}
if ( numberOfParams == 10 )
{
/*
public XMLDocument getContent(10)
0 int[] contentKey,
1 int parentLevel,
2 int childrenLevel,
3 int parentChildrenLevel,
4 boolean updateStatistics,
5 boolean relatedTitlesOnly,
6 boolean includeUserRights,
7 int[] filterByCategories,
8 boolean categoryRecursive,
9 int[] filterByContentTypes );
*/
// Extract from !relatedTitlesOnly
Boolean includeData = !Boolean.valueOf( params[5] );
return method().param( "contentKeys", params[0] ).param( "includeData", Boolean.toString( includeData ) ).param(
"childrenLevel", params[2] ).param( "parentLevel", params[1] ).build();
}
return method().params( params, "contentKeys", "query", "orderBy", "index", "count", "includeData", "childrenLevel",
"parentLevel" ).build();
}
}