CompanySettings.java
4.16 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* com.scene7.is.provider.ResModeSpecConverter
* com.scene7.is.ps.provider.parsers.ColorConverter
* com.scene7.is.sleng.Color
* com.scene7.is.sleng.ResModeSpec
* com.scene7.is.util.Size
* com.scene7.is.util.callbacks.Option
* com.scene7.is.util.text.parsers.SizeParser
* javax.jcr.Node
* javax.jcr.Property
* javax.jcr.RepositoryException
* org.apache.sling.api.resource.Resource
* org.jetbrains.annotations.NotNull
*/
package com.adobe.cq.dam.s7imaging.impl.catalog;
import com.adobe.cq.dam.s7imaging.config.DynamicMediaConfig;
import com.adobe.cq.dam.s7imaging.impl.catalog.JcrModifierList;
import com.adobe.cq.dam.s7imaging.impl.jcr.props.JcrProps;
import com.adobe.cq.dam.s7imaging.impl.jcr.props.PropExtractor;
import com.adobe.cq.dam.s7imaging.impl.jcr.props.PropKey;
import com.adobe.cq.dam.s7imaging.impl.jcr.props.StandardExtractors;
import com.scene7.is.provider.ResModeSpecConverter;
import com.scene7.is.ps.provider.parsers.ColorConverter;
import com.scene7.is.sleng.Color;
import com.scene7.is.sleng.ResModeSpec;
import com.scene7.is.util.Size;
import com.scene7.is.util.callbacks.Option;
import com.scene7.is.util.text.parsers.SizeParser;
import java.util.HashMap;
import java.util.Map;
import javax.jcr.Node;
import javax.jcr.Property;
import javax.jcr.RepositoryException;
import org.apache.sling.api.resource.Resource;
import org.jetbrains.annotations.NotNull;
public class CompanySettings {
public static final PropKey<Option<Color>> BgColor = PropKey.optional("bkgcolor", ColorConverter.colorParser());
public static final PropKey<Option<Long>> TimeStamp = PropKey.optional("jcr:lastModified", StandardExtractors.toLong);
public static final PropKey<Option<Size>> DefaultPix = PropKey.optional("defaultpix", SizeParser.sizeParser());
public static final PropKey<Option<Size>> DefaultThumbPix = PropKey.optional("defaultthumbpix", SizeParser.sizeParser());
public static final PropKey<Option<Long>> Expiration = PropKey.optional("expiration", CompanySettings.expirationExtractor());
public static final PropKey<Option<Size>> MaxPix = PropKey.optional("maxpix", SizeParser.sizeParser());
public static final PropKey<Option<ResModeSpec>> ResamplingMode = PropKey.optional("resmode", ResModeSpecConverter.resModeParser());
public static final PropKey<Option<Double>> Resolution = PropKey.optional("resolution", StandardExtractors.toDouble);
public static final PropKey<Option<Integer>> JpegQuality = PropKey.optional("jpegquality", StandardExtractors.toInteger);
public static final PropKey<Option<Boolean>> DownsampleChroma = PropKey.optional("downsamplechroma", StandardExtractors.toBoolean);
public final JcrProps props;
private final Resource resource;
public static CompanySettings companySettings(@NotNull Resource resource) {
return new CompanySettings(resource);
}
public Map<String, String> macros() throws RepositoryException {
HashMap<String, String> result = new HashMap<String, String>();
for (Resource presets : DynamicMediaConfig.imagePresets(this.resource)) {
for (Resource child : presets.getChildren()) {
for (Resource r : Option.some((Object)child.getChild("jcr:content"))) {
for (Node content : Option.some((Object)r.adaptTo(Node.class))) {
String key = child.getName();
String value = JcrModifierList.jcrModifierList(content);
result.put(key, value);
}
}
}
}
return result;
}
private static PropExtractor<Long> expirationExtractor() {
return new PropExtractor<Long>(new int[]{3, 4, 1}){
@Override
protected Long extract(Property prop) throws RepositoryException {
if (prop.getType() == 1 && "10".equals(prop.getString())) {
return 36000000;
}
return prop.getLong();
}
};
}
private CompanySettings(Resource resource) {
this.resource = resource;
this.props = JcrProps.jcrProps(resource);
}
}