1
2
3
4 package de.tivsource.page.entity.picture;
5
6 import java.util.Date;
7 import java.util.Map;
8
9 import javax.persistence.Basic;
10 import javax.persistence.CascadeType;
11 import javax.persistence.Column;
12 import javax.persistence.Entity;
13 import javax.persistence.FetchType;
14 import javax.persistence.Id;
15 import javax.persistence.JoinColumn;
16 import javax.persistence.ManyToOne;
17 import javax.persistence.MapKey;
18 import javax.persistence.OneToMany;
19 import javax.persistence.Temporal;
20
21 import org.hibernate.envers.Audited;
22 import org.hibernate.search.annotations.DocumentId;
23 import org.hibernate.search.annotations.Indexed;
24
25 import de.tivsource.page.entity.enumeration.Language;
26 import de.tivsource.page.entity.gallery.Gallery;
27 import de.tivsource.page.enumeration.UrlType;
28
29
30
31
32
33
34
35
36
37 @Audited
38 @Indexed
39 @Entity
40 public class Picture {
41
42
43
44
45
46
47 @Id
48 @DocumentId
49 @Column(name="uuid", unique=true, length=42)
50 private String uuid;
51
52
53
54
55 @OneToMany(mappedBy = "picture", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
56 @MapKey(name = "language")
57 private Map<Language, PictureDescription> descriptionMap;
58
59 @OneToMany(mappedBy = "picture", cascade = { CascadeType.ALL }, fetch = FetchType.EAGER)
60 @MapKey(name = "urlType")
61 private Map<UrlType, PictureUrl> pictureUrls;
62
63 @Basic
64 @org.hibernate.annotations.Type(type = "yes_no")
65 private Boolean visible;
66
67 private Integer orderNumber;
68
69 @ManyToOne(targetEntity = Gallery.class, fetch = FetchType.EAGER)
70 @JoinColumn(name = "gallery_uuid")
71 private Gallery gallery;
72
73 @Temporal(javax.persistence.TemporalType.TIMESTAMP)
74 private Date created;
75
76 @Temporal(javax.persistence.TemporalType.TIMESTAMP)
77 private Date modified;
78
79 private String modifiedBy;
80
81 private String modifiedAddress;
82
83 public String getUuid() {
84 return uuid;
85 }
86
87 public void setUuid(String uuid) {
88 this.uuid = uuid;
89 }
90
91 public Map<Language, PictureDescription> getDescriptionMap() {
92 return descriptionMap;
93 }
94
95 public void setDescriptionMap(Map<Language, PictureDescription> descriptionMap) {
96 this.descriptionMap = descriptionMap;
97 }
98
99 public Map<UrlType, PictureUrl> getPictureUrls() {
100 return pictureUrls;
101 }
102
103 public void setPictureUrls(Map<UrlType, PictureUrl> pictureUrls) {
104 this.pictureUrls = pictureUrls;
105 }
106
107 public Boolean getVisible() {
108 return visible;
109 }
110
111 public void setVisible(Boolean visible) {
112 this.visible = visible;
113 }
114
115 public Integer getOrderNumber() {
116 return orderNumber;
117 }
118
119 public void setOrderNumber(Integer orderNumber) {
120 this.orderNumber = orderNumber;
121 }
122
123 public Gallery getGallery() {
124 return gallery;
125 }
126
127 public void setGallery(Gallery gallery) {
128 this.gallery = gallery;
129 }
130
131 public Date getCreated() {
132 return created;
133 }
134
135 public void setCreated(Date created) {
136 this.created = created;
137 }
138
139 public Date getModified() {
140 return modified;
141 }
142
143 public void setModified(Date modified) {
144 this.modified = modified;
145 }
146
147 public String getModifiedBy() {
148 return modifiedBy;
149 }
150
151 public void setModifiedBy(String modifiedBy) {
152 this.modifiedBy = modifiedBy;
153 }
154
155 public String getModifiedAddress() {
156 return modifiedAddress;
157 }
158
159 public void setModifiedAddress(String modifiedAddress) {
160 this.modifiedAddress = modifiedAddress;
161 }
162
163
164
165
166
167
168
169
170
171 public String getName(String language) {
172 String result = descriptionMap.get(Language.DE).getName();
173 String tmpResult = descriptionMap.get(Language.DE).getName();
174 try {
175 tmpResult = descriptionMap.get(
176 Language.valueOf(language.toUpperCase())).getName();
177 } catch (IllegalArgumentException e) {
178 return result;
179 } catch (NullPointerException e) {
180 return result;
181 }
182 return tmpResult;
183 }
184
185 public String getPictureUrl(String urlType) {
186 StringBuilder sb = new StringBuilder("/");
187 sb.append("pictures");
188 sb.append("/");
189
190 if (urlType.equals("THUMBNAIL")) {
191 sb.append("THUMBNAIL/");
192 sb.append(pictureUrls.get(UrlType.THUMBNAIL).getUrl());
193 return sb.toString();
194 } else if (urlType.equals("NORMAL")) {
195 sb.append("NORMAL/");
196 sb.append(pictureUrls.get(UrlType.NORMAL).getUrl());
197 return sb.toString();
198 } else if (urlType.equals("LARGE")) {
199 sb.append("LARGE/");
200 sb.append(pictureUrls.get(UrlType.LARGE).getUrl());
201 return sb.toString();
202 } else {
203 sb.append("FULL/");
204 sb.append(pictureUrls.get(UrlType.FULL).getUrl());
205 return sb.toString();
206 }
207 }
208
209 public String getDescription(String language) {
210 String result = descriptionMap.get(Language.DE).getDescription();
211 String tmpResult = descriptionMap.get(Language.DE).getDescription();
212 try {
213 tmpResult = descriptionMap.get(
214 Language.valueOf(language.toUpperCase())).getDescription();
215 } catch (IllegalArgumentException e) {
216 return result;
217 } catch (NullPointerException e) {
218 return result;
219 }
220 return tmpResult;
221 }
222
223 public String getKeywords(String language) {
224 String result = descriptionMap.get(Language.DE).getKeywords();
225 String tmpResult = descriptionMap.get(Language.DE).getKeywords();
226 try {
227 tmpResult = descriptionMap.get(
228 Language.valueOf(language.toUpperCase())).getKeywords();
229 } catch (IllegalArgumentException e) {
230 return result;
231 } catch (NullPointerException e) {
232 return result;
233 }
234 return tmpResult;
235 }
236
237 }