/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.upgrade.task.datasource;
import org.jdom.Document;
import org.jdom.Element;
import com.enonic.cms.framework.util.JDOMUtil;
public final class DataSourceConverterHelper
{
private final DataSourceConverter converter;
public DataSourceConverterHelper( final DataSourceConverter converter )
{
this.converter = converter;
}
public String convert( final DatasourceInfoHolder dataSource )
throws Exception
{
final Document sourceDoc = JDOMUtil.parseDocument( dataSource.getXml() );
convertDoc( sourceDoc, dataSource );
return JDOMUtil.prettyPrintDocument( sourceDoc );
}
private void convertDoc( final Document doc, DatasourceInfoHolder datasourceInfoHolder )
throws Exception
{
final Element root = doc.getRootElement();
Element originalElem = JDOMDocumentHelper.findElement( root, "datasources" );
if ( originalElem == null )
{
return;
}
originalElem = (Element) originalElem.detach();
this.converter.setCurrentContext( datasourceInfoHolder.getContextString() );
root.addContent( this.converter.convert( originalElem ) );
}
}