1 package de.tivsource.page.admin.converter;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Map;
6
7 import javax.naming.Context;
8 import javax.naming.InitialContext;
9
10 import org.apache.struts2.util.StrutsTypeConverter;
11
12 import com.opensymphony.xwork2.conversion.TypeConversionException;
13
14 import de.tivsource.page.dao.administration.RoleDaoLocal;
15 import de.tivsource.page.entity.administration.Role;
16
17
18 public class RoleListConverter extends StrutsTypeConverter {
19
20 @SuppressWarnings("rawtypes")
21 @Override
22 public Object convertFromString(Map context, String[] values, Class toClass) {
23
24 List<Role> roleList = null;
25
26 if(values.length<=0) {
27 throw new TypeConversionException("Kein gültigen Rollen angegeben");
28 }
29
30 for ( int i = 0; i < values.length; i++ ){
31
32 if(i==0){
33 roleList = new ArrayList<Role>();
34 }
35
36 String roleId = values[i];
37 try {
38 RoleDaoLocal roleDaoLocal;
39 Context earContext = new InitialContext();
40 roleDaoLocal = (RoleDaoLocal) earContext.lookup("java:global/tiv-page/dao-0.0.1/RoleDao");
41 Role role = roleDaoLocal.findByUuid(roleId);
42 roleList.add(role);
43 }
44 catch (Exception e) {
45 e.printStackTrace();
46 throw new RuntimeException(e);
47 }
48 }
49
50 if(roleList.size()<=0) {
51 throw new TypeConversionException("Kein gültige Role - UUID");
52 }
53
54 return roleList;
55 }
56
57 @SuppressWarnings("rawtypes")
58 @Override
59 public String convertToString(Map context, Object o) {
60 Role role = (Role)o;
61 return ""+role.getUuid();
62 }
63 }