1 package de.tivsource.page.entity.contentitem;
2
3 import java.util.Map;
4
5 import javax.persistence.CascadeType;
6 import javax.persistence.Entity;
7 import javax.persistence.FetchType;
8 import javax.persistence.Inheritance;
9 import javax.persistence.InheritanceType;
10 import javax.persistence.MapKey;
11 import javax.persistence.OneToMany;
12
13 import org.hibernate.envers.Audited;
14
15 import de.tivsource.page.entity.enumeration.Language;
16 import de.tivsource.page.entity.pictureitem.PictureItem;
17
18
19
20
21
22
23 @Audited
24 @Entity
25 @Inheritance(strategy = InheritanceType.JOINED)
26 public abstract class ContentItem extends PictureItem implements Comparable<ContentItem> {
27
28
29
30
31 @OneToMany(mappedBy = "contentItem", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
32 @MapKey(name = "language")
33 private Map<Language, Content> contentMap;
34
35 public Map<Language, Content> getContentMap() {
36 return contentMap;
37 }
38
39 public void setContentMap(Map<Language, Content> contentMap) {
40 this.contentMap = contentMap;
41 }
42
43 public String getContent(String language) {
44 String result = contentMap.get(Language.DE).getContent();
45 String tmpResult = contentMap.get(Language.DE).getContent();
46 try {
47 tmpResult = contentMap
48 .get(Language.valueOf(language.toUpperCase())).getContent();
49 } catch (IllegalArgumentException e) {
50 return result;
51 } catch (NullPointerException e) {
52 return result;
53 }
54 return tmpResult;
55 }
56
57 public String getContent(Language language) {
58 String result = contentMap.get(Language.DE).getContent();
59 String tmpResult = contentMap.get(Language.DE).getContent();
60
61 try {
62 tmpResult = contentMap.get(language).getContent();
63 } catch (IllegalArgumentException e) {
64 return result;
65 } catch (NullPointerException e) {
66 return result;
67 }
68 return tmpResult;
69 }
70
71 public Content getContentObject(Language language) {
72 Content result = contentMap.get(Language.DE);
73 Content tmpResult = contentMap.get(Language.DE);
74 try {
75 tmpResult = contentMap.get(language);
76 } catch (IllegalArgumentException e) {
77 return result;
78 } catch (NullPointerException e) {
79 return result;
80 }
81 return tmpResult;
82 }
83
84 public abstract String getUrl();
85
86 }