1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.imaging.variation;
35
36 import info.magnolia.cms.beans.runtime.FileProperties;
37 import info.magnolia.context.MgnlContext;
38 import info.magnolia.imaging.DefaultImageGenerator;
39 import info.magnolia.jcr.util.PropertyUtil;
40
41 import javax.jcr.Node;
42 import javax.jcr.Property;
43 import javax.jcr.RepositoryException;
44
45 import org.slf4j.Logger;
46 import org.slf4j.LoggerFactory;
47
48
49
50
51
52 public class DefaultVariation implements Variation {
53
54 private static final Logger log = LoggerFactory.getLogger(DefaultVariation.class);
55
56 private String name;
57
58 public DefaultVariation() {
59 }
60
61 public DefaultVariation(String name) {
62 this.name = name;
63 }
64
65 @Override
66 public String getName() {
67 return this.name;
68 }
69
70 public void setName(String name) {
71 this.name = name;
72 }
73
74 @Override
75 public String createLink(Property binaryProperty) {
76 if (binaryProperty == null) {
77 log.warn("Binary property cannot be null. Cannot create link.");
78 return null;
79 }
80
81 try {
82 Node parent = binaryProperty.getParent();
83 String path = parent.getPath();
84 String workspaceName = binaryProperty.getSession().getWorkspace().getName();
85 String extension = PropertyUtil.getString(parent, FileProperties.EXTENSION, "jpg");
86
87 return MgnlContext.getContextPath() + "/.imaging/" + DefaultImageGenerator.GENERATOR_NAME + "/" + workspaceName + path + "." + extension;
88 } catch (RepositoryException e) {
89 log.warn("Could not create link for binary property [{}].", binaryProperty, e);
90 }
91
92 return null;
93 }
94
95 }