add MarkerTypes to descriptionService scopes
[cdmlib.git] / cdmlib-ext / src / main / java / eu / etaxonomy / cdm / ext / geo / EditGeoService.java
index d0536567794ca5b6c079aacc551160dfd9199d13..0605b428dc6044349590696a74cbd5ff8112fa6f 100644 (file)
@@ -21,13 +21,13 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;\r
 import org.springframework.transaction.annotation.Transactional;\r
 \r
-import eu.etaxonomy.cdm.api.service.ITermService;\r
 import eu.etaxonomy.cdm.model.common.Language;\r
 import eu.etaxonomy.cdm.model.description.Distribution;\r
 import eu.etaxonomy.cdm.model.description.Feature;\r
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;\r
 import eu.etaxonomy.cdm.model.description.PresenceAbsenceTermBase;\r
 import eu.etaxonomy.cdm.model.description.TaxonDescription;\r
+import eu.etaxonomy.cdm.model.location.NamedArea;\r
 import eu.etaxonomy.cdm.model.location.Point;\r
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnitBase;\r
 import eu.etaxonomy.cdm.model.occurrence.FieldObservation;\r
@@ -52,6 +52,10 @@ public class EditGeoService implements IEditGeoService{
        @Autowired\r
        private IDescriptionDao dao;\r
        \r
+\r
+    @Autowired\r
+    private IGeoServiceAreaMapping areaMapping;\r
+       \r
        private IDefinedTermDao termDao;\r
                \r
        @Autowired\r
@@ -88,7 +92,7 @@ public class EditGeoService implements IEditGeoService{
                if(backLayer == null){\r
                        backLayer = DEFAULT_BACK_LAYER;\r
                }\r
-               String uriParams = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distributions, presenceAbsenceTermColors, width, height, bbox, backLayer, langs);\r
+               String uriParams = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distributions, areaMapping, presenceAbsenceTermColors, width, height, bbox, backLayer, null, langs);\r
 \r
                return uriParams;\r
        }\r
@@ -116,7 +120,7 @@ public class EditGeoService implements IEditGeoService{
                        String backLayer,\r
                        List<Language> langs) {\r
                \r
-               List<TaxonDescription> taxonDescriptions = dao.getTaxonDescriptions(taxon, null, null, null, null, null);\r
+               List<TaxonDescription> taxonDescriptions = dao.getTaxonDescriptions(taxon, null, null, null, null, null, null);\r
                \r
                Set<Distribution> distCollection = new HashSet<Distribution>();\r
                // get descriptions elements for each description\r
@@ -128,8 +132,8 @@ public class EditGeoService implements IEditGeoService{
                if(backLayer == null){\r
                        backLayer = DEFAULT_BACK_LAYER;\r
                }\r
-               String uriParams = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distCollection,\r
-                       presenceAbsenceTermColors, width, height, bbox, backLayer, langs);\r
+               String uriParams = EditGeoServiceUtilities.getDistributionServiceRequestParameterString(distCollection,areaMapping,\r
+                       presenceAbsenceTermColors, width, height, bbox, backLayer, null, langs);\r
 \r
                return uriParams;\r
        }\r
@@ -175,21 +179,32 @@ public class EditGeoService implements IEditGeoService{
                        List<Point> derivedUnitPoints) {\r
 \r
                Set<SpecimenOrObservationBase> originals = derivedUnit.getOriginals();\r
-               for (SpecimenOrObservationBase original : originals) {\r
-                       if (original instanceof FieldObservation) {\r
-                               Point point =  ((FieldObservation) original).getGatheringEvent().getExactLocation();\r
-                               if(point != null){\r
-                                       //FIXME: remove next statement after DerivedUnitFacade or ABCD import is fixed\r
-                                       if(point.getLatitude() == 0.0 && point.getLongitude() == 0.0){\r
-                                               continue;\r
+               if(originals != null){\r
+                       for (SpecimenOrObservationBase original : originals) {\r
+                               if (original instanceof FieldObservation) {\r
+                                       Point point =  ((FieldObservation) original).getGatheringEvent().getExactLocation();\r
+                                       if(point != null){\r
+                                               //FIXME: remove next statement after DerivedUnitFacade or ABCD import is fixed\r
+                                               if(point.getLatitude() == 0.0 && point.getLongitude() == 0.0){\r
+                                                       continue;\r
+                                               }\r
+                                               derivedUnitPoints.add(point);\r
                                        }\r
-                                       derivedUnitPoints.add(point);\r
+                               } else {\r
+                                       registerDerivedUnitLocations((DerivedUnitBase) original, derivedUnitPoints);\r
                                }\r
-                       } else {\r
-                               registerDerivedUnitLocations((DerivedUnitBase) original, derivedUnitPoints);\r
                        }\r
                }\r
 \r
        }\r
 \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.ext.geo.IEditGeoService#setMapping(eu.etaxonomy.cdm.model.location.NamedArea, eu.etaxonomy.cdm.ext.geo.GeoServiceArea)\r
+        */\r
+       @Override\r
+       public void setMapping(NamedArea area, GeoServiceArea geoServiceArea) {\r
+               areaMapping.set(area, geoServiceArea);\r
+               \r
+       }\r
+\r
 }\r