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 }