private static final String[] table_list = {
// "Address",
- "Agent",
+ "AgentBase",
// "Agent_Agent",
// "Agent_Annotation",
// "Agent_DefinedTermBase",
Map<String, List<CdmBase>> tables_ = new HashMap<String, List<CdmBase>>(table_list.length);
- List<String> tableRows = new ArrayList<String>(MAX_ROWS);
-
//List<Agent> agents = appCtr.getAgentService().getAllAgents(MAX_ROWS, 0);
try {
logger.debug("Retrieving table '" + table_list[i] + "'");
System.out.println("Retrieving table '" + table_list[i] + "'");
- List<CdmBase> rows = new ArrayList<CdmBase>(MAX_ROWS);
+ List<CdmBase> rows = new ArrayList<>(MAX_ROWS);
- rows = appCtr.getMainService().rows(table_list[i], MAX_ROWS, 0);
+// rows = appCtr.getCommonService().count (table_list[i], MAX_ROWS, 0);
tables_.put(table_list[i], rows);
private Map<String, List<String>> retrieveAllTables___(Source source) {
- Map<String, List<String>> tables = new HashMap<String, List<String>>(table_list.length);
- List<String> tableRows = new ArrayList<String>(MAX_ROWS);
+ Map<String, List<String>> tables = new HashMap<>(table_list.length);
try {
//get data from database
for (int i = 0; i < table_list.length; i++) {
- List<String> rows = new ArrayList<String>(MAX_ROWS);
+ List<String> rows = new ArrayList<>(MAX_ROWS);
// Session session = factory.getCurrentSession();
// Source source = bmiConfig.getSource();
// ResultSet rs = berlinModelSource.getResultSet();
- Map<String, List<String>> tables = new HashMap<String, List<String>>(table_list.length);
- List<String> tableRows = new ArrayList<String>(MAX_ROWS);
+ Map<String, List<String>> tables = new HashMap<>(table_list.length);
try {
//get data from database
//ResultSet rs = berlinModelSource.getResultSet();
//ResultSet rs = source.getResultSet(strQuery) ;
ResultSet rs = source.getResultSet(strQuery) ;
- List<String> rows = new ArrayList<String>(MAX_ROWS);
+ List<String> rows = new ArrayList<>(MAX_ROWS);
while (rs.next()) {
rows.add(rs.toString());
private Map<String, List<String>> retrieveAllTables(CdmApplicationController appCtr) {
- Map<String, List<String>> tables = new HashMap<String, List<String>>(table_list.length);
+ Map<String, List<String>> tables = new HashMap<>(table_list.length);
- List<String> agentTableContent = new ArrayList<String>(MAX_ROWS);
+ List<String> agentTableContent = new ArrayList<>(MAX_ROWS);
List<? extends AgentBase> agents = appCtr.getAgentService().list(null,MAX_ROWS, 0,null,null);
for (AgentBase agent: agents ) {
//TODO: Want the entire row as string not just toString() of the object.
//List<Annotation> annotations = appCtr.getTermService().getAllAnnotations(MAX_ROWS, 0);
- List<String> definedTermBaseTableContent = new ArrayList<String>(MAX_ROWS);
+ List<String> definedTermBaseTableContent = new ArrayList<>(MAX_ROWS);
List<DefinedTermBase> definedTermBases = appCtr.getTermService().list(null,MAX_ROWS, 0,null,null);
for (DefinedTermBase definedTermBase: definedTermBases ) {
definedTermBaseTableContent.add(definedTermBase.toString());
}
private void doCompareDatabases(Map<String, List<CdmBase>> tablesDbOne, Map<String, List<CdmBase>> tablesDbTwo) {
-// public void doCompareDatabases(Map<String, List<String>> tablesDbOne, Map<String, List<String>> tablesDbTwo) {
logger.debug("# Tables in DB 1: " + tablesDbOne.size());
logger.debug("# Tables in DB 2: " + tablesDbTwo.size());
logger.info("Comparing table '" + tableName + "'");
-// List<String> dbOneTableRows = new ArrayList<String>();
-// List<String> dbTwoTableRows = new ArrayList<String>();
- List<CdmBase> dbOneTableRows = new ArrayList<CdmBase>();
- List<CdmBase> dbTwoTableRows = new ArrayList<CdmBase>();
+ List<CdmBase> dbOneTableRows = new ArrayList<>();
+ List<CdmBase> dbTwoTableRows = new ArrayList<>();
dbOneTableRows = tablesDbOne.get(tableName);
dbTwoTableRows = tablesDbTwo.get(tableName);
logger.error("Error creating application controller");
e.printStackTrace();
System.exit(1);
+ return;
}
try {
TransactionStatus txStatTwo = appCtrTwo.startTransaction(true);
for (int i = 0; i < table_list.length; i++) {
- List<CdmBase> rowsDbOne = new ArrayList<CdmBase>(MAX_ROWS);
- List<CdmBase> rowsDbTwo = new ArrayList<CdmBase>(MAX_ROWS);
- rowsDbOne = appCtrOne.getMainService().rows(table_list[i], MAX_ROWS, 0);
- rowsDbTwo = appCtrTwo.getMainService().rows(table_list[i], MAX_ROWS, 0);
+ List<CdmBase> rowsDbOne = new ArrayList<>(MAX_ROWS);
+ List<CdmBase> rowsDbTwo = new ArrayList<>(MAX_ROWS);
+// rowsDbOne = appCtrOne.getCommonService().count(table_list[i], MAX_ROWS, 0);
+// rowsDbTwo = appCtrTwo.getCommonService().count(table_list[i], MAX_ROWS, 0);
compareTables(table_list[i], rowsDbOne, rowsDbTwo);
}
appCtrTwo.commitTransaction(txStatTwo);
*/
public List<Object[]> group(Class<? extends T> clazz,Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths);
- public List<T> rows(String tableName, int limit, int start) throws DataAccessException;
-
/**
* @param id
* @return
}
}
- List<Annotation> results = query.list();
+ @SuppressWarnings("unchecked")
+ List<Annotation> results = query.list();
defaultBeanInitializer.initializeAll(results, propertyPaths);
return results;
}
* FIXME CdmEntityDaoBase is abstract, can it be annotated with @Repository?\r
*/\r
@Repository\r
-public abstract class CdmEntityDaoBase<T extends CdmBase> extends DaoBase implements ICdmEntityDao<T> {\r
+public abstract class CdmEntityDaoBase<T extends CdmBase>\r
+ extends DaoBase\r
+ implements ICdmEntityDao<T> {\r
\r
private static final Logger logger = Logger.getLogger(CdmEntityDaoBase.class);\r
\r
return list(type,limit,start,null,null);\r
}\r
\r
- @Override\r
- public List<T> rows(String tableName, int limit, int start) {\r
- Query query = getSession().createQuery("from " + tableName + " order by uuid");\r
- query.setFirstResult(start);\r
- query.setMaxResults(limit);\r
- @SuppressWarnings("unchecked")\r
- List<T> result = query.list();\r
- return result;\r
- }\r
-\r
@Override\r
public Class<T> getType() {\r
return type;\r
}
/**
- * Null save method which compiles a order by clause from the given list of OrderHints
+ * Null save method which compiles an order by clause from the given list of OrderHints
*
* @param orderHints can be NULL
* @return a StringBuffer holding the hql orderby clause
StringBuffer orderString = new StringBuffer();
- StringBuffer aliasPrefix = new StringBuffer();
- aliasPrefix.append(" ");
+ StringBuffer aliasPrefix = new StringBuffer(" ");
if(aliasName != null && !aliasName.isEmpty()){
aliasPrefix.append(aliasName).append(".");
}
if(orderHints != null && !orderHints.isEmpty()) {
- orderString.append(" order by");
+ orderString.append(" ORDER BY ");
for(OrderHint orderHint : orderHints) {
orderString.append(aliasPrefix).append(orderHint.toHql());
}
inner.setProjection(Projections.distinct(Projections.id()));
+ @SuppressWarnings("unchecked")
List<Object> intermediateResult = inner.list();
if(intermediateResult.isEmpty()) {
- return new ArrayList<DescriptionBase>();
+ return new ArrayList<>();
}
Integer[] resultIds = new Integer[intermediateResult.size()];
addOrder(criteria,orderHints);
+ @SuppressWarnings("unchecked")
List<Object> intermediateResult = criteria.list();
if(intermediateResult.isEmpty()) {
- return new ArrayList<TaxonDescription>();
+ return new ArrayList<>();
}
Integer[] resultIds = new Integer[intermediateResult.size()];
criteria.add(Restrictions.in("id", resultIds));
addOrder(criteria,orderHints);
+ @SuppressWarnings("unchecked")
List<TaxonDescription> results = criteria.list();
defaultBeanInitializer.initializeAll(results, propertyPaths);
return results;
crit.setFirstResult(pageNumber * pageSize);
}
}
+ @SuppressWarnings("unchecked")
List<CommonTaxonName> results = crit.list();
return results;
}
@Override
public DescriptionBase find(LSID lsid) {
- DescriptionBase descriptionBase = super.find(lsid);
+ DescriptionBase<?> descriptionBase = super.find(lsid);
if(descriptionBase != null) {
- List<String> propertyPaths = new ArrayList<String>();
+ List<String> propertyPaths = new ArrayList<>();
propertyPaths.add("createdBy");
propertyPaths.add("updatedBy");
propertyPaths.add("taxon");
setPagingParameter(query, pageSize, pageNumber);
+ @SuppressWarnings("unchecked")
List<Media> results = query.list();
defaultBeanInitializer.initializeAll(results, propertyPaths);
}
}
-
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao#countTaxonDescriptionMedia(java.util.UUID, java.lang.Boolean, java.util.Set)
- */
@Override
public int countTaxonDescriptionMedia(UUID taxonUuid,
Boolean limitToGalleries, Set<MarkerType> markerTypes) {
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao#listNamedAreasInUse(java.lang.Integer, java.lang.Integer, java.util.List)
- */
@SuppressWarnings("unchecked")
@Override
public List<TermDto> listNamedAreasInUse(boolean includeAllParents, Integer pageSize, Integer pageNumber) {
List<Object[]> parentResults = new ArrayList<Object[]>();
if(!areasInUse.isEmpty()) {
- Set<Object> allAreaIds = new HashSet<Object>(areasInUse.size());
+ Set<Object> allAreaIds = new HashSet<>(areasInUse.size());
if(includeAllParents) {
// find all parent nodes
List<Object[]> allAreasResult = query.list();
Map<Object, Object> allAreasMap = ArrayUtils.toMap(allAreasResult.toArray());
- Set<Object> parents = new HashSet<Object>();
+ Set<Object> parents = new HashSet<>();
for(Object[] leaf : areasInUse) {
allAreaIds.add(leaf[0]);
* @return
*/
private List<TermDto> termDtoListFrom(List<Object[]> results) {
- Map<UUID, TermDto> dtoMap = new HashMap<UUID, TermDto>(results.size());
+ Map<UUID, TermDto> dtoMap = new HashMap<>(results.size());
for (Object[] elements : results) {
UUID uuid = (UUID)elements[0];
if(dtoMap.containsKey(uuid)){
dtoMap.put(uuid, new TermDto(uuid, representations, (UUID)elements[2], (UUID)elements[3], (Integer)elements[4]));
}
}
- return new ArrayList<TermDto>(dtoMap.values());
+ return new ArrayList<>(dtoMap.values());
}
}
}
+ @SuppressWarnings("unchecked")
List<Media> results = query.list();
defaultBeanInitializer.initializeAll(results, propertyPaths);
return results;
}
}
+ @SuppressWarnings("unchecked")
List<DescriptionElementBase> results = fullTextQuery.list();
defaultBeanInitializer.initializeAll(results, propertyPaths);
return results;
@Override
public void purgeIndex() {
FullTextSession fullTextSession = Search.getFullTextSession(getSession());
- for(Class clazz : indexedClasses) {
- fullTextSession.purgeAll(type); // remove all description element base from indexes
+ for(Class<? extends DescriptionElementBase> clazz : indexedClasses) {
+ fullTextSession.purgeAll(type); // remove all description element base from indexes
}
fullTextSession.flushToIndexes();
}
public void optimizeIndex() {
FullTextSession fullTextSession = Search.getFullTextSession(getSession());
SearchFactory searchFactory = fullTextSession.getSearchFactory();
- for(Class clazz : indexedClasses) {
+ for(Class<? extends DescriptionElementBase> clazz : indexedClasses) {
searchFactory.optimize(clazz); // optimize the indices ()
}
fullTextSession.flushToIndexes();
}
@Override
- public <T extends DescriptionElementBase> Map<UuidAndTitleCache, Map<UUID, Set<T>>> getTaxonFeatureDescriptionElementMap(Class<T> clazz, UUID descriptiveDataSetUuid, DescriptiveSystemRole role) {
+ public <T extends DescriptionElementBase> Map<UuidAndTitleCache, Map<UUID, Set<T>>> getTaxonFeatureDescriptionElementMap(
+ Class<T> clazz, UUID descriptiveDataSetUuid, DescriptiveSystemRole role) {
checkNotInPriorView("DescriptiveDataSetDao.getTaxonFeatureDescriptionElementMap(DescriptiveDataSet descriptiveDataSet, Set<Feature> features, Integer pageSize,Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths)");
+
Map<UuidAndTitleCache, Map<UUID, Set<T>>> result = new HashMap<>();
try {
T data = (T)listEntry[4];
Map<UUID, Set<T>> taxonMap = result.get(taxon);
if (taxonMap == null){
- taxonMap = new HashMap<UUID, Set<T>>();
+ taxonMap = new HashMap<>();
result.put(taxon, taxonMap);
}
Set<T> featureSet = taxonMap.get(featureUuid);
if (featureSet == null){
- featureSet = new HashSet<T>();
+ featureSet = new HashSet<>();
taxonMap.put(featureUuid, featureSet);
}else{
if (logger.isDebugEnabled()){logger.debug("feature set already exists");}
}
@Override
- public List<HybridRelationship> getHybridNames(INonViralName name, HybridRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
+ public List<HybridRelationship> getHybridNames(INonViralName name, HybridRelationshipType type,
+ Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
AuditEvent auditEvent = getAuditEventFromContext();
if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {
Criteria criteria = getSession().createCriteria(HybridRelationship.class);
addOrder(criteria, orderHints);
+ @SuppressWarnings("unchecked")
List<HybridRelationship> results = criteria.list();
defaultBeanInitializer.initializeAll(results, propertyPaths);
return results;
}
}
+ @SuppressWarnings("unchecked")
List<HybridRelationship> results = query.getResultList();
defaultBeanInitializer.initializeAll(results, propertyPaths);
return results;
}
addOrder(criteria, orderHints);
+ @SuppressWarnings("unchecked")
List<NameRelationship> results = criteria.list();
defaultBeanInitializer.initializeAll(results, propertyPaths);
return results;
}
}
+ @SuppressWarnings("unchecked")
List<NameRelationship> results = query.getResultList();
defaultBeanInitializer.initializeAll(results, propertyPaths);
return results;
query.setFirstResult(0);
}
}
- return query.list();
+ @SuppressWarnings("unchecked")
+ List<Integer> result = query.list();
+ return result;
}
@Override
query.setFirstResult(0);
}
}
- return defaultBeanInitializer.initializeAll((List<T>)query.list(), propertyPaths);
+ @SuppressWarnings("unchecked")
+ List<T> result = defaultBeanInitializer.initializeAll((List<T>)query.list(), propertyPaths);
+ return result;
}
private <T extends TypeDesignationBase> Query getTypeDesignationQuery(String select, TaxonName name,
criteria.setFirstResult(0);
}
}
+ @SuppressWarnings("unchecked")
List<TaxonName> results = criteria.list();
return results;
}
addOrder(criteria, orderHints);
+ @SuppressWarnings("unchecked")
List<TaxonName> results = criteria.list();
defaultBeanInitializer.initializeAll(results, propertyPaths);
return results;
}
}
+ @SuppressWarnings("unchecked")
List<TaxonName> results = query.getResultList();
defaultBeanInitializer.initializeAll(results, propertyPaths);
return results;
}
}
+ @SuppressWarnings("unchecked")
List<? extends TaxonName> results = crit.list();
defaultBeanInitializer.initializeAll(results, propertyPaths);
// for some reason the HQL .class discriminator didn't work here so I created this preliminary
// implementation for now. Should be cleaned in future.
- List<RelationshipBase> result = new ArrayList<RelationshipBase>();
+ List<RelationshipBase> result = new ArrayList<>();
int nameRelSize = countAllRelationships(NameRelationship.class);
if (nameRelSize > start){
return result;
} else {
AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(RelationshipBase.class,auditEvent.getRevisionNumber());
- return query.getResultList();
+ @SuppressWarnings("unchecked")
+ List<RelationshipBase> result = query.getResultList();
+ return result;
}
}
if(result.size() == 0){
return null;
}else{
- List<UuidAndTitleCache> list = new ArrayList<UuidAndTitleCache>(result.size());
+ List<UuidAndTitleCache> list = new ArrayList<>(result.size());
for (Object object : result){
public UUID delete (TaxonName persistentObject){
Set<TaxonBase> taxonBases = persistentObject.getTaxonBases();
- if (persistentObject == null){
- logger.warn(type.getName() + " was 'null'");
- return null;
- }
getSession().saveOrUpdate(persistentObject);
UUID persUuid = persistentObject.getUuid();
// persistentObject = this.load(persUuid);
UUID homotypicalGroupUUID = persistentObject.getHomotypicalGroup().getUuid();
- for (TaxonBase taxonBase: taxonBases){
+ for (TaxonBase<?> taxonBase: taxonBases){
taxonDao.delete(taxonBase);
}
HomotypicalGroup homotypicalGroup = homotypicalGroupDao.load(homotypicalGroupUUID);
homotypicalGroup.getTypifiedNames().remove(persistentObject);
homotypicalGroupDao.saveOrUpdate(homotypicalGroup);
}
-
}
getSession().delete(persistentObject);
SQLQuery query = getSession().createSQLQuery(sql);
- List result = query.list();
String hqlQueryStringSelect = "SELECT * ";
Query hqlQuery = getSession().createQuery(hqlQueryStringFrom);
- List hqlResult = hqlQuery.list();
+ List<?> hqlResult = hqlQuery.list();
- List<HashMap<String,String>> nameRecords = new ArrayList();
- HashMap<String,String> nameRecord = new HashMap<String,String>();
+ List<HashMap<String,String>> nameRecords = new ArrayList<>();
+ HashMap<String,String> nameRecord = new HashMap<>();
Taxon accTaxon = null;
Synonym syn = null;
TaxonNode familyNode = null;
- for(Object object : hqlResult)
- {
+ for(Object object : hqlResult){
Object[] row = (Object[])object;
- nameRecord = new HashMap<String,String>();
- TaxonBase taxonBase = (TaxonBase)row[0];
+ nameRecord = new HashMap<>();
+ TaxonBase<?> taxonBase = (TaxonBase<?>)row[0];
if (taxonBase instanceof Taxon){
accTaxon = HibernateProxyHelper.deproxy(taxonBase, Taxon.class);
} else{
* @since 01.09.2008\r
*/\r
@Repository\r
-public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrObservationBase> implements IOccurrenceDao {\r
+public class OccurrenceDaoHibernateImpl\r
+ extends IdentifiableDaoBase<SpecimenOrObservationBase>\r
+ implements IOccurrenceDao {\r
\r
@SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(TaxonDaoHibernateImpl.class);\r
projectionList.add(Projections.property("titleCache"));\r
criteria.setProjection(projectionList);\r
\r
+ @SuppressWarnings("unchecked")\r
List<Object[]> result = criteria.list();\r
List<UuidAndTitleCache<SpecimenOrObservationBase>> uuidAndTitleCacheList = new ArrayList<>();\r
for(Object[] object : result){\r
- uuidAndTitleCacheList.add(new UuidAndTitleCache<SpecimenOrObservationBase>((UUID) object[0],(Integer) object[1], (String) object[2]));\r
+ uuidAndTitleCacheList.add(new UuidAndTitleCache<>((UUID) object[0],(Integer) object[1], (String) object[2]));\r
}\r
return uuidAndTitleCacheList;\r
}\r
\r
@Override\r
public List<UuidAndTitleCache<DerivedUnit>> getDerivedUnitUuidAndTitleCache(Integer limit, String pattern) {\r
- List<UuidAndTitleCache<DerivedUnit>> list = new ArrayList<UuidAndTitleCache<DerivedUnit>>();\r
+ List<UuidAndTitleCache<DerivedUnit>> list = new ArrayList<>();\r
Session session = getSession();\r
Query query;\r
if (pattern != null){\r
query.setMaxResults(limit);\r
}\r
\r
-\r
-\r
+ @SuppressWarnings("unchecked")\r
List<Object[]> result = query.list();\r
\r
for(Object[] object : result){\r
\r
Query query = session.createQuery("select uuid, id, titleCache from " + type.getSimpleName() + " where dtype = " + FieldUnit.class.getSimpleName());\r
\r
+ @SuppressWarnings("unchecked")\r
List<Object[]> result = query.list();\r
\r
for(Object[] object : result){\r
@Override\r
public <T extends SpecimenOrObservationBase> List<T> listByAssociatedTaxonName(Class<T> type,\r
TaxonName associatedTaxonName, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
- Set<SpecimenOrObservationBase> setOfAll = new HashSet<SpecimenOrObservationBase>();\r
+ Set<SpecimenOrObservationBase> setOfAll = new HashSet<>();\r
\r
// A Taxon name may be referenced by the DeterminationEvent of the SpecimenOrObservationBase\r
List<SpecimenOrObservationBase> byDetermination = list(type, associatedTaxonName, null, 0, null, null);\r
}\r
\r
\r
+ @SuppressWarnings("unchecked")\r
List<T> results = query.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
}\r
\r
List<SpecimenNodeWrapper> list = new ArrayList<>();\r
+ @SuppressWarnings("unchecked")\r
List<Object[]> result = query.list();\r
for(Object[] object : result){\r
list.add(new SpecimenNodeWrapper(\r
- new UuidAndTitleCache<SpecimenOrObservationBase>(\r
+ new UuidAndTitleCache<>(\r
(UUID) object[0],\r
(Integer) object[1],\r
(String) object[2]),\r
return Collections.emptyList();\r
}\r
List<UuidAndTitleCache<SpecimenOrObservationBase>> list = new ArrayList<>();\r
+ @SuppressWarnings("unchecked")\r
List<Object[]> result = query.list();\r
for(Object[] object : result){\r
- list.add(new UuidAndTitleCache<SpecimenOrObservationBase>((UUID) object[0],(Integer) object[1], (String) object[2]));\r
+ list.add(new UuidAndTitleCache<>((UUID) object[0],(Integer) object[1], (String) object[2]));\r
}\r
return list;\r
}\r
if(query==null){\r
return Collections.emptyList();\r
}\r
+ @SuppressWarnings("unchecked")\r
List<T> results = query.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
\r
@Override\r
public Collection<SpecimenOrObservationBase> listBySpecimenOrObservationType(SpecimenOrObservationType type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
- String queryString = "FROM SpecimenOrObservationBase specimens WHERE specimens.recordBasis = :type";\r
+ String queryString = "FROM SpecimenOrObservationBase specimens "\r
+ + " WHERE specimens.recordBasis = :type ";\r
\r
- if(orderHints != null && orderHints.size() > 0){\r
- queryString += " order by ";\r
- String orderStr = "";\r
- for(OrderHint orderHint : orderHints){\r
- if(orderStr.length() > 0){\r
- orderStr += ", ";\r
- }\r
- queryString += "specimens." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
- }\r
- queryString += orderStr;\r
- }\r
+ queryString += orderByClause(orderHints, "specimens");\r
\r
Query query = getSession().createQuery(queryString);\r
query.setParameter("type", type);\r
query.setMaxResults(limit);\r
}\r
\r
- List results = query.list();\r
+ @SuppressWarnings({ "unchecked", "rawtypes" })\r
+ List<SpecimenOrObservationBase> results = query.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
}\r
\r
+\r
@Override\r
public Collection<DeterminationEvent> listDeterminationEvents(SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
- String queryString = "FROM DeterminationEvent determination WHERE determination.identifiedUnit = :specimen";\r
+ String queryString = "FROM DeterminationEvent determination "\r
+ + " WHERE determination.identifiedUnit = :specimen";\r
\r
- if(orderHints != null && orderHints.size() > 0){\r
- queryString += " order by ";\r
- String orderStr = "";\r
- for(OrderHint orderHint : orderHints){\r
- if(orderStr.length() > 0){\r
- orderStr += ", ";\r
- }\r
- queryString += "determination." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
- }\r
- queryString += orderStr;\r
- }\r
+ queryString += orderByClause(orderHints, "determination");\r
\r
Query query = getSession().createQuery(queryString);\r
query.setParameter("specimen", specimen);\r
query.setMaxResults(limit);\r
}\r
\r
- List results = query.list();\r
+ @SuppressWarnings("unchecked")\r
+ List<DeterminationEvent> results = query.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
}\r
\r
@Override\r
public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
- String queryString = "FROM SpecimenTypeDesignation designations WHERE designations.typeSpecimen = :specimen";\r
+ String queryString = "FROM SpecimenTypeDesignation designations "\r
+ + " WHERE designations.typeSpecimen = :specimen";\r
\r
- if(orderHints != null && orderHints.size() > 0){\r
- queryString += " ORDER BY ";\r
- String orderStr = "";\r
- for(OrderHint orderHint : orderHints){\r
- if(orderStr.length() > 0){\r
- orderStr += ", ";\r
- }\r
- queryString += "designations." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
- }\r
- queryString += orderStr;\r
- }\r
+ queryString += orderByClause(orderHints, "designations");\r
\r
Query query = getSession().createQuery(queryString);\r
query.setParameter("specimen", specimen);\r
//DISTINCT is necessary if more than one description exists for a taxon because we create the cross product of all taxon descriptions and description elements\r
String queryString = "FROM IndividualsAssociation associations WHERE associations.associatedSpecimenOrObservation = :specimen";\r
\r
- if(orderHints != null && orderHints.size() > 0){\r
- queryString += " order by ";\r
- String orderStr = "";\r
- for(OrderHint orderHint : orderHints){\r
- if(orderStr.length() > 0){\r
- orderStr += ", ";\r
- }\r
- queryString += "associations." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
- }\r
- queryString += orderStr;\r
- }\r
+ queryString += orderByClause(orderHints, "associations");\r
\r
Query query = getSession().createQuery(queryString);\r
query.setParameter("specimen", specimen);\r
query.setMaxResults(limit);\r
}\r
\r
- List results = query.list();\r
+ @SuppressWarnings("unchecked")\r
+ List<IndividualsAssociation> results = query.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
}\r
@Override\r
public Collection<DescriptionBase<?>> listDescriptionsWithDescriptionSpecimen(SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
//DISTINCT is necessary if more than one description exists for a taxon because we create the cross product of all taxon descriptions and description elements\r
- String queryString = "FROM DescriptionBase descriptions WHERE descriptions.describedSpecimenOrObservation = :specimen";\r
+ String queryString = "FROM DescriptionBase descriptions "\r
+ + " WHERE descriptions.describedSpecimenOrObservation = :specimen";\r
\r
- if(orderHints != null && orderHints.size() > 0){\r
- queryString += " order by ";\r
- String orderStr = "";\r
- for(OrderHint orderHint : orderHints){\r
- if(orderStr.length() > 0){\r
- orderStr += ", ";\r
- }\r
- queryString += "descriptions." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
- }\r
- queryString += orderStr;\r
- }\r
+ queryString += orderByClause(orderHints, "descriptions");\r
\r
Query query = getSession().createQuery(queryString);\r
query.setParameter("specimen", specimen);\r
query.setMaxResults(limit);\r
}\r
\r
- List results = query.list();\r
+ @SuppressWarnings("unchecked")\r
+ List<DescriptionBase<?>> results = query.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
}\r
*/\r
@Override\r
public List<FieldUnit> getFieldUnitsForGatheringEvent(UUID gatheringEventUuid, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {\r
- String queryString = "FROM SpecimenOrObservationBase s WHERE s.gatheringEvent.uuid = :gatheringEventUuid";\r
+ String queryString = "FROM SpecimenOrObservationBase sob "\r
+ + "WHERE sob.gatheringEvent.uuid = :gatheringEventUuid";\r
\r
- if(orderHints != null && orderHints.size() > 0){\r
- queryString += " order by ";\r
- String orderStr = "";\r
- for(OrderHint orderHint : orderHints){\r
- if(orderStr.length() > 0){\r
- orderStr += ", ";\r
- }\r
- queryString += "descriptions." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();\r
- }\r
- queryString += orderStr;\r
- }\r
+ queryString += orderByClause(orderHints, "sob");\r
\r
Query query = getSession().createQuery(queryString);\r
query.setParameter("gatheringEventUuid", gatheringEventUuid);\r
query.setMaxResults(limit);\r
}\r
\r
- List results = query.list();\r
+ @SuppressWarnings("unchecked")\r
+ List<FieldUnit> results = query.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
}\r
String queryString = "SELECT dnaSample FROM DnaSample dnaSample join dnaSample.sequences sequence WHERE sequence.geneticAccessionNumber LIKE :accessionNumberString";\r
Query query = getSession().createQuery(queryString);\r
query.setParameter("accessionNumberString", accessionNumberString);\r
- List results = query.list();\r
+ @SuppressWarnings("unchecked")\r
+ List<DerivedUnit> results = query.list();\r
defaultBeanInitializer.initializeAll(results, propertyPaths);\r
return results;\r
}\r
import eu.etaxonomy.cdm.model.reference.IReport;
import eu.etaxonomy.cdm.model.reference.IThesis;
import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
import eu.etaxonomy.cdm.model.reference.ReferenceType;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase;
*/
//TODO implement search in nameDescriptions
- Set<Reference> referenceSet = new HashSet<Reference>();
+ Set<Reference> referenceSet = new HashSet<>();
referenceSet.add(reference);
if(includeSubordinateReferences){
referenceSet.addAll(getSubordinateReferences(reference));
return taxonBaseList;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao#getUuidAndAbbrevTitleCache(java.lang.Integer, java.lang.String)
- */
@Override
public List<UuidAndTitleCache<Reference>> getUuidAndAbbrevTitleCache(Integer limit, String pattern, ReferenceType refType) {
Session session = getSession();
- Reference ref = ReferenceFactory.newArticle();
Query query = null;
if (pattern != null){
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao#getUuidAndAbbrevTitleCache(java.lang.Integer, java.lang.String)
- */
@Override
public List<UuidAndTitleCache<Reference>> getUuidAndAbbrevTitleCacheForAuthor(Integer limit, String pattern, ReferenceType refType) {
Session session = getSession();
- Reference ref = ReferenceFactory.newArticle();
Query query = null;
if (pattern != null){
}
}
+ @SuppressWarnings("unchecked")
List<TaxonRelationship> result = query.getResultList();
defaultBeanInitializer.initializeAll(result, propertyPaths);
// and we can't live without this functionality in CATE as it screws up the whole
// taxon tree thing
if(orderHints != null && !orderHints.isEmpty()) {
- SortedSet<TaxonRelationship> sortedList = new TreeSet<TaxonRelationship>(new TaxonRelationshipFromTaxonComparator());
+ SortedSet<TaxonRelationship> sortedList = new TreeSet<>(new TaxonRelationshipFromTaxonComparator());
sortedList.addAll(result);
- return new ArrayList<TaxonRelationship>(sortedList);
+ return new ArrayList<>(sortedList);
}
return result;
*
* http://opensource.atlassian.com/projects/hibernate/browse/HHH-879
*/
- Order order;
String[] assocObjs = getPropertyName().split("\\.");
String path = "";
HttpServletResponse response) throws IOException {\r
logger.info("doGetFieldUnits() - " + request.getRequestURI());\r
\r
- ModelAndView mv = new ModelAndView();\r
-\r
TaxonBase<?> taxonBase = service.load(uuid);\r
taxonBase = checkExistsAndAccess(taxonBase, NO_UNPUBLISHED, response);\r
\r
private List<List<Synonym>> removeUnpublishedSynonyms(List<List<Synonym>> synonymyGroups) {
List<List<Synonym>> result = new ArrayList<>();
boolean isHomotypicToAccepted = true;
+
for (List<Synonym> oldList : synonymyGroups){
List<Synonym> newList = new ArrayList<>();
for (Synonym oldSyn : oldList){
import eu.etaxonomy.cdm.api.service.ICommonService;\r
import eu.etaxonomy.cdm.api.service.IDatabaseService;\r
import eu.etaxonomy.cdm.api.service.IDescriptionService;\r
+import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;\r
import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;\r
import eu.etaxonomy.cdm.api.service.IEntityValidationService;\r
import eu.etaxonomy.cdm.api.service.IEventBaseService;\r
import eu.etaxonomy.cdm.api.service.IReferenceService;\r
import eu.etaxonomy.cdm.api.service.IRegistrationService;\r
import eu.etaxonomy.cdm.api.service.IRightsService;\r
-import eu.etaxonomy.cdm.api.service.IService;\r
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;\r
import eu.etaxonomy.cdm.api.service.ITaxonService;\r
import eu.etaxonomy.cdm.api.service.ITermService;\r
import eu.etaxonomy.cdm.api.service.IUserService;\r
import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
-import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;\r
import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;\r
import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;\r
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;\r
return configuration.getEntityConstraintViolationService();\r
}\r
\r
-\r
- @Override\r
- public final IService<CdmBase> getMainService(){\r
- return configuration.getMainService();\r
- }\r
-\r
-\r
@Override\r
public final IDescriptiveDataSetService getDescriptiveDataSetService(){\r
return configuration.getDescriptiveDataSetService();\r
import eu.etaxonomy.cdm.api.service.IReferenceService;
import eu.etaxonomy.cdm.api.service.IRegistrationService;
import eu.etaxonomy.cdm.api.service.IRightsService;
-import eu.etaxonomy.cdm.api.service.IService;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;
/**
@Autowired
private SessionFactory factory;
- // @Autowired
- //@Qualifier("mainService")
- private IService<CdmBase> mainService;
-
@Autowired
private IDescriptiveDataSetService descriptiveDataSetService;
return this.grantedAuthorityService;
}
- @Override
- public IService<CdmBase> getMainService(){
- return this.mainService;
- }
-
@Override
public PlatformTransactionManager getTransactionManager(){
return this.transactionManager;
import eu.etaxonomy.cdm.api.service.ICommonService;
import eu.etaxonomy.cdm.api.service.IDatabaseService;
import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;
import eu.etaxonomy.cdm.api.service.IEntityValidationService;
import eu.etaxonomy.cdm.api.service.IEventBaseService;
import eu.etaxonomy.cdm.api.service.IReferenceService;
import eu.etaxonomy.cdm.api.service.IRegistrationService;
import eu.etaxonomy.cdm.api.service.IRightsService;
-import eu.etaxonomy.cdm.api.service.IService;
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
import eu.etaxonomy.cdm.api.service.ITaxonService;
import eu.etaxonomy.cdm.api.service.ITermService;
import eu.etaxonomy.cdm.api.service.IUserService;
import eu.etaxonomy.cdm.api.service.IVocabularyService;
-import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmPermissionEvaluator;
import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;
public IGrantedAuthorityService getGrantedAuthorityService();
- /**
- * @return
- */
- public IService<CdmBase> getMainService();
-
-
/**
* @return
*/
\r
import org.hibernate.LockOptions;\r
import org.hibernate.Session;\r
+import org.hibernate.event.spi.MergeEvent;\r
\r
import eu.etaxonomy.cdm.api.service.pager.Pager;\r
import eu.etaxonomy.cdm.model.common.ICdmBase;\r
+import eu.etaxonomy.cdm.persistence.dao.initializer.IBeanInitializer;\r
import eu.etaxonomy.cdm.persistence.dto.MergeResult;\r
+import eu.etaxonomy.cdm.persistence.hibernate.PostMergeEntityListener;\r
import eu.etaxonomy.cdm.persistence.query.Grouping;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
*/\r
public UUID refresh(T persistentObject);\r
\r
- public List<T> rows(String tableName, int limit, int start);\r
-\r
/**\r
* Save a collection containing new entities (persists the entities)\r
* @param newInstances the new entities to be persisted\r
public Pager<Rights> getRights(T t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
Integer numberOfResults = dao.countRights(t);
- List<Rights> results = new ArrayList<Rights>();
+ List<Rights> results = new ArrayList<>();
if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
results = dao.getRights(t, pageSize, pageNumber,propertyPaths);
}
for (Taxon taxon : taxa) {
List<T> perTaxonOccurrences = dao.listByAssociatedTaxon(type, taxon, null, null, orderHints, propertyPaths);
- for (SpecimenOrObservationBase o : perTaxonOccurrences) {
+ for (SpecimenOrObservationBase<?> o : perTaxonOccurrences) {
occurrenceIds.add(o.getId());
}
}
occurrences = (List<T>) dao.loadList(occurrenceIds, propertyPaths);
- return new DefaultPagerImpl<T>(pageNumber, occurrenceIds.size(), pageSize, occurrences);
+ return new DefaultPagerImpl<T>(pageNumber, Long.valueOf(occurrenceIds.size()), pageSize, occurrences);
}
import eu.etaxonomy.cdm.persistence.query.Grouping;\r
import eu.etaxonomy.cdm.persistence.query.OrderHint;\r
\r
-public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T>> implements IService<T>, ApplicationContextAware {\r
+public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T>>\r
+ implements IService<T>, ApplicationContextAware {\r
+\r
@SuppressWarnings("unused")\r
private static final Logger logger = Logger.getLogger(ServiceBase.class);\r
\r
return dao.refresh(persistentObject);\r
}\r
\r
- /**\r
- * FIXME Candidate for harmonization\r
- * is this method used, and if so, should it be exposed in the service layer?\r
- * it seems a bit incongruous that we use an ORM to hide the fact that there is a\r
- * database, then expose a method that talks about "rows" . . .\r
- */\r
- @Override\r
- @Transactional(readOnly = true)\r
- public List<T> rows(String tableName, int limit, int start) {\r
- return dao.rows(tableName, limit, start);\r
- }\r
-\r
@Override\r
@Transactional(readOnly = false)\r
public Map<UUID, T> save(Collection<T> newInstances) {\r
/**
- * recursively collect related taxa for the given <code>taxon</code> . The returned list will also include the
+ * Recursively collect related taxa for the given <code>taxon</code> . The returned list will also include the
* <code>taxon</code> supplied as parameter.
*
* @param taxon