removing init strategies which are replaces by MediaAutoInitializer
[cdmlib.git] / cdmlib-remote / src / main / java / eu / etaxonomy / cdm / remote / controller / TaxonPortalController.java
index 4ae9978db8e286e3a33e1625dddb0a2241d30e32..926fadfaaf141d40e5381c890076cf79723fa5e0 100644 (file)
@@ -50,8 +50,8 @@ import eu.etaxonomy.cdm.api.service.IService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;\r
 import eu.etaxonomy.cdm.api.service.IClassificationService;\r
 import eu.etaxonomy.cdm.api.service.ITermService;\r
-import eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator;\r
-import eu.etaxonomy.cdm.api.service.config.TaxonServiceConfiguratorImpl;\r
+import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;\r
+import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;\r
 import eu.etaxonomy.cdm.api.service.pager.Pager;\r
 import eu.etaxonomy.cdm.api.service.search.SearchResult;\r
 import eu.etaxonomy.cdm.database.UpdatableRoutingDataSource;\r
@@ -68,6 +68,7 @@ import eu.etaxonomy.cdm.model.description.TaxonDescription;
 import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.location.NamedAreaLevel;\r
 import eu.etaxonomy.cdm.model.media.Media;\r
+import eu.etaxonomy.cdm.model.media.MediaRepresentation;\r
 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;\r
 import eu.etaxonomy.cdm.model.media.MediaUtils;\r
 import eu.etaxonomy.cdm.model.name.NameRelationship;\r
@@ -149,8 +150,7 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
             // taxon descriptions\r
             "descriptions.elements.area.$",\r
             "descriptions.elements.multilanguageText",\r
-            "descriptions.elements.media.representations.parts",\r
-            "descriptions.elements.media.title",\r
+            "descriptions.elements.media",\r
 \r
             });\r
 \r
@@ -249,8 +249,7 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
             "elements.sources.citation.authorTeam",\r
             "elements.sources.nameUsedInSource.originalNameString",\r
             "elements.multilanguageText",\r
-            "elements.media.representations.parts",\r
-            "elements.media.title",\r
+            "elements.media",\r
     });\r
 \r
     protected static final List<String> TAXONUSEDESCRIPTION_INIT_STRATEGY = Arrays.asList(new String []{\r
@@ -263,9 +262,8 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
             "elements.states.$",\r
             "elements.sources.citation.authorTeam",\r
             "elements.sources.nameUsedInSource.originalNameString",\r
-            /*//"elements.multilanguageText",\r
-            "elements.media.representations.parts",*/\r
-            "elements.media.title",\r
+            "elements.multilanguageText",\r
+            "elements.media",\r
     });\r
 \r
     protected static final List<String> DESCRIPTION_ELEMENT_INIT_STRATEGY = Arrays.asList(new String []{\r
@@ -273,8 +271,7 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
             "sources.citation.authorTeam",\r
             "sources.nameUsedInSource.originalNameString",\r
             "multilanguageText",\r
-            "media.representations.parts",\r
-            "media.title",\r
+            "media",\r
     });\r
 \r
 \r
@@ -283,21 +280,19 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
 //                     "feature",\r
 //                     "elements.$",\r
 //                     "elements.multilanguageText",\r
-//                     "elements.media.representations.parts",\r
-//                     "elements.media.title",\r
+//                     "elements.media",\r
 //     });\r
 \r
     protected static final List<String> TAXONDESCRIPTION_MEDIA_INIT_STRATEGY = Arrays.asList(new String []{\r
-            "elements.media.representations.parts",\r
-            "elements.media.title"\r
+            "elements.media"\r
 \r
     });\r
 \r
     private static final List<String> TYPEDESIGNATION_INIT_STRATEGY = Arrays.asList(new String []{\r
-            //"$",\r
             "typeSpecimen.$",\r
             "citation.authorTeam.$",\r
             "typeName",\r
+            "typeStatus"\r
     });\r
 \r
     protected static final List<String> TAXONNODE_WITHTAXON_INIT_STRATEGY = Arrays.asList(new String []{\r
@@ -407,7 +402,7 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
         PagerParameters pagerParams = new PagerParameters(pageSize, pageNumber);\r
         pagerParams.normalizeAndValidate(response);\r
 \r
-        ITaxonServiceConfigurator config = new TaxonServiceConfiguratorImpl();\r
+        IFindTaxaAndNamesConfigurator config = new FindTaxaAndNamesConfiguratorImpl();\r
         config.setPageNumber(pagerParams.getPageIndex());\r
         config.setPageSize(pagerParams.getPageSize());\r
         config.setTitleSearchString(query);\r
@@ -982,40 +977,19 @@ public class TaxonPortalController extends BaseController<TaxonBase, ITaxonServi
     private List<Media> getMediaForTaxon(Taxon taxon, Class<? extends MediaRepresentationPart> type, String[] mimeTypes,\r
             Integer widthOrDuration, Integer height, Integer size){\r
 \r
-        Pager<TaxonDescription> p =\r
-            descriptionService.getTaxonDescriptions(taxon, null, null, null, null, TAXONDESCRIPTION_MEDIA_INIT_STRATEGY);\r
-\r
-        // pars the media and quality parameters\r
-\r
-\r
-        // collect all media of the given taxon\r
-        boolean limitToGalleries = false;\r
-        List<Media> taxonMedia = new ArrayList<Media>();\r
-        List<Media> taxonGalleryMedia = new ArrayList<Media>();\r
-        for(TaxonDescription desc : p.getRecords()){\r
+        List<Media> taxonGalleryMedia = service.listTaxonDescriptionMedia(taxon, false, TAXONDESCRIPTION_MEDIA_INIT_STRATEGY);\r
 \r
-            if(desc.isImageGallery()){\r
-                for(DescriptionElementBase element : desc.getElements()){\r
-                    for(Media media : element.getMedia()){\r
-                        taxonGalleryMedia.add(media);\r
-                    }\r
-                }\r
-            } else if(!limitToGalleries){\r
-                for(DescriptionElementBase element : desc.getElements()){\r
-                    for(Media media : element.getMedia()){\r
-                        taxonMedia.add(media);\r
-                    }\r
-                }\r
-            }\r
+        Map<Media, MediaRepresentation> mediaRepresentationMap = MediaUtils.findPreferredMedia(taxonGalleryMedia, type,\r
+                mimeTypes, null, widthOrDuration, height, size);\r
 \r
+        List<Media> filteredMedia = new ArrayList<Media>(mediaRepresentationMap.size());\r
+        for(Media media : mediaRepresentationMap.keySet()){\r
+            media.getRepresentations().clear();\r
+            media.addRepresentation(mediaRepresentationMap.get(media));\r
+            filteredMedia.add(media);\r
         }\r
 \r
-        taxonGalleryMedia.addAll(taxonMedia);\r
-\r
-        List<Media> returnMedia = MediaUtils.findPreferredMedia(taxonGalleryMedia, type,\r
-                mimeTypes, null, widthOrDuration, height, size);\r
-\r
-        return returnMedia;\r
+        return filteredMedia;\r
     }\r
 \r
 \r