/*
* 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 GetMyContentByCategoryConverter
extends DataSourceMethodConverter
{
public GetMyContentByCategoryConverter()
{
super( "getMyContentByCategory" );
}
/*
public XMLDocument getMyContentByCategory( 14 )
0 String query,
1 int[] categories,
2 boolean includeSubCategories,
3 String orderBy,
4 int index,
5 int count,
6 boolean titlesOnly,
7 int childrenLevel,
8 int parentLevel,
9 int parentChildrenLevel,
10 boolean relatedTitlesOnly,
11 boolean includeTotalCount,
12 boolean includeUserRights,
13 int[] contentTypes );
*/
@Override
public Element convert( final String[] params )
{
if ( params.length != 14 )
{
return null;
}
String query = params[0];
String contentTypesString = params[13];
if ( !Strings.isNullOrEmpty( contentTypesString ) )
{
query = appendInFilterToQuery( query, contentTypesString, "contenttypekey" );
}
final Integer levels = Boolean.valueOf( params[2] ) ? Integer.MAX_VALUE : 1;
// Translated from !relatedTitlesOnly && !titlesOnly
final Boolean includeData = !Boolean.valueOf( params[10] ) || !Boolean.valueOf( params[6] );
return method("getContentByCategory")
.param( "categoryKeys", params[1] )
.param( "levels", levels.toString() )
.param( "query", query )
.param( "orderBy", params[3] )
.param( "index", params[4] )
.param( "count", params[5] )
.param( "includeData", Boolean.toString( includeData ) )
.param( "childrenLevel", params[7] )
.param( "parentLevel", params[8] )
.param( "filterOnUser", "true" )
.build();
}
}