ref #10222 add nameType and loading to taxon dto and add nameUuid loading
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / portal / PortalDtoServiceImpl.java
index 0346053855621096b361496f95c99ea97f19ffb8..fdc589ff1318b9221c651d83c8562f55036d834f 100644 (file)
@@ -12,9 +12,11 @@ import java.util.List;
 import java.util.UUID;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import eu.etaxonomy.cdm.api.application.ICdmRepository;
 import eu.etaxonomy.cdm.api.dto.portal.TaxonPageDto;
 import eu.etaxonomy.cdm.api.dto.portal.config.TaxonPageDtoConfiguration;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
@@ -35,11 +37,15 @@ public class PortalDtoServiceImpl implements IPortalDtoService {
     @Autowired
     private ITaxonDao taxonDao;
 
+    @Autowired()
+    @Qualifier("cdmRepository")
+    private ICdmRepository repository;
+
     @Override
     public TaxonPageDto taxonPageDto(TaxonPageDtoConfiguration config) {
 
-        PortalDtoLoader loader = new PortalDtoLoader();
-        Taxon taxon = (Taxon)taxonDao.load(config.taxonUuid);
+        PortalDtoLoader loader = new PortalDtoLoader(repository);
+        Taxon taxon = (Taxon)taxonDao.load(config.getTaxonUuid());
         TaxonPageDto dto = null;
         try {
             dto = loader.load(taxon, config);
@@ -49,6 +55,8 @@ public class PortalDtoServiceImpl implements IPortalDtoService {
         }
         if (dto != null) {
             return dto;
+        }else if (true) {
+            return dto;
         }
 
         dto = new TaxonPageDto();
@@ -59,13 +67,14 @@ public class PortalDtoServiceImpl implements IPortalDtoService {
                 + " FROM Taxon t JOIN t.name as n "
                 + " WHERE t.uuid = :uuid ";
         //TODO singleResult
-        List<Object[]> hqlResult = dao.getHqlResult(taxonHql, new Object[] {config.taxonUuid}, Object[].class);
-        dto.id = (int)hqlResult.get(0)[0];
-        dto.uuid = (UUID)hqlResult.get(0)[1];
-        dto.setTaxonLabel((String)hqlResult.get(0)[2]);
+        List<Object[]> hqlResult = dao.getHqlResult(taxonHql, new Object[] {config.getTaxonUuid()}, Object[].class);
+        dto.setId((int)hqlResult.get(0)[0]);
+        dto.setUuid((UUID)hqlResult.get(0)[1]);
+        dto.setLabel((String)hqlResult.get(0)[2]);
         dto.setNameLabel((String)hqlResult.get(0)[3]);
-        dto.setTypedTaxonLabel(null);
-        dto.setTypedNameLabel(null);
+//        dto.setTypedTaxonLabel(null);
+//        dto.setTypedNameLabel(null);
+        dto.setTaggedLabel(null);
 
         //taxonNodes
 
@@ -76,7 +85,7 @@ public class PortalDtoServiceImpl implements IPortalDtoService {
                 + "    n.titleCache as nameLabel, n.homotypicalGroup.uuid "
                 + " FROM Synonym s JOIN s.acceptedTaxon t JOIN s.name as n "
                 + " WHERE t.uuid = :uuid ";
-        List<Object[]> sysnonymsResult = dao.getHqlResult(synonymsHql, new Object[] {config.taxonUuid}, Object[].class);
+        List<Object[]> sysnonymsResult = dao.getHqlResult(synonymsHql, new Object[] {config.getTaxonUuid()}, Object[].class);
 
         //facts