/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.upgrade.task.datasource.method;
import org.jdom.Element;
import com.google.common.base.Strings;
final class GetContentBySectionConverter
extends DataSourceMethodConverter
{
public GetContentBySectionConverter()
{
super( "getContentBySection" );
}
@Override
public Element convert( final String[] params )
{
if ( params.length != 9 && params.length != 13 && params.length != 14 )
{
return null;
}
if ( params.length == 13 )
{
/*
public XMLDocument getContentBySection( 13)
0 int[] menuItemKeys,
1 int levels,
2 String orderBy,
3 int fromIndex,
4 int count,
5 boolean titlesOnly,
6 int parentLevel,
7 int childrenLevel,
8 int parentChildrenLevel,
9 boolean relatedTitlesOnly,
10 boolean includeTotalCount,
11 boolean includeUserRights,
12 int[] filterByContentTypes )
*/
String query = "";
String contentTypesString = params[12];
if ( !Strings.isNullOrEmpty( contentTypesString ) )
{
query = appendInFilterToQuery( query, contentTypesString, "contenttypekey" );
}
// Translated from !relatedTitlesOnly && !titlesOnly
boolean includeData = !Boolean.valueOf( params[9] ) || !Boolean.valueOf( params[5] );
return method()
.param( "menuItemKeys", params[0] )
.param( "levels", params[1] )
.param( "query", query)
.param( "orderBy", params[2] )
.param( "index", params[3] )
.param( "count", params[4] )
.param( "includeData", Boolean.toString( includeData ) )
.param( "childrenLevel", params[7] )
.param( "parentLevel", params[6] )
.build();
}
if ( params.length == 14 )
{
/*
public XMLDocument getContentBySection(14)
0 String query,
1 int[] menuItemKeys,
2 int levels,
3 String orderBy,
4 int fromIndex,
5 int count,
6 boolean titlesOnly,
7 int parentLevel,
8 int childrenLevel,
9 int parentChildrenLevel,
10 boolean relatedTitlesOnly,
11 boolean includeTotalCount,
12 boolean includeUserRights,
13 int[] filterByContentType );
*/
String query = params[0];
String contentTypesString = params[13];
if ( !Strings.isNullOrEmpty( contentTypesString ) )
{
query = appendInFilterToQuery( query, contentTypesString, "contenttypekey" );
}
// Translated from !relatedTitlesOnly && !titlesOnly
boolean includeData = !Boolean.valueOf( params[10] ) || !Boolean.valueOf( params[6] );
return method()
.param( "menuItemKeys", params[1] )
.param( "levels", params[2] )
.param( "query", query )
.param( "orderBy",params[3] )
.param("index", params[4] )
.param( "count", params[5] )
.param( "includeData", Boolean.toString( includeData ) )
.param("childrenLevel", params[8] )
.param( "parentLevel", params[7] )
.build();
}
return method().params( params, "menuItemKeys", "levels", "query", "orderBy", "index", "count", "includeData", "childrenLevel",
"parentLevel" ).build();
}
}