Changeset 1303
- Timestamp:
- 05/16/11 07:32:54 (13 years ago)
- Location:
- ComponentRegistry/trunk/ComponentRegistry/src
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/impl/database/AbstractDescriptionDao.java
r1300 r1303 12 12 import org.springframework.jdbc.core.simple.SimpleJdbcInsert; 13 13 import clarin.cmdi.componentregistry.model.AbstractDescription; 14 import org.springframework.jdbc.core.SingleColumnRowMapper;15 14 import org.springframework.jdbc.core.simple.ParameterizedSingleColumnRowMapper; 16 15 import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport; … … 21 20 * @author Twan Goosen <twan.goosen@mpi.nl> 22 21 */ 23 public abstract class AbstractDescriptionDao extends SimpleJdbcDaoSupport {22 public abstract class AbstractDescriptionDao<T extends AbstractDescription> extends SimpleJdbcDaoSupport { 24 23 25 24 private final static Logger LOG = LoggerFactory.getLogger(AbstractDescriptionDao.class); 26 25 27 26 protected abstract String getTableName(); 28 29 27 protected abstract String getCMDIdColumn(); 30 28 29 /** 30 * Class object required to instantiate new description domain objects 31 */ 32 private Class<T> _class; 33 34 protected AbstractDescriptionDao(Class<T> _class) { 35 this._class = _class; 36 } 31 37 /** 32 38 * … … 68 74 } 69 75 70 protected <T extends AbstractDescription> List<T> getPublicDescriptions(final Class<T> _class) { 71 String select = "select name, description, " + getCMDIdColumn() + " from " + getTableName(); 76 /** 77 * 78 * @return All descriptions in the public space 79 */ 80 protected List<T> getPublicDescriptions() { 81 String select = "select name, description, " + getCMDIdColumn() + " from " + getTableName() + " where is_public = TRUE"; 82 return getSimpleJdbcTemplate().query(select, new AbstractDescriptionRowMapper()); 83 } 72 84 73 ParameterizedRowMapper<T> rowMapper = new ParameterizedRowMapper<T>(){85 private class AbstractDescriptionRowMapper<T> implements ParameterizedRowMapper<T> { 74 86 75 @Override 76 public T mapRow(ResultSet rs, int rowNumber) throws SQLException { 77 try { 78 AbstractDescription cd = (AbstractDescription) _class.newInstance(); 79 cd.setName(rs.getString("name")); 80 cd.setDescription(rs.getString("description")); 81 cd.setId(rs.getString(getCMDIdColumn())); 82 return (T) cd; 83 } catch (InstantiationException ex) { 84 LOG.error("Error in row mapping", ex); 85 } catch (IllegalAccessException ex) { 86 LOG.error("Error in row mapping", ex); 87 } 88 return null; 87 @Override 88 public T mapRow(ResultSet rs, int rowNumber) throws SQLException { 89 try { 90 AbstractDescription newDescription = (AbstractDescription) _class.newInstance(); 91 newDescription.setName(rs.getString("name")); 92 newDescription.setDescription(rs.getString("description")); 93 newDescription.setId(rs.getString(getCMDIdColumn())); 94 return (T) newDescription; 95 } catch (InstantiationException ex) { 96 LOG.error("Error in row mapping", ex); 97 } catch (IllegalAccessException ex) { 98 LOG.error("Error in row mapping", ex); 89 99 } 90 }; 91 92 return getSimpleJdbcTemplate().query(select, rowMapper); 93 } 100 return null; 101 } 102 }; 94 103 } -
ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/impl/database/ComponentDescriptionDao.java
r1300 r1303 2 2 3 3 import clarin.cmdi.componentregistry.model.ComponentDescription; 4 import java.sql.ResultSet;5 import java.sql.SQLException;6 4 import java.util.List; 7 import org.springframework.jdbc.core.simple.ParameterizedRowMapper;8 5 import static clarin.cmdi.componentregistry.impl.database.ComponentDescriptionDatabase.*; 9 6 … … 12 9 * @author Twan Goosen <twan.goosen@mpi.nl> 13 10 */ 14 public class ComponentDescriptionDao extends AbstractDescriptionDao { 11 public class ComponentDescriptionDao extends AbstractDescriptionDao<ComponentDescription> { 12 13 public ComponentDescriptionDao() { 14 super(ComponentDescription.class); 15 } 15 16 16 17 @Override … … 25 26 26 27 public List<ComponentDescription> getPublicComponentDescriptions() { 27 return getPublicDescriptions( ComponentDescription.class);28 return getPublicDescriptions(); 28 29 } 29 30 } -
ComponentRegistry/trunk/ComponentRegistry/src/main/java/clarin/cmdi/componentregistry/impl/database/ProfileDescriptionDao.java
r1300 r1303 9 9 * @author Twan Goosen <twan.goosen@mpi.nl> 10 10 */ 11 public class ProfileDescriptionDao extends AbstractDescriptionDao { 11 public class ProfileDescriptionDao extends AbstractDescriptionDao<ProfileDescription> { 12 13 public ProfileDescriptionDao() { 14 super(ProfileDescription.class); 15 } 12 16 13 17 @Override … … 22 26 23 27 public List<ProfileDescription> getPublicProfileDescriptions() { 24 return getPublicDescriptions( ProfileDescription.class);28 return getPublicDescriptions(); 25 29 } 26 30 } -
ComponentRegistry/trunk/ComponentRegistry/src/test/java/clarin/cmdi/componentregistry/impl/database/AbstractDescriptionDaoTest.java
r1298 r1303 1 1 package clarin.cmdi.componentregistry.impl.database; 2 2 3 import clarin.cmdi.componentregistry. components.CMDComponentSpec;3 import clarin.cmdi.componentregistry.model.AbstractDescription; 4 4 import clarin.cmdi.componentregistry.model.ComponentDescription; 5 5 import clarin.cmdi.componentregistry.rest.RegistryTestHelper; 6 import java.util.List; 6 7 import org.junit.runner.RunWith; 7 8 import org.junit.Test; … … 41 42 getDao().insertComponent(description, testComponent); 42 43 } 44 45 @Test 46 public void testGetPublicComponents() throws Exception { 47 List<AbstractDescription> descriptions = getDao().getPublicDescriptions(); 48 assertNotNull(descriptions); 49 } 43 50 } -
ComponentRegistry/trunk/ComponentRegistry/src/test/java/clarin/cmdi/componentregistry/impl/database/ComponentDescriptionDaoTest.java
r1298 r1303 19 19 resetDatabase(jdbcTemplate); 20 20 createTableComponentDescription(jdbcTemplate); 21 createTableProfileDescription(jdbcTemplate);22 21 createTableXmlContent(jdbcTemplate); 23 22 }
Note: See TracChangeset
for help on using the changeset viewer.