View Javadoc
1   // license-header java merge-point
2   /**
3    * This is only generated once! It will never be overwritten.
4    * You can (and have to!) safely modify it by hand.
5    */
6   package org.andromda.timetracker.domain;
7   
8   import java.util.Collection;
9   import java.util.Set;
10  import java.util.TreeSet;
11  import org.andromda.timetracker.vo.UserDetailsVO;
12  import org.andromda.timetracker.vo.UserRoleVO;
13  import org.andromda.timetracker.vo.UserVO;
14  
15  /**
16   * @see User
17   */
18  public class UserDaoImpl
19      extends UserDaoBase
20  {
21      /**
22       * @see UserDao#toUserVO(User, org.andromda.timetracker.vo.UserVO)
23       */
24      @Override
25      public void toUserVO(
26          User sourceEntity,
27          UserVO targetVO)
28      {
29          // TODO verify behavior of toUserVO
30          super.toUserVO(sourceEntity, targetVO);
31          // WARNING! No conversion for targetVO.id (can't convert sourceEntity.getId():java.lang.Long to java.lang.Long
32          // WARNING! No conversion for targetVO.username (can't convert sourceEntity.getUsername():java.lang.String to java.lang.String
33          // WARNING! No conversion for targetVO.firstName (can't convert sourceEntity.getFirstName():java.lang.String to java.lang.String
34          // WARNING! No conversion for targetVO.lastName (can't convert sourceEntity.getLastName():java.lang.String to java.lang.String
35      }
36  
37      /**
38       * @see UserDao#toUserVO(User)
39       */
40      @Override
41      public UserVO toUserVO(final User entity)
42      {
43          // TODO verify behavior of toUserVO
44          return super.toUserVO(entity);
45      }
46  
47      /**
48       * Retrieves the entity object that is associated with the specified value object
49       * from the object store. If no such entity object exists in the object store,
50       * a new, blank entity is created
51       */
52      private User loadUserFromUserVO(UserVO userVO)
53      {
54          // TODO implement loadUserFromUserVO
55          throw new java.lang.UnsupportedOperationException("loadUserFromUserVO(UserVO) not yet implemented.");
56  
57          /* A typical implementation looks like this:
58          User user = this.load(userVO.getId());
59          if (user == null)
60          {
61              user = User.Factory.newInstance();
62          }
63          return user;
64          */
65      }
66  
67      /**
68       * @see UserDao#userVOToEntity(UserVO)
69       */
70      @Override
71      public User userVOToEntity(UserVO userVO)
72      {
73          // TODO verify behavior of userVOToEntity
74          User entity = this.loadUserFromUserVO(userVO);
75          this.userVOToEntity(userVO, entity, true);
76          return entity;
77      }
78  
79      /**
80       * @see UserDao#userVOToEntity(UserVO, User, boolean)
81       */
82      @Override
83      public void userVOToEntity(
84          UserVO sourceVO,
85          User targetEntity,
86          boolean copyIfNull)
87      {
88          // TODO verify behavior of userVOToEntity
89          super.userVOToEntity(sourceVO, targetEntity, copyIfNull);
90          // No conversion for targetEntity.username (can't convert sourceVO.getUsername():java.lang.String to java.lang.String
91          // No conversion for targetEntity.firstName (can't convert sourceVO.getFirstName():java.lang.String to java.lang.String
92          // No conversion for targetEntity.lastName (can't convert sourceVO.getLastName():java.lang.String to java.lang.String
93      }
94  
95      /**
96       * @see UserDao#toUserDetailsVO(User, UserDetailsVO)
97       */
98      @Override
99      public void toUserDetailsVO(
100         User sourceEntity,
101         UserDetailsVO targetVO)
102     {
103         super.toUserDetailsVO(sourceEntity, targetVO);
104 
105         // Convert roles
106         Collection<UserRole> srcRoles = sourceEntity.getRoles();
107         UserRoleVO[] targetRoles = new UserRoleVO[srcRoles.size()];
108         int i=0;
109         for (Object srcRole : srcRoles)
110         {
111             targetRoles[i] = getUserRoleDao().toUserRoleVO((UserRole)srcRole);
112             i++;
113         }
114         targetVO.setRoles(targetRoles);
115     }
116 
117     /**
118      * Retrieves the entity object that is associated with the specified value object
119      * from the object store. If no such entity object exists in the object store,
120      * a new, blank entity is created
121      */
122     private User loadUserFromUserDetailsVO(UserDetailsVO userDetailsVO)
123     {
124         User user = null;
125         if (userDetailsVO != null && userDetailsVO.getId() != null)
126         {
127             try
128             {
129                 user = this.load(userDetailsVO.getId());
130             }
131             catch (UserDaoException e)
132             {
133                 // user id no set - OK to ignore
134             }
135         }
136         if (user == null)
137         {
138             user = new User();
139         }
140         return user;
141     }
142 
143     /**
144      * @see UserDao#userDetailsVOToEntity(UserDetailsVO)
145      */
146     @Override
147     public User userDetailsVOToEntity(UserDetailsVO userDetailsVO)
148     {
149         User entity = this.loadUserFromUserDetailsVO(userDetailsVO);
150         this.userDetailsVOToEntity(userDetailsVO, entity, true);
151         return entity;
152     }
153 
154     /**
155      * @see UserDao#userDetailsVOToEntity(UserDetailsVO, User, boolean)
156      */
157     @Override
158     public void userDetailsVOToEntity(
159         UserDetailsVO sourceVO,
160         User targetEntity,
161         boolean copyIfNull)
162     {
163         // @todo verify behavior of userDetailsVOToEntity
164         super.userDetailsVOToEntity(sourceVO, targetEntity, copyIfNull);
165 
166         if (sourceVO.getRoles().length > 0)
167         {
168             Set<UserRole> roles = new TreeSet<UserRole>();
169 
170             for (UserRoleVO userRoleVO : sourceVO.getRoles())
171             {
172                 System.out.println(" user role : " + userRoleVO.getRole());
173                 roles.add(this.getUserRoleDao().userRoleVOToEntity(userRoleVO));
174             }
175             targetEntity.setRoles(roles);
176         }
177     }
178 }