remove import
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / persistence / dao / hibernate / taxon / TaxonNodeDaoHibernateImpl.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11 package eu.etaxonomy.cdm.persistence.dao.hibernate.taxon;
12
13 import java.util.List;
14 import java.util.UUID;
15
16 import org.apache.log4j.Logger;
17 import org.hibernate.Query;
18 import org.hibernate.Session;
19 import org.springframework.beans.factory.annotation.Autowired;
20 import org.springframework.beans.factory.annotation.Qualifier;
21 import org.springframework.stereotype.Repository;
22
23 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
24 import eu.etaxonomy.cdm.model.taxon.Taxon;
25 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
26 import eu.etaxonomy.cdm.persistence.dao.hibernate.common.AnnotatableDaoImpl;
27 import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonDao;
28 import eu.etaxonomy.cdm.persistence.dao.taxon.ITaxonNodeDao;
29
30 /**
31 * @author a.mueller
32 * @created 16.06.2009
33 * @version 1.0
34 */
35 @Repository
36 @Qualifier("taxonNodeDaoHibernateImpl")
37 public class TaxonNodeDaoHibernateImpl extends AnnotatableDaoImpl<TaxonNode>
38 implements ITaxonNodeDao {
39 @SuppressWarnings("unused")
40 private static final Logger logger = Logger.getLogger(TaxonNodeDaoHibernateImpl.class);
41
42 @Autowired
43 private ITaxonDao taxonDao;
44
45 public TaxonNodeDaoHibernateImpl() {
46 super(TaxonNode.class);
47 }
48 @Override
49 public UUID delete(TaxonNode persistentObject){
50 Taxon taxon = persistentObject.getTaxon();
51 taxon = HibernateProxyHelper.deproxy(taxon, Taxon.class);
52
53 Session session = this.getSession();
54 Query query = session.createQuery("from TaxonNode t where t.taxon = :taxon");
55 query.setParameter("taxon", taxon);
56 List result = query.list();
57 persistentObject.delete();
58 super.delete(persistentObject);
59
60 if (result.size()==1){
61 taxonDao.delete(taxon);
62 }
63
64 taxon = (Taxon)taxonDao.findByUuid(taxon.getUuid());
65 return persistentObject.getUuid();
66 }
67
68 }