/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.portal.datasource.handler.base; import org.jdom.Document; import com.enonic.cms.core.portal.datasource.handler.DataSourceHandler; import com.enonic.cms.core.portal.datasource.handler.DataSourceRequest; public abstract class ParamsDataSourceHandler<T> extends DataSourceHandler { private final ParameterBeanMapper<T> beanMapper; public ParamsDataSourceHandler( final String name, final Class<T> paramsType ) { super( name ); this.beanMapper = ParameterBeanMapper.create( paramsType, getName() ); } @Override public final Document handle( final DataSourceRequest req ) throws Exception { return handle( req, this.beanMapper.newBean( req.getParams() ) ); } protected abstract Document handle( final DataSourceRequest req, final T params ) throws Exception; }