/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.content.contentdata; import java.util.List; import org.jdom.Document; import com.enonic.cms.core.content.binary.BinaryDataKey; import com.enonic.cms.core.content.contentdata.custom.support.CustomContentDataXmlParser; import com.enonic.cms.core.content.contentdata.legacy.support.ArticleContentDataParser; import com.enonic.cms.core.content.contentdata.legacy.support.DocumentContentDataParser; import com.enonic.cms.core.content.contentdata.legacy.support.FileContentDataParser; import com.enonic.cms.core.content.contentdata.legacy.support.FormContentDataParser; import com.enonic.cms.core.content.contentdata.legacy.support.ImageContentDataParser; import com.enonic.cms.core.content.contentdata.legacy.support.NewsletterContentDataParser; import com.enonic.cms.core.content.contentdata.legacy.support.PollContentDataParser; import com.enonic.cms.core.content.contenttype.ContentTypeConfig; import com.enonic.cms.core.content.contenttype.ContentTypeEntity; public class ContentDataParser { public static ContentData parse( final Document contentDataXmlDoc, final ContentTypeEntity contentType, final List<BinaryDataKey> binaryDatas ) { ContentData contentData; switch ( contentType.getContentHandlerName() ) { case CUSTOM: ContentTypeConfig contentTypeConfig = contentType.getContentTypeConfig(); contentData = CustomContentDataXmlParser.parse( contentDataXmlDoc, contentTypeConfig, binaryDatas ); break; case IMAGE: contentData = ImageContentDataParser.parse( contentDataXmlDoc, binaryDatas ); break; case FILE: contentData = FileContentDataParser.parse( contentDataXmlDoc, binaryDatas ); break; case ARTICLE: contentData = ArticleContentDataParser.parse( contentDataXmlDoc, binaryDatas ); break; case DOCUMENT: contentData = DocumentContentDataParser.parse( contentDataXmlDoc, binaryDatas ); break; case FORM: contentData = FormContentDataParser.parse( contentDataXmlDoc, binaryDatas ); break; case NEWSLETTER: contentData = NewsletterContentDataParser.parse( contentDataXmlDoc, binaryDatas ); break; case POLL: contentData = PollContentDataParser.parse( contentDataXmlDoc, binaryDatas ); break; default: throw new IllegalArgumentException( "Content handler not supported: " + contentType.getContentHandlerName() ); } return contentData; } }