/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.client;
import org.jdom.Document;
import org.jdom.Element;
import com.enonic.cms.api.client.model.content.file.FileContentDataInput;
import com.enonic.cms.core.content.binary.BinaryDataAndBinary;
import com.enonic.cms.core.content.contentdata.ContentData;
import com.enonic.cms.core.content.contentdata.legacy.LegacyFileContentData;
public class FileContentdataResolver
{
public ContentData resolveContentdata( FileContentDataInput fileContentDataInput )
{
Document xml = buildXml( fileContentDataInput );
return new LegacyFileContentData( xml, BinaryDataAndBinary.convertFromFileBinaryInput( fileContentDataInput.binary ) );
}
private Document buildXml( FileContentDataInput input )
{
Element contentDataEl = new Element( "contentdata" );
contentDataEl.addContent( new Element( "name" ).setText( input.name.getValue() ) );
if ( input.description != null )
{
contentDataEl.addContent( new Element( "description" ).setText( input.description.getValue() ) );
}
contentDataEl.addContent( new Element( "filesize" ).setText( String.valueOf( input.binary.getBinarySize() ) ) );
final Element binarydataEl = new Element( "binarydata" );
if ( input.binary.hasExistingBinaryKey() )
{
binarydataEl.setAttribute( "key", input.binary.getExistingBinaryKey().toString() );
}
else
{
binarydataEl.setAttribute( "key", "%0" );
}
contentDataEl.addContent( binarydataEl );
Element keywords = new Element( "keywords" );
if ( input.keywords != null )
{
for ( String keyword : input.keywords.getKeywords() )
{
Element keywordEl = new Element( "keyword" ).setText( keyword );
keywords.addContent( keywordEl );
}
}
contentDataEl.addContent( keywords );
return new Document( contentDataEl );
}
}