DefaultComponentExporterResolver.java
package sk.iway.iwcm.sync.export;
import java.lang.reflect.Method;
import sk.iway.iwcm.Constants;
import sk.iway.iwcm.Logger;
import sk.iway.iwcm.Tools;
/**
* DefaultComponentExporterResolver.java
*
*@Title webjet7
*@Company Interway s.r.o. (www.interway.sk)
*@Copyright Interway s.r.o. (c) 2001-2013
*@author $Author: jeeff mhalas $
*@version $Revision: 1.3 $
*@created Date: 15.5.2013 10:46:19
*@modified $Date: 2004/08/16 06:26:11 $
*/
public class DefaultComponentExporterResolver implements ComponentExporterResolver
{
static final String COMPONENT_BANNER = "/components/banner/banner.jsp";
static final String COMPONENT_GALLERY = "/components/gallery/gallery.jsp";
static final String COMPONENT_INQUIRY = "/components/inquiry/inquiry.jsp";
static final String COMPONENT_FLV = "/components/_common/flvplayer";
@Override
@SuppressWarnings({"unchecked", "rawtypes"})
public ComponentExporter forInclude(String include)
{
if (include.startsWith(COMPONENT_BANNER)) return new BannerExporter(include);
if (include.startsWith(COMPONENT_GALLERY)) return new GalleryExporter(include);
if (include.startsWith(COMPONENT_INQUIRY)) return new InquiryExporter(include);
if (include.startsWith(COMPONENT_FLV)) return new FlashExporter(include);
String projectSpecificComponentExporterResolverClass = Constants.getString("projectSpecificComponentExporterResolverClass");
if (Tools.isNotEmpty(projectSpecificComponentExporterResolverClass))
{
try
{
Class projectSpecificClass = Class.forName(projectSpecificComponentExporterResolverClass);
Method method = projectSpecificClass.getMethod("forInclude", new Class[]{String.class});
return (ComponentExporter) method.invoke(projectSpecificClass.getDeclaredConstructor().newInstance(), include);
}
catch (Exception e)
{
Logger.debug(ComponentExporter.class, "Failed to find or invoke project specific ComponentExporter resolver: "
+ projectSpecificComponentExporterResolverClass + ", cause: " + e.getMessage());
}
}
return null;
}
}