/*
* 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;
public abstract class DataSourceMethodConverter
{
private final String name;
public DataSourceMethodConverter( final String name )
{
this.name = name;
}
public final String getName()
{
return this.name;
}
protected final boolean checkMinMax( final String[] params, final int min, final int max )
{
return ( params.length >= min ) && ( params.length <= max );
}
protected final MethodElementBuilder method()
{
return new MethodElementBuilder( this.name );
}
protected final MethodElementBuilder method( final String name )
{
return new MethodElementBuilder( name );
}
public abstract Element convert( final String[] params );
protected String appendInFilterToQuery( final String existingQuery, final String indexValueString, final String indexFieldName )
{
if ( !Strings.isNullOrEmpty( indexValueString ) )
{
StringBuilder stringBuilder = new StringBuilder();
if ( !Strings.isNullOrEmpty( existingQuery ) )
{
stringBuilder.append( "(" + existingQuery + ")" );
stringBuilder.append( " AND " );
}
stringBuilder.append( indexFieldName + " IN (" );
stringBuilder.append( indexValueString );
stringBuilder.append( ")" );
return stringBuilder.toString();
}
return existingQuery;
}
}