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;
import eu.etaxonomy.cdm.persistence.dao.common.ICdmGenericDao;
+import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;
/**
* @author a.mueller
@Autowired
private ICdmGenericDao dao;
+ @Autowired
+ private ITaxonDao taxonDao;
+
+ @Autowired()
+ @Qualifier("cdmRepository")
+ private ICdmRepository repository;
+
@Override
public TaxonPageDto taxonPageDto(TaxonPageDtoConfiguration config) {
- TaxonPageDto dto = new TaxonPageDto();
+
+ PortalDtoLoader loader = new PortalDtoLoader(repository);
+ Taxon taxon = (Taxon)taxonDao.load(config.getTaxonUuid());
+ TaxonPageDto dto = null;
+ try {
+ dto = loader.load(taxon, config);
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if (dto != null) {
+ return dto;
+ }else if (true) {
+ return dto;
+ }
+
+ dto = new TaxonPageDto();
//taxon data
String taxonHql = " SELECT t.id as id, t.uuid as uuid, t.titleCache as taxonLabel,"
+ " 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.taxonLabel = (String)hqlResult.get(0)[2];
- dto.nameLabel = (String)hqlResult.get(0)[3];
- dto.typedTaxonLabel = null;
- dto.typedNameLabel = null;
+ 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.setTaggedLabel(null);
//taxonNodes
+ " 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