View Javadoc

1   package com.atlassian.user.impl.hibernate;
2   
3   import java.util.Iterator;
4   
5   import net.sf.hibernate.HibernateException;
6   import net.sf.hibernate.Query;
7   import net.sf.hibernate.Session;
8   import net.sf.hibernate.SessionFactory;
9   
10  import org.springframework.orm.hibernate.HibernateCallback;
11  import org.springframework.orm.hibernate.SessionFactoryUtils;
12  import org.springframework.orm.hibernate.support.HibernateDaoSupport;
13  
14  import com.atlassian.user.ExternalEntity;
15  
16  public class DefaultExternalEntityDAO extends HibernateDaoSupport implements ExternalEntityDAO
17  {
18      /**
19       *  @deprecated since 1.29
20       */
21      public static final String EXTERNAL_ENTITY_PREFIX = "ATLUSER_";
22      public static final String EXTERNAL_ENTITY_TYPE = "EXT";
23  
24      public DefaultExternalEntityDAO(SessionFactory sessionFactory)
25      {
26          setSessionFactory(sessionFactory);
27      }
28  
29      public ExternalEntity getExternalEntity(final String externalEntityName)
30      {
31          return (ExternalEntity) getHibernateTemplate().execute(new HibernateCallback()
32          {
33              public Object doInHibernate(Session session) throws HibernateException
34              {
35                  Query queryObject = session.getNamedQuery("atluser.externalEntity_findExternalEntity");
36                  SessionFactoryUtils.applyTransactionTimeout(queryObject, getSessionFactory());
37  
38                  Iterator iterator = queryObject.setString("externalEntityName", externalEntityName).iterate();
39                  if (iterator.hasNext())
40                      return iterator.next();
41                  else
42                      return null;
43              }
44          });
45      }
46  
47      public void removeExternalEntity(String externalEntityName)
48      {
49          getHibernateTemplate().delete(getExternalEntity(externalEntityName));
50          getHibernateTemplate().flush();
51      }
52  
53      public void saveExternalEntity(ExternalEntity externalEntity)
54      {
55          getHibernateTemplate().save(externalEntity);
56          getHibernateTemplate().flush();
57      }
58  
59  
60      public ExternalEntity createExternalEntity(String externalEntityName)
61      {
62          DefaultHibernateExternalEntity externalEntity = new DefaultHibernateExternalEntity();
63          externalEntity.setName(externalEntityName);
64          externalEntity.setType(EXTERNAL_ENTITY_TYPE);
65          saveExternalEntity(externalEntity);
66          return externalEntity;
67      }
68  }