Project

General

Profile

« Previous | Next » 

Revision 11d3d7eb

Added by Andreas Müller almost 6 years ago

cleanup and remove rows(xxx) method

View differences:

cdmlib-io/src/test/java/eu/etaxonomy/cdm/test/integration/TestCdmDbComparator.java
62 62

  
63 63
	private static final String[] table_list = {
64 64
//			"Address",
65
			"Agent",
65
			"AgentBase",
66 66
//			"Agent_Agent",
67 67
//			"Agent_Annotation",
68 68
//			"Agent_DefinedTermBase",
......
325 325

  
326 326
		Map<String, List<CdmBase>> tables_ = new HashMap<String, List<CdmBase>>(table_list.length);
327 327

  
328
		List<String> tableRows = new ArrayList<String>(MAX_ROWS);
329

  
330 328
		//List<Agent> agents = appCtr.getAgentService().getAllAgents(MAX_ROWS, 0);
331 329

  
332 330
		try {
......
336 334
	    		logger.debug("Retrieving table '" + table_list[i] + "'");
337 335
	    		System.out.println("Retrieving table '" + table_list[i] + "'");
338 336

  
339
				List<CdmBase> rows = new ArrayList<CdmBase>(MAX_ROWS);
337
				List<CdmBase> rows = new ArrayList<>(MAX_ROWS);
340 338

  
341
				rows = appCtr.getMainService().rows(table_list[i], MAX_ROWS, 0);
339
//				rows = appCtr.getCommonService().count (table_list[i], MAX_ROWS, 0);
342 340

  
343 341
    			tables_.put(table_list[i], rows);
344 342

  
......
354 352

  
355 353
    private Map<String, List<String>> retrieveAllTables___(Source source) {
356 354

  
357
		Map<String, List<String>> tables = new HashMap<String, List<String>>(table_list.length);
358
		List<String> tableRows = new ArrayList<String>(MAX_ROWS);
355
		Map<String, List<String>> tables = new HashMap<>(table_list.length);
359 356

  
360 357
		try {
361 358
			//get data from database
362 359
			for (int i = 0; i < table_list.length; i++) {
363 360

  
364
				List<String> rows = new ArrayList<String>(MAX_ROWS);
361
				List<String> rows = new ArrayList<>(MAX_ROWS);
365 362

  
366 363
//					Session session = factory.getCurrentSession();
367 364

  
......
394 391
//		Source source = bmiConfig.getSource();
395 392
//		ResultSet rs = berlinModelSource.getResultSet();
396 393

  
397
		Map<String, List<String>> tables = new HashMap<String, List<String>>(table_list.length);
398
		List<String> tableRows = new ArrayList<String>(MAX_ROWS);
394
		Map<String, List<String>> tables = new HashMap<>(table_list.length);
399 395

  
400 396
		try {
401 397
			//get data from database
......
406 402
				//ResultSet rs = berlinModelSource.getResultSet();
407 403
				//ResultSet rs = source.getResultSet(strQuery) ;
408 404
				ResultSet rs = source.getResultSet(strQuery) ;
409
				List<String> rows = new ArrayList<String>(MAX_ROWS);
405
				List<String> rows = new ArrayList<>(MAX_ROWS);
410 406

  
411 407
				while (rs.next()) {
412 408
					rows.add(rs.toString());
......
421 417

  
422 418
    private Map<String, List<String>> retrieveAllTables(CdmApplicationController appCtr) {
423 419

  
424
		Map<String, List<String>> tables = new HashMap<String, List<String>>(table_list.length);
420
		Map<String, List<String>> tables = new HashMap<>(table_list.length);
425 421

  
426
		List<String> agentTableContent = new ArrayList<String>(MAX_ROWS);
422
		List<String> agentTableContent = new ArrayList<>(MAX_ROWS);
427 423
		List<? extends AgentBase> agents = appCtr.getAgentService().list(null,MAX_ROWS, 0,null,null);
428 424
		for (AgentBase agent: agents ) {
429 425
			//TODO: Want the entire row as string not just toString() of the object.
......
433 429

  
434 430
		//List<Annotation> annotations = appCtr.getTermService().getAllAnnotations(MAX_ROWS, 0);
435 431

  
436
		List<String> definedTermBaseTableContent = new ArrayList<String>(MAX_ROWS);
432
		List<String> definedTermBaseTableContent = new ArrayList<>(MAX_ROWS);
437 433
		List<DefinedTermBase> definedTermBases = appCtr.getTermService().list(null,MAX_ROWS, 0,null,null);
438 434
		for (DefinedTermBase definedTermBase: definedTermBases ) {
439 435
			definedTermBaseTableContent.add(definedTermBase.toString());
......
504 500
	}
505 501

  
506 502
    	private void doCompareDatabases(Map<String, List<CdmBase>> tablesDbOne, Map<String, List<CdmBase>> tablesDbTwo) {
507
//        public void doCompareDatabases(Map<String, List<String>> tablesDbOne, Map<String, List<String>> tablesDbTwo) {
508 503

  
509 504
		logger.debug("# Tables in DB 1: " + tablesDbOne.size());
510 505
		logger.debug("# Tables in DB 2: " + tablesDbTwo.size());
......
513 508

  
514 509
			logger.info("Comparing table '" + tableName + "'");
515 510

  
516
//			List<String> dbOneTableRows = new ArrayList<String>();
517
//			List<String> dbTwoTableRows = new ArrayList<String>();
518
			List<CdmBase> dbOneTableRows = new ArrayList<CdmBase>();
519
			List<CdmBase> dbTwoTableRows = new ArrayList<CdmBase>();
511
			List<CdmBase> dbOneTableRows = new ArrayList<>();
512
			List<CdmBase> dbTwoTableRows = new ArrayList<>();
520 513

  
521 514
			dbOneTableRows = tablesDbOne.get(tableName);
522 515
			dbTwoTableRows = tablesDbTwo.get(tableName);
......
576 569
			logger.error("Error creating application controller");
577 570
			e.printStackTrace();
578 571
			System.exit(1);
572
			return;
579 573
		}
580 574

  
581 575
		try {
......
584 578
	    	TransactionStatus txStatTwo = appCtrTwo.startTransaction(true);
585 579
			for (int i = 0; i < table_list.length; i++) {
586 580

  
587
				List<CdmBase> rowsDbOne = new ArrayList<CdmBase>(MAX_ROWS);
588
				List<CdmBase> rowsDbTwo = new ArrayList<CdmBase>(MAX_ROWS);
589
				rowsDbOne = appCtrOne.getMainService().rows(table_list[i], MAX_ROWS, 0);
590
				rowsDbTwo = appCtrTwo.getMainService().rows(table_list[i], MAX_ROWS, 0);
581
				List<CdmBase> rowsDbOne = new ArrayList<>(MAX_ROWS);
582
				List<CdmBase> rowsDbTwo = new ArrayList<>(MAX_ROWS);
583
//				rowsDbOne = appCtrOne.getCommonService().count(table_list[i], MAX_ROWS, 0);
584
//				rowsDbTwo = appCtrTwo.getCommonService().count(table_list[i], MAX_ROWS, 0);
591 585
				compareTables(table_list[i], rowsDbOne, rowsDbTwo);
592 586
			}
593 587
	    	appCtrTwo.commitTransaction(txStatTwo);
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/common/ICdmEntityDao.java
295 295
     */
296 296
    public List<Object[]> group(Class<? extends T> clazz,Integer limit, Integer start, List<Grouping> groups, List<String> propertyPaths);
297 297

  
298
    public List<T> rows(String tableName, int limit, int start) throws DataAccessException;
299

  
300 298
    /**
301 299
     * @param id
302 300
     * @return
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/AnnotatableDaoImpl.java
101 101
		    }
102 102
		}
103 103

  
104
		List<Annotation> results = query.list();
104
		@SuppressWarnings("unchecked")
105
        List<Annotation> results = query.list();
105 106
		defaultBeanInitializer.initializeAll(results, propertyPaths);
106 107
		return results;
107 108
	}
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/CdmEntityDaoBase.java
69 69
 * FIXME CdmEntityDaoBase is abstract, can it be annotated with @Repository?
70 70
 */
71 71
@Repository
72
public abstract class CdmEntityDaoBase<T extends CdmBase> extends DaoBase implements ICdmEntityDao<T> {
72
public abstract class CdmEntityDaoBase<T extends CdmBase>
73
            extends DaoBase
74
            implements ICdmEntityDao<T> {
73 75

  
74 76
    private static final Logger logger = Logger.getLogger(CdmEntityDaoBase.class);
75 77

  
......
861 863
        return list(type,limit,start,null,null);
862 864
    }
863 865

  
864
    @Override
865
    public List<T> rows(String tableName, int limit, int start) {
866
        Query query = getSession().createQuery("from " + tableName + " order by uuid");
867
        query.setFirstResult(start);
868
        query.setMaxResults(limit);
869
        @SuppressWarnings("unchecked")
870
		List<T> result = query.list();
871
        return result;
872
    }
873

  
874 866
    @Override
875 867
    public Class<T> getType() {
876 868
        return type;
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/common/DaoBase.java
153 153
    }
154 154

  
155 155
    /**
156
     * Null save method which compiles a order by clause from the given list of OrderHints
156
     * Null save method which compiles an order by clause from the given list of OrderHints
157 157
     *
158 158
     * @param orderHints can be NULL
159 159
     * @return a StringBuffer holding the hql orderby clause
......
162 162

  
163 163
        StringBuffer orderString = new StringBuffer();
164 164

  
165
        StringBuffer aliasPrefix = new StringBuffer();
166
        aliasPrefix.append(" ");
165
        StringBuffer aliasPrefix = new StringBuffer(" ");
167 166
        if(aliasName != null && !aliasName.isEmpty()){
168 167
            aliasPrefix.append(aliasName).append(".");
169 168
        }
170 169

  
171 170
        if(orderHints != null && !orderHints.isEmpty()) {
172
            orderString.append(" order by");
171
            orderString.append(" ORDER BY ");
173 172
            for(OrderHint orderHint : orderHints) {
174 173
                orderString.append(aliasPrefix).append(orderHint.toHql());
175 174
            }
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionDaoImpl.java
549 549

  
550 550
        inner.setProjection(Projections.distinct(Projections.id()));
551 551

  
552
        @SuppressWarnings("unchecked")
552 553
        List<Object> intermediateResult = inner.list();
553 554

  
554 555
        if(intermediateResult.isEmpty()) {
555
            return new ArrayList<DescriptionBase>();
556
            return new ArrayList<>();
556 557
        }
557 558

  
558 559
        Integer[] resultIds = new Integer[intermediateResult.size()];
......
614 615

  
615 616
        addOrder(criteria,orderHints);
616 617

  
618
        @SuppressWarnings("unchecked")
617 619
        List<Object> intermediateResult = criteria.list();
618 620

  
619 621
        if(intermediateResult.isEmpty()) {
620
            return new ArrayList<TaxonDescription>();
622
            return new ArrayList<>();
621 623
        }
622 624

  
623 625
        Integer[] resultIds = new Integer[intermediateResult.size()];
......
633 635
        criteria.add(Restrictions.in("id", resultIds));
634 636
        addOrder(criteria,orderHints);
635 637

  
638
        @SuppressWarnings("unchecked")
636 639
        List<TaxonDescription> results = criteria.list();
637 640
        defaultBeanInitializer.initializeAll(results, propertyPaths);
638 641
        return results;
......
654 657
                crit.setFirstResult(pageNumber * pageSize);
655 658
            }
656 659
        }
660
        @SuppressWarnings("unchecked")
657 661
        List<CommonTaxonName> results = crit.list();
658 662
        return results;
659 663
    }
......
667 671

  
668 672
    @Override
669 673
    public DescriptionBase find(LSID lsid) {
670
        DescriptionBase descriptionBase = super.find(lsid);
674
        DescriptionBase<?> descriptionBase = super.find(lsid);
671 675
        if(descriptionBase != null) {
672
            List<String> propertyPaths = new ArrayList<String>();
676
            List<String> propertyPaths = new ArrayList<>();
673 677
            propertyPaths.add("createdBy");
674 678
            propertyPaths.add("updatedBy");
675 679
            propertyPaths.add("taxon");
......
793 797

  
794 798
                setPagingParameter(query, pageSize, pageNumber);
795 799

  
800
                @SuppressWarnings("unchecked")
796 801
                List<Media> results = query.list();
797 802

  
798 803
                defaultBeanInitializer.initializeAll(results, propertyPaths);
......
803 808
            }
804 809
    }
805 810

  
806

  
807
    /* (non-Javadoc)
808
     * @see eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao#countTaxonDescriptionMedia(java.util.UUID, java.lang.Boolean, java.util.Set)
809
     */
810 811
    @Override
811 812
    public int countTaxonDescriptionMedia(UUID taxonUuid,
812 813
            Boolean limitToGalleries, Set<MarkerType> markerTypes) {
......
867 868

  
868 869
    }
869 870

  
870
    /* (non-Javadoc)
871
     * @see eu.etaxonomy.cdm.persistence.dao.description.IDescriptionDao#listNamedAreasInUse(java.lang.Integer, java.lang.Integer, java.util.List)
872
     */
873 871
    @SuppressWarnings("unchecked")
874 872
    @Override
875 873
    public List<TermDto> listNamedAreasInUse(boolean includeAllParents, Integer pageSize, Integer pageNumber) {
......
885 883
        List<Object[]> parentResults = new ArrayList<Object[]>();
886 884

  
887 885
        if(!areasInUse.isEmpty()) {
888
            Set<Object> allAreaIds = new HashSet<Object>(areasInUse.size());
886
            Set<Object> allAreaIds = new HashSet<>(areasInUse.size());
889 887

  
890 888
            if(includeAllParents) {
891 889
                // find all parent nodes
......
894 892
                List<Object[]> allAreasResult = query.list();
895 893
                Map<Object, Object> allAreasMap = ArrayUtils.toMap(allAreasResult.toArray());
896 894

  
897
                Set<Object> parents = new HashSet<Object>();
895
                Set<Object> parents = new HashSet<>();
898 896

  
899 897
                for(Object[] leaf : areasInUse) {
900 898
                    allAreaIds.add(leaf[0]);
......
942 940
     * @return
943 941
     */
944 942
    private List<TermDto> termDtoListFrom(List<Object[]> results) {
945
        Map<UUID, TermDto> dtoMap = new HashMap<UUID, TermDto>(results.size());
943
        Map<UUID, TermDto> dtoMap = new HashMap<>(results.size());
946 944
        for (Object[] elements : results) {
947 945
            UUID uuid = (UUID)elements[0];
948 946
            if(dtoMap.containsKey(uuid)){
......
958 956
                dtoMap.put(uuid, new TermDto(uuid, representations, (UUID)elements[2], (UUID)elements[3], (Integer)elements[4]));
959 957
            }
960 958
        }
961
        return new ArrayList<TermDto>(dtoMap.values());
959
        return new ArrayList<>(dtoMap.values());
962 960
    }
963 961

  
964 962

  
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptionElementDaoImpl.java
94 94
                }
95 95
            }
96 96

  
97
            @SuppressWarnings("unchecked")
97 98
            List<Media> results = query.list();
98 99
            defaultBeanInitializer.initializeAll(results, propertyPaths);
99 100
            return results;
......
148 149
                }
149 150
            }
150 151

  
152
            @SuppressWarnings("unchecked")
151 153
            List<DescriptionElementBase> results = fullTextQuery.list();
152 154
            defaultBeanInitializer.initializeAll(results, propertyPaths);
153 155
            return results;
......
160 162
    @Override
161 163
    public void purgeIndex() {
162 164
        FullTextSession fullTextSession = Search.getFullTextSession(getSession());
163
        for(Class clazz : indexedClasses) {
164
          fullTextSession.purgeAll(type); // remove all description element base from indexes
165
        for(Class<? extends DescriptionElementBase> clazz : indexedClasses) {
166
            fullTextSession.purgeAll(type); // remove all description element base from indexes
165 167
        }
166 168
        fullTextSession.flushToIndexes();
167 169
    }
......
182 184
    public void optimizeIndex() {
183 185
        FullTextSession fullTextSession = Search.getFullTextSession(getSession());
184 186
        SearchFactory searchFactory = fullTextSession.getSearchFactory();
185
        for(Class clazz : indexedClasses) {
187
        for(Class<? extends DescriptionElementBase> clazz : indexedClasses) {
186 188
            searchFactory.optimize(clazz); // optimize the indices ()
187 189
        }
188 190
        fullTextSession.flushToIndexes();
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/description/DescriptiveDataSetDao.java
68 68
	}
69 69

  
70 70
	@Override
71
	public <T extends DescriptionElementBase> Map<UuidAndTitleCache, Map<UUID, Set<T>>> getTaxonFeatureDescriptionElementMap(Class<T> clazz, UUID descriptiveDataSetUuid, DescriptiveSystemRole role) {
71
	public <T extends DescriptionElementBase> Map<UuidAndTitleCache, Map<UUID, Set<T>>> getTaxonFeatureDescriptionElementMap(
72
	        Class<T> clazz, UUID descriptiveDataSetUuid, DescriptiveSystemRole role) {
72 73
		checkNotInPriorView("DescriptiveDataSetDao.getTaxonFeatureDescriptionElementMap(DescriptiveDataSet descriptiveDataSet, Set<Feature> features, Integer pageSize,Integer pageNumber, List<OrderHint> orderHints,	List<String> propertyPaths)");
74

  
73 75
		Map<UuidAndTitleCache, Map<UUID, Set<T>>> result = new HashMap<>();
74 76
		try {
75 77

  
......
135 137
                T data = (T)listEntry[4];
136 138
				Map<UUID, Set<T>> taxonMap = result.get(taxon);
137 139
				if (taxonMap == null){
138
					taxonMap = new HashMap<UUID, Set<T>>();
140
					taxonMap = new HashMap<>();
139 141
					result.put(taxon, taxonMap);
140 142
				}
141 143
				Set<T> featureSet = taxonMap.get(featureUuid);
142 144
				if (featureSet == null){
143
					featureSet = new HashSet<T>();
145
					featureSet = new HashSet<>();
144 146
					taxonMap.put(featureUuid, featureSet);
145 147
				}else{
146 148
					if (logger.isDebugEnabled()){logger.debug("feature set already exists");}
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/name/TaxonNameDaoHibernateImpl.java
260 260
    }
261 261

  
262 262
    @Override
263
    public List<HybridRelationship> getHybridNames(INonViralName name, HybridRelationshipType type, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
263
    public List<HybridRelationship> getHybridNames(INonViralName name, HybridRelationshipType type,
264
            Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, List<String> propertyPaths) {
264 265
        AuditEvent auditEvent = getAuditEventFromContext();
265 266
        if(auditEvent.equals(AuditEvent.CURRENT_VIEW)) {
266 267
            Criteria criteria = getSession().createCriteria(HybridRelationship.class);
......
280 281

  
281 282
            addOrder(criteria, orderHints);
282 283

  
284
            @SuppressWarnings("unchecked")
283 285
            List<HybridRelationship> results = criteria.list();
284 286
            defaultBeanInitializer.initializeAll(results, propertyPaths);
285 287
            return results;
......
300 302
                }
301 303
            }
302 304

  
305
            @SuppressWarnings("unchecked")
303 306
            List<HybridRelationship> results =  query.getResultList();
304 307
            defaultBeanInitializer.initializeAll(results, propertyPaths);
305 308
            return results;
......
331 334
            }
332 335
            addOrder(criteria, orderHints);
333 336

  
337
            @SuppressWarnings("unchecked")
334 338
            List<NameRelationship> results = criteria.list();
335 339
            defaultBeanInitializer.initializeAll(results, propertyPaths);
336 340
            return results;
......
351 355
                }
352 356
            }
353 357

  
358
            @SuppressWarnings("unchecked")
354 359
            List<NameRelationship> results = query.getResultList();
355 360
            defaultBeanInitializer.initializeAll(results, propertyPaths);
356 361
            return results;
......
375 380
                query.setFirstResult(0);
376 381
            }
377 382
        }
378
        return query.list();
383
        @SuppressWarnings("unchecked")
384
        List<Integer> result = query.list();
385
        return result;
379 386
    }
380 387

  
381 388
    @Override
......
395 402
                query.setFirstResult(0);
396 403
            }
397 404
        }
398
        return defaultBeanInitializer.initializeAll((List<T>)query.list(), propertyPaths);
405
        @SuppressWarnings("unchecked")
406
        List<T> result = defaultBeanInitializer.initializeAll((List<T>)query.list(), propertyPaths);
407
        return result;
399 408
    }
400 409

  
401 410
    private <T extends TypeDesignationBase> Query getTypeDesignationQuery(String select, TaxonName name,
......
438 447
                criteria.setFirstResult(0);
439 448
            }
440 449
        }
450
        @SuppressWarnings("unchecked")
441 451
        List<TaxonName> results = criteria.list();
442 452
        return results;
443 453
    }
......
499 509

  
500 510
            addOrder(criteria, orderHints);
501 511

  
512
            @SuppressWarnings("unchecked")
502 513
            List<TaxonName> results = criteria.list();
503 514
            defaultBeanInitializer.initializeAll(results, propertyPaths);
504 515
            return results;
......
542 553
                }
543 554
            }
544 555

  
556
            @SuppressWarnings("unchecked")
545 557
            List<TaxonName> results = query.getResultList();
546 558
            defaultBeanInitializer.initializeAll(results, propertyPaths);
547 559
            return results;
......
622 634
            }
623 635
        }
624 636

  
637
        @SuppressWarnings("unchecked")
625 638
        List<? extends TaxonName> results = crit.list();
626 639
        defaultBeanInitializer.initializeAll(results, propertyPaths);
627 640

  
......
668 681
            // for some reason the HQL .class discriminator didn't work here so I created this preliminary
669 682
            // implementation for now. Should be cleaned in future.
670 683

  
671
            List<RelationshipBase> result = new ArrayList<RelationshipBase>();
684
            List<RelationshipBase> result = new ArrayList<>();
672 685

  
673 686
            int nameRelSize = countAllRelationships(NameRelationship.class);
674 687
            if (nameRelSize > start){
......
697 710
            return result;
698 711
        } else {
699 712
            AuditQuery query = getAuditReader().createQuery().forEntitiesAtRevision(RelationshipBase.class,auditEvent.getRevisionNumber());
700
            return query.getResultList();
713
            @SuppressWarnings("unchecked")
714
            List<RelationshipBase> result = query.getResultList();
715
            return result;
701 716
        }
702 717
    }
703 718

  
......
745 760
        if(result.size() == 0){
746 761
            return null;
747 762
        }else{
748
            List<UuidAndTitleCache> list = new ArrayList<UuidAndTitleCache>(result.size());
763
            List<UuidAndTitleCache> list = new ArrayList<>(result.size());
749 764

  
750 765
            for (Object object : result){
751 766

  
......
776 791
    public UUID delete (TaxonName persistentObject){
777 792
        Set<TaxonBase> taxonBases = persistentObject.getTaxonBases();
778 793

  
779
        if (persistentObject == null){
780
            logger.warn(type.getName() + " was 'null'");
781
            return null;
782
        }
783 794
        getSession().saveOrUpdate(persistentObject);
784 795
        UUID persUuid = persistentObject.getUuid();
785 796
       // persistentObject = this.load(persUuid);
786 797
        UUID homotypicalGroupUUID = persistentObject.getHomotypicalGroup().getUuid();
787 798

  
788 799

  
789
        for (TaxonBase taxonBase: taxonBases){
800
        for (TaxonBase<?> taxonBase: taxonBases){
790 801
            taxonDao.delete(taxonBase);
791 802
        }
792 803
        HomotypicalGroup homotypicalGroup = homotypicalGroupDao.load(homotypicalGroupUUID);
......
797 808
                homotypicalGroup.getTypifiedNames().remove(persistentObject);
798 809
                homotypicalGroupDao.saveOrUpdate(homotypicalGroup);
799 810
            }
800

  
801 811
        }
802 812

  
803 813
        getSession().delete(persistentObject);
......
869 879

  
870 880

  
871 881
    	SQLQuery query = getSession().createSQLQuery(sql);
872
    	List result = query.list();
873 882

  
874 883
    	String hqlQueryStringSelect = "SELECT * ";
875 884

  
......
879 888

  
880 889

  
881 890
    	Query hqlQuery = getSession().createQuery(hqlQueryStringFrom);
882
    	List hqlResult = hqlQuery.list();
891
    	List<?> hqlResult = hqlQuery.list();
883 892

  
884 893

  
885
		List<HashMap<String,String>> nameRecords = new ArrayList();
886
		HashMap<String,String> nameRecord = new HashMap<String,String>();
894
		List<HashMap<String,String>> nameRecords = new ArrayList<>();
895
		HashMap<String,String> nameRecord = new HashMap<>();
887 896
		Taxon accTaxon = null;
888 897
		Synonym syn = null;
889 898
		TaxonNode familyNode = null;
890
		for(Object object : hqlResult)
891
         {
899
		for(Object object : hqlResult){
892 900
			Object[] row = (Object[])object;
893
			nameRecord = new HashMap<String,String>();
894
			TaxonBase taxonBase = (TaxonBase)row[0];
901
			nameRecord = new HashMap<>();
902
			TaxonBase<?> taxonBase = (TaxonBase<?>)row[0];
895 903
			if (taxonBase instanceof Taxon){
896 904
			    accTaxon = HibernateProxyHelper.deproxy(taxonBase, Taxon.class);
897 905
			} else{
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/occurrence/OccurrenceDaoHibernateImpl.java
65 65
 * @since 01.09.2008
66 66
 */
67 67
@Repository
68
public class OccurrenceDaoHibernateImpl extends IdentifiableDaoBase<SpecimenOrObservationBase> implements IOccurrenceDao {
68
public class OccurrenceDaoHibernateImpl
69
          extends IdentifiableDaoBase<SpecimenOrObservationBase>
70
          implements IOccurrenceDao {
69 71

  
70 72
    @SuppressWarnings("unused")
71 73
    private static final Logger logger = Logger.getLogger(TaxonDaoHibernateImpl.class);
......
356 358
            projectionList.add(Projections.property("titleCache"));
357 359
            criteria.setProjection(projectionList);
358 360

  
361
            @SuppressWarnings("unchecked")
359 362
            List<Object[]> result = criteria.list();
360 363
            List<UuidAndTitleCache<SpecimenOrObservationBase>> uuidAndTitleCacheList = new ArrayList<>();
361 364
            for(Object[] object : result){
362
                uuidAndTitleCacheList.add(new UuidAndTitleCache<SpecimenOrObservationBase>((UUID) object[0],(Integer) object[1], (String) object[2]));
365
                uuidAndTitleCacheList.add(new UuidAndTitleCache<>((UUID) object[0],(Integer) object[1], (String) object[2]));
363 366
            }
364 367
            return uuidAndTitleCacheList;
365 368
        }
......
491 494

  
492 495
    @Override
493 496
    public List<UuidAndTitleCache<DerivedUnit>> getDerivedUnitUuidAndTitleCache(Integer limit, String pattern) {
494
        List<UuidAndTitleCache<DerivedUnit>> list = new ArrayList<UuidAndTitleCache<DerivedUnit>>();
497
        List<UuidAndTitleCache<DerivedUnit>> list = new ArrayList<>();
495 498
        Session session = getSession();
496 499
        Query query;
497 500
        if (pattern != null){
......
507 510
           query.setMaxResults(limit);
508 511
        }
509 512

  
510

  
511

  
513
        @SuppressWarnings("unchecked")
512 514
        List<Object[]> result = query.list();
513 515

  
514 516
        for(Object[] object : result){
......
525 527

  
526 528
        Query query = session.createQuery("select uuid, id, titleCache from " + type.getSimpleName() + " where dtype = " + FieldUnit.class.getSimpleName());
527 529

  
530
        @SuppressWarnings("unchecked")
528 531
        List<Object[]> result = query.list();
529 532

  
530 533
        for(Object[] object : result){
......
537 540
    @Override
538 541
    public <T extends SpecimenOrObservationBase> List<T> listByAssociatedTaxonName(Class<T> type,
539 542
            TaxonName associatedTaxonName, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
540
        Set<SpecimenOrObservationBase> setOfAll = new HashSet<SpecimenOrObservationBase>();
543
        Set<SpecimenOrObservationBase> setOfAll = new HashSet<>();
541 544

  
542 545
        // A Taxon name may be referenced by the DeterminationEvent of the SpecimenOrObservationBase
543 546
        List<SpecimenOrObservationBase> byDetermination = list(type, associatedTaxonName, null, 0, null, null);
......
586 589
        }
587 590

  
588 591

  
592
        @SuppressWarnings("unchecked")
589 593
        List<T> results = query.list();
590 594
        defaultBeanInitializer.initializeAll(results, propertyPaths);
591 595
        return results;
......
606 610
        }
607 611

  
608 612
        List<SpecimenNodeWrapper> list = new ArrayList<>();
613
        @SuppressWarnings("unchecked")
609 614
        List<Object[]> result = query.list();
610 615
        for(Object[] object : result){
611 616
            list.add(new SpecimenNodeWrapper(
612
                    new UuidAndTitleCache<SpecimenOrObservationBase>(
617
                    new UuidAndTitleCache<>(
613 618
                            (UUID) object[0],
614 619
                            (Integer) object[1],
615 620
                            (String) object[2]),
......
707 712
            return Collections.emptyList();
708 713
        }
709 714
        List<UuidAndTitleCache<SpecimenOrObservationBase>> list = new ArrayList<>();
715
        @SuppressWarnings("unchecked")
710 716
        List<Object[]> result = query.list();
711 717
        for(Object[] object : result){
712
            list.add(new UuidAndTitleCache<SpecimenOrObservationBase>((UUID) object[0],(Integer) object[1], (String) object[2]));
718
            list.add(new UuidAndTitleCache<>((UUID) object[0],(Integer) object[1], (String) object[2]));
713 719
        }
714 720
        return list;
715 721
    }
......
721 727
        if(query==null){
722 728
            return Collections.emptyList();
723 729
        }
730
        @SuppressWarnings("unchecked")
724 731
        List<T> results = query.list();
725 732
        defaultBeanInitializer.initializeAll(results, propertyPaths);
726 733
        return results;
......
838 845

  
839 846
    @Override
840 847
    public Collection<SpecimenOrObservationBase> listBySpecimenOrObservationType(SpecimenOrObservationType type, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
841
        String queryString = "FROM SpecimenOrObservationBase specimens WHERE specimens.recordBasis = :type";
848
        String queryString = "FROM SpecimenOrObservationBase specimens "
849
                + " WHERE specimens.recordBasis = :type ";
842 850

  
843
        if(orderHints != null && orderHints.size() > 0){
844
            queryString += " order by ";
845
            String orderStr = "";
846
            for(OrderHint orderHint : orderHints){
847
                if(orderStr.length() > 0){
848
                    orderStr += ", ";
849
                }
850
                queryString += "specimens." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();
851
            }
852
            queryString += orderStr;
853
        }
851
        queryString += orderByClause(orderHints, "specimens");
854 852

  
855 853
        Query query = getSession().createQuery(queryString);
856 854
        query.setParameter("type", type);
......
864 862
            query.setMaxResults(limit);
865 863
        }
866 864

  
867
        List results = query.list();
865
        @SuppressWarnings({ "unchecked", "rawtypes" })
866
        List<SpecimenOrObservationBase> results = query.list();
868 867
        defaultBeanInitializer.initializeAll(results, propertyPaths);
869 868
        return results;
870 869
    }
871 870

  
871

  
872 872
    @Override
873 873
    public Collection<DeterminationEvent> listDeterminationEvents(SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
874
        String queryString = "FROM DeterminationEvent determination WHERE determination.identifiedUnit = :specimen";
874
        String queryString = "FROM DeterminationEvent determination "
875
                + " WHERE determination.identifiedUnit = :specimen";
875 876

  
876
        if(orderHints != null && orderHints.size() > 0){
877
            queryString += " order by ";
878
            String orderStr = "";
879
            for(OrderHint orderHint : orderHints){
880
                if(orderStr.length() > 0){
881
                    orderStr += ", ";
882
                }
883
                queryString += "determination." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();
884
            }
885
            queryString += orderStr;
886
        }
877
        queryString += orderByClause(orderHints, "determination");
887 878

  
888 879
        Query query = getSession().createQuery(queryString);
889 880
        query.setParameter("specimen", specimen);
......
897 888
            query.setMaxResults(limit);
898 889
        }
899 890

  
900
        List results = query.list();
891
        @SuppressWarnings("unchecked")
892
        List<DeterminationEvent> results = query.list();
901 893
        defaultBeanInitializer.initializeAll(results, propertyPaths);
902 894
        return results;
903 895
    }
904 896

  
905 897
    @Override
906 898
    public Collection<SpecimenTypeDesignation> listTypeDesignations(SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
907
        String queryString = "FROM SpecimenTypeDesignation designations WHERE designations.typeSpecimen = :specimen";
899
        String queryString = "FROM SpecimenTypeDesignation designations "
900
                + " WHERE designations.typeSpecimen = :specimen";
908 901

  
909
        if(orderHints != null && orderHints.size() > 0){
910
            queryString += " ORDER BY ";
911
            String orderStr = "";
912
            for(OrderHint orderHint : orderHints){
913
                if(orderStr.length() > 0){
914
                    orderStr += ", ";
915
                }
916
                queryString += "designations." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();
917
            }
918
            queryString += orderStr;
919
        }
902
        queryString += orderByClause(orderHints, "designations");
920 903

  
921 904
        Query query = getSession().createQuery(queryString);
922 905
        query.setParameter("specimen", specimen);
......
941 924
        //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
942 925
        String queryString = "FROM IndividualsAssociation associations WHERE associations.associatedSpecimenOrObservation = :specimen";
943 926

  
944
        if(orderHints != null && orderHints.size() > 0){
945
            queryString += " order by ";
946
            String orderStr = "";
947
            for(OrderHint orderHint : orderHints){
948
                if(orderStr.length() > 0){
949
                    orderStr += ", ";
950
                }
951
                queryString += "associations." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();
952
            }
953
            queryString += orderStr;
954
        }
927
        queryString += orderByClause(orderHints, "associations");
955 928

  
956 929
        Query query = getSession().createQuery(queryString);
957 930
        query.setParameter("specimen", specimen);
......
965 938
            query.setMaxResults(limit);
966 939
        }
967 940

  
968
        List results = query.list();
941
        @SuppressWarnings("unchecked")
942
        List<IndividualsAssociation> results = query.list();
969 943
        defaultBeanInitializer.initializeAll(results, propertyPaths);
970 944
        return results;
971 945
    }
......
973 947
    @Override
974 948
    public Collection<DescriptionBase<?>> listDescriptionsWithDescriptionSpecimen(SpecimenOrObservationBase<?> specimen, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
975 949
        //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
976
        String queryString = "FROM DescriptionBase descriptions WHERE descriptions.describedSpecimenOrObservation = :specimen";
950
        String queryString = "FROM DescriptionBase descriptions "
951
                + " WHERE descriptions.describedSpecimenOrObservation = :specimen";
977 952

  
978
        if(orderHints != null && orderHints.size() > 0){
979
            queryString += " order by ";
980
            String orderStr = "";
981
            for(OrderHint orderHint : orderHints){
982
                if(orderStr.length() > 0){
983
                    orderStr += ", ";
984
                }
985
                queryString += "descriptions." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();
986
            }
987
            queryString += orderStr;
988
        }
953
        queryString += orderByClause(orderHints, "descriptions");
989 954

  
990 955
        Query query = getSession().createQuery(queryString);
991 956
        query.setParameter("specimen", specimen);
......
999 964
            query.setMaxResults(limit);
1000 965
        }
1001 966

  
1002
        List results = query.list();
967
        @SuppressWarnings("unchecked")
968
        List<DescriptionBase<?>> results = query.list();
1003 969
        defaultBeanInitializer.initializeAll(results, propertyPaths);
1004 970
        return results;
1005 971
    }
......
1009 975
     */
1010 976
    @Override
1011 977
    public List<FieldUnit> getFieldUnitsForGatheringEvent(UUID gatheringEventUuid, Integer limit, Integer start, List<OrderHint> orderHints, List<String> propertyPaths) {
1012
        String queryString = "FROM SpecimenOrObservationBase s WHERE s.gatheringEvent.uuid = :gatheringEventUuid";
978
        String queryString = "FROM SpecimenOrObservationBase sob "
979
                + "WHERE sob.gatheringEvent.uuid = :gatheringEventUuid";
1013 980

  
1014
        if(orderHints != null && orderHints.size() > 0){
1015
            queryString += " order by ";
1016
            String orderStr = "";
1017
            for(OrderHint orderHint : orderHints){
1018
                if(orderStr.length() > 0){
1019
                    orderStr += ", ";
1020
                }
1021
                queryString += "descriptions." + orderHint.getPropertyName() + " " + orderHint.getSortOrder().toHql();
1022
            }
1023
            queryString += orderStr;
1024
        }
981
        queryString += orderByClause(orderHints, "sob");
1025 982

  
1026 983
        Query query = getSession().createQuery(queryString);
1027 984
        query.setParameter("gatheringEventUuid", gatheringEventUuid);
......
1035 992
            query.setMaxResults(limit);
1036 993
        }
1037 994

  
1038
        List results = query.list();
995
        @SuppressWarnings("unchecked")
996
        List<FieldUnit> results = query.list();
1039 997
        defaultBeanInitializer.initializeAll(results, propertyPaths);
1040 998
        return results;
1041 999
    }
......
1048 1006
        String queryString = "SELECT dnaSample FROM DnaSample dnaSample join dnaSample.sequences sequence WHERE sequence.geneticAccessionNumber LIKE :accessionNumberString";
1049 1007
        Query query = getSession().createQuery(queryString);
1050 1008
        query.setParameter("accessionNumberString", accessionNumberString);
1051
        List results = query.list();
1009
        @SuppressWarnings("unchecked")
1010
        List<DerivedUnit> results = query.list();
1052 1011
        defaultBeanInitializer.initializeAll(results, propertyPaths);
1053 1012
        return results;
1054 1013
    }
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/reference/ReferenceDaoHibernateImpl.java
33 33
import eu.etaxonomy.cdm.model.reference.IReport;
34 34
import eu.etaxonomy.cdm.model.reference.IThesis;
35 35
import eu.etaxonomy.cdm.model.reference.Reference;
36
import eu.etaxonomy.cdm.model.reference.ReferenceFactory;
37 36
import eu.etaxonomy.cdm.model.reference.ReferenceType;
38 37
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
39 38
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase;
......
280 279
		 */
281 280

  
282 281
		//TODO implement search in nameDescriptions
283
		Set<Reference> referenceSet = new HashSet<Reference>();
282
		Set<Reference> referenceSet = new HashSet<>();
284 283
		referenceSet.add(reference);
285 284
		if(includeSubordinateReferences){
286 285
			referenceSet.addAll(getSubordinateReferences(reference));
......
341 340
		return taxonBaseList;
342 341
	}
343 342

  
344
    /* (non-Javadoc)
345
     * @see eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao#getUuidAndAbbrevTitleCache(java.lang.Integer, java.lang.String)
346
     */
347 343
    @Override
348 344
    public List<UuidAndTitleCache<Reference>> getUuidAndAbbrevTitleCache(Integer limit, String pattern, ReferenceType refType) {
349 345
        Session session = getSession();
350
        Reference ref = ReferenceFactory.newArticle();
351 346

  
352 347
        Query query = null;
353 348
        if (pattern != null){
......
371 366

  
372 367
    }
373 368

  
374
    /* (non-Javadoc)
375
     * @see eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao#getUuidAndAbbrevTitleCache(java.lang.Integer, java.lang.String)
376
     */
377 369
    @Override
378 370
    public List<UuidAndTitleCache<Reference>> getUuidAndAbbrevTitleCacheForAuthor(Integer limit, String pattern, ReferenceType refType) {
379 371
        Session session = getSession();
380
        Reference ref = ReferenceFactory.newArticle();
381 372

  
382 373
        Query query = null;
383 374
        if (pattern != null){
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/taxon/TaxonDaoHibernateImpl.java
1069 1069
                }
1070 1070
            }
1071 1071

  
1072
            @SuppressWarnings("unchecked")
1072 1073
            List<TaxonRelationship> result = query.getResultList();
1073 1074
            defaultBeanInitializer.initializeAll(result, propertyPaths);
1074 1075

  
......
1076 1077
            // and we can't live without this functionality in CATE as it screws up the whole
1077 1078
            // taxon tree thing
1078 1079
            if(orderHints != null && !orderHints.isEmpty()) {
1079
                SortedSet<TaxonRelationship> sortedList = new TreeSet<TaxonRelationship>(new TaxonRelationshipFromTaxonComparator());
1080
                SortedSet<TaxonRelationship> sortedList = new TreeSet<>(new TaxonRelationshipFromTaxonComparator());
1080 1081
                sortedList.addAll(result);
1081
                return new ArrayList<TaxonRelationship>(sortedList);
1082
                return new ArrayList<>(sortedList);
1082 1083
            }
1083 1084

  
1084 1085
            return result;
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/query/OrderHint.java
146 146
             *
147 147
             * http://opensource.atlassian.com/projects/hibernate/browse/HHH-879
148 148
             */
149
            Order order;
150 149

  
151 150
            String[] assocObjs = getPropertyName().split("\\.");
152 151
            String path = "";
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonController.java
253 253
            HttpServletResponse response) throws IOException {
254 254
        logger.info("doGetFieldUnits() - " + request.getRequestURI());
255 255

  
256
        ModelAndView mv = new ModelAndView();
257

  
258 256
        TaxonBase<?> taxonBase = service.load(uuid);
259 257
        taxonBase = checkExistsAndAccess(taxonBase, NO_UNPUBLISHED, response);
260 258

  
cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalController.java
331 331
    private List<List<Synonym>> removeUnpublishedSynonyms(List<List<Synonym>> synonymyGroups) {
332 332
        List<List<Synonym>> result = new ArrayList<>();
333 333
        boolean isHomotypicToAccepted = true;
334

  
334 335
        for (List<Synonym> oldList : synonymyGroups){
335 336
            List<Synonym> newList = new ArrayList<>();
336 337
            for (Synonym oldSyn : oldList){
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/CdmApplicationController.java
39 39
import eu.etaxonomy.cdm.api.service.ICommonService;
40 40
import eu.etaxonomy.cdm.api.service.IDatabaseService;
41 41
import eu.etaxonomy.cdm.api.service.IDescriptionService;
42
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
42 43
import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;
43 44
import eu.etaxonomy.cdm.api.service.IEntityValidationService;
44 45
import eu.etaxonomy.cdm.api.service.IEventBaseService;
......
59 60
import eu.etaxonomy.cdm.api.service.IReferenceService;
60 61
import eu.etaxonomy.cdm.api.service.IRegistrationService;
61 62
import eu.etaxonomy.cdm.api.service.IRightsService;
62
import eu.etaxonomy.cdm.api.service.IService;
63 63
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
64 64
import eu.etaxonomy.cdm.api.service.ITaxonService;
65 65
import eu.etaxonomy.cdm.api.service.ITermService;
66 66
import eu.etaxonomy.cdm.api.service.IUserService;
67 67
import eu.etaxonomy.cdm.api.service.IVocabularyService;
68
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
69 68
import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
70 69
import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
71 70
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
......
651 650
		return configuration.getEntityConstraintViolationService();
652 651
	}
653 652

  
654

  
655
	@Override
656
	public final IService<CdmBase> getMainService(){
657
		return configuration.getMainService();
658
	}
659

  
660

  
661 653
	@Override
662 654
	public final IDescriptiveDataSetService getDescriptiveDataSetService(){
663 655
		return configuration.getDescriptiveDataSetService();
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/CdmRepository.java
60 60
import eu.etaxonomy.cdm.api.service.IReferenceService;
61 61
import eu.etaxonomy.cdm.api.service.IRegistrationService;
62 62
import eu.etaxonomy.cdm.api.service.IRightsService;
63
import eu.etaxonomy.cdm.api.service.IService;
64 63
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
65 64
import eu.etaxonomy.cdm.api.service.ITaxonService;
66 65
import eu.etaxonomy.cdm.api.service.ITermService;
......
69 68
import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
70 69
import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
71 70
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
72
import eu.etaxonomy.cdm.model.common.CdmBase;
73 71
import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;
74 72

  
75 73
/**
......
187 185
	@Autowired
188 186
    private SessionFactory factory;
189 187

  
190
	//	@Autowired
191
	//@Qualifier("mainService")
192
	private IService<CdmBase> mainService;
193

  
194 188
	@Autowired
195 189
	private IDescriptiveDataSetService descriptiveDataSetService;
196 190

  
......
336 330
		return this.grantedAuthorityService;
337 331
	}
338 332

  
339
	@Override
340
	public IService<CdmBase> getMainService(){
341
		return this.mainService;
342
	}
343

  
344 333
	@Override
345 334
	public PlatformTransactionManager getTransactionManager(){
346 335
		return this.transactionManager;
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/application/ICdmRepository.java
21 21
import eu.etaxonomy.cdm.api.service.ICommonService;
22 22
import eu.etaxonomy.cdm.api.service.IDatabaseService;
23 23
import eu.etaxonomy.cdm.api.service.IDescriptionService;
24
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
24 25
import eu.etaxonomy.cdm.api.service.IEntityConstraintViolationService;
25 26
import eu.etaxonomy.cdm.api.service.IEntityValidationService;
26 27
import eu.etaxonomy.cdm.api.service.IEventBaseService;
......
41 42
import eu.etaxonomy.cdm.api.service.IReferenceService;
42 43
import eu.etaxonomy.cdm.api.service.IRegistrationService;
43 44
import eu.etaxonomy.cdm.api.service.IRightsService;
44
import eu.etaxonomy.cdm.api.service.IService;
45 45
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
46 46
import eu.etaxonomy.cdm.api.service.ITaxonService;
47 47
import eu.etaxonomy.cdm.api.service.ITermService;
48 48
import eu.etaxonomy.cdm.api.service.IUserService;
49 49
import eu.etaxonomy.cdm.api.service.IVocabularyService;
50
import eu.etaxonomy.cdm.api.service.IDescriptiveDataSetService;
51 50
import eu.etaxonomy.cdm.api.service.molecular.IAmplificationService;
52 51
import eu.etaxonomy.cdm.api.service.molecular.IPrimerService;
53 52
import eu.etaxonomy.cdm.api.service.molecular.ISequenceService;
54
import eu.etaxonomy.cdm.model.common.CdmBase;
55 53
import eu.etaxonomy.cdm.persistence.hibernate.permission.CdmPermissionEvaluator;
56 54
import eu.etaxonomy.cdm.persistence.hibernate.permission.ICdmPermissionEvaluator;
57 55

  
......
210 208
	public IGrantedAuthorityService getGrantedAuthorityService();
211 209

  
212 210

  
213
	/**
214
	 * @return
215
	 */
216
	public IService<CdmBase> getMainService();
217

  
218

  
219 211
	/**
220 212
	 * @return
221 213
	 */
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IService.java
18 18

  
19 19
import org.hibernate.LockOptions;
20 20
import org.hibernate.Session;
21
import org.hibernate.event.spi.MergeEvent;
21 22

  
22 23
import eu.etaxonomy.cdm.api.service.pager.Pager;
23 24
import eu.etaxonomy.cdm.model.common.ICdmBase;
25
import eu.etaxonomy.cdm.persistence.dao.initializer.IBeanInitializer;
24 26
import eu.etaxonomy.cdm.persistence.dto.MergeResult;
27
import eu.etaxonomy.cdm.persistence.hibernate.PostMergeEntityListener;
25 28
import eu.etaxonomy.cdm.persistence.query.Grouping;
26 29
import eu.etaxonomy.cdm.persistence.query.OrderHint;
27 30

  
......
285 288
     */
286 289
    public UUID refresh(T persistentObject);
287 290

  
288
    public List<T> rows(String tableName, int limit, int start);
289

  
290 291
    /**
291 292
     * Save a collection containing new entities (persists the entities)
292 293
     * @param newInstances the new entities to be persisted
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IdentifiableServiceBase.java
71 71
	public Pager<Rights> getRights(T t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
72 72
        Integer numberOfResults = dao.countRights(t);
73 73

  
74
		List<Rights> results = new ArrayList<Rights>();
74
		List<Rights> results = new ArrayList<>();
75 75
		if(numberOfResults > 0) { // no point checking again //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
76 76
			results = dao.getRights(t, pageSize, pageNumber,propertyPaths);
77 77
		}
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/OccurrenceServiceImpl.java
767 767

  
768 768
        for (Taxon taxon : taxa) {
769 769
            List<T> perTaxonOccurrences = dao.listByAssociatedTaxon(type, taxon, null, null, orderHints, propertyPaths);
770
            for (SpecimenOrObservationBase o : perTaxonOccurrences) {
770
            for (SpecimenOrObservationBase<?> o : perTaxonOccurrences) {
771 771
                occurrenceIds.add(o.getId());
772 772
            }
773 773
        }
774 774
        occurrences = (List<T>) dao.loadList(occurrenceIds, propertyPaths);
775 775

  
776
        return new DefaultPagerImpl<T>(pageNumber, occurrenceIds.size(), pageSize, occurrences);
776
        return new DefaultPagerImpl<T>(pageNumber, Long.valueOf(occurrenceIds.size()), pageSize, occurrences);
777 777

  
778 778
    }
779 779

  
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ServiceBase.java
33 33
import eu.etaxonomy.cdm.persistence.query.Grouping;
34 34
import eu.etaxonomy.cdm.persistence.query.OrderHint;
35 35

  
36
public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T>> implements IService<T>, ApplicationContextAware {
36
public abstract class ServiceBase<T extends CdmBase, DAO extends ICdmEntityDao<T>>
37
            implements IService<T>, ApplicationContextAware {
38

  
37 39
    @SuppressWarnings("unused")
38 40
    private static final Logger logger = Logger.getLogger(ServiceBase.class);
39 41

  
......
252 254
        return dao.refresh(persistentObject);
253 255
    }
254 256

  
255
    /**
256
     * FIXME Candidate for harmonization
257
     * is this method used, and if so, should it be exposed in the service layer?
258
     * it seems a bit incongruous that we use an ORM to hide the fact that there is a
259
     * database, then expose a method that talks about "rows" . . .
260
     */
261
    @Override
262
    @Transactional(readOnly = true)
263
    public List<T> rows(String tableName, int limit, int start) {
264
        return dao.rows(tableName, limit, start);
265
    }
266

  
267 257
    @Override
268 258
    @Transactional(readOnly = false)
269 259
    public Map<UUID, T> save(Collection<T> newInstances) {
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonServiceImpl.java
550 550

  
551 551

  
552 552
    /**
553
     * recursively collect related taxa for the given <code>taxon</code> . The returned list will also include the
553
     * Recursively collect related taxa for the given <code>taxon</code> . The returned list will also include the
554 554
     *  <code>taxon</code> supplied as parameter.
555 555
     *
556 556
     * @param taxon

Also available in: Unified diff