reverting cdm application / controller refactoring and simply extending the CdmApplic...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / store / SearchManager.java
index d77912b8d2deaea5e8b5fef2c9eb78fdba545724..99eb03129d162278a8d820688d603b4f4840ea86 100644 (file)
@@ -186,13 +186,21 @@ public class SearchManager {
        @Deprecated
        //TODO: method needs to be optimized with a direct SQL query instead of iterating over all specimens
     public List<SpecimenOrObservationBase> findOccurrencesByType(IIdentifiableEntityServiceConfigurator configurator, SpecimenOrObservationType type){
-           List<SpecimenOrObservationBase> occurrences = new ArrayList<SpecimenOrObservationBase>();
-           for(SpecimenOrObservationBase occurrence:findOccurrences(configurator, true)){
-               if(occurrence.getRecordBasis()==type){
-                   occurrences.add(occurrence);
+           List<SpecimenOrObservationBase> filteredOccurrences = new ArrayList<SpecimenOrObservationBase>();
+           List<SpecimenOrObservationBase> occurrences = findOccurrences(configurator, true);
+           if(type!=null){
+               for(SpecimenOrObservationBase occurrence:occurrences){
+                   if(occurrence.getRecordBasis().equals(type)
+                           || occurrence.getRecordBasis().isKindOf(type)
+                           || type == SpecimenOrObservationType.Unknown){
+                       filteredOccurrences.add(occurrence);
+                   }
                }
            }
-           return occurrences;
+           else{
+               filteredOccurrences = occurrences;
+           }
+           return filteredOccurrences;
        }
 
        public List<User> findUsers(IIdentifiableEntityServiceConfigurator configurator){