1 package de.tivsource.page.converter;
2
3 import java.util.Map;
4 import java.util.SortedSet;
5 import java.util.TreeSet;
6
7 import javax.naming.Context;
8 import javax.naming.InitialContext;
9
10 import org.apache.logging.log4j.LogManager;
11 import org.apache.logging.log4j.Logger;
12 import org.apache.struts2.util.StrutsTypeConverter;
13
14 import com.opensymphony.xwork2.conversion.TypeConversionException;
15
16 import de.tivsource.page.common.css.CSSFile;
17 import de.tivsource.page.dao.cssfile.CSSFileDaoLocal;
18
19
20 public class CSSFileListConverter extends StrutsTypeConverter {
21
22
23
24
25 private static final Logger LOGGER = LogManager.getLogger(CSSFileListConverter.class);
26
27 @SuppressWarnings("rawtypes")
28 @Override
29 public Object convertFromString(Map context, String[] values, Class toClass) {
30 LOGGER.info("convertFromString(Map context, String[] values, Class toClass) aufgerufen.");
31 SortedSet<CSSFile> files = null;
32
33 if(values.length<=0) {
34 throw new TypeConversionException("Kein gültigen CSS - Dateien angegeben");
35 }
36
37 for ( int i = 0; i < values.length; i++ ){
38
39 if(i==0){
40 files = new TreeSet<CSSFile>();
41 }
42
43 String cssFileUuid = values[i];
44 try {
45 CSSFileDaoLocal cssFileDaoLocal;
46 Context earContext = new InitialContext();
47 cssFileDaoLocal = (CSSFileDaoLocal) earContext.lookup("java:global/tiv-page/dao-0.0.1/CSSFileDao");
48 CSSFile cssFile = cssFileDaoLocal.findByUuid(cssFileUuid);
49 files.add(cssFile);
50 }
51 catch (Exception e) {
52 e.printStackTrace();
53 throw new RuntimeException(e);
54 }
55 }
56
57 if(files.size()<=0) {
58 throw new TypeConversionException("Kein gültige CSS-Datei-UUID");
59 }
60
61 return files;
62 }
63
64 @SuppressWarnings("rawtypes")
65 @Override
66 public String convertToString(Map context, Object o) {
67 CSSFile files = (CSSFile)o;
68 return ""+files.getUuid();
69 }
70
71 }