FvctxImageSetRequest.java
3.44 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
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* com.scene7.is.provider.ImageSet
* com.scene7.is.provider.catalog.Catalog
* com.scene7.is.provider.catalog.ObjectRecord
* com.scene7.is.util.error.ApplicationException
* org.jetbrains.annotations.NotNull
*/
package com.scene7.is.ps.provider.fvctx;
import com.scene7.is.provider.ImageSet;
import com.scene7.is.provider.catalog.Catalog;
import com.scene7.is.provider.catalog.ObjectRecord;
import com.scene7.is.ps.provider.IZoomException;
import com.scene7.is.ps.provider.ModifierSet;
import com.scene7.is.ps.provider.Request;
import com.scene7.is.ps.provider.defs.ModifierEnum;
import com.scene7.is.ps.provider.fvctx.FvctxNode;
import com.scene7.is.ps.provider.fvctx.FvctxNodeFrameRequestExtractor;
import com.scene7.is.ps.provider.fvctx.FvctxPipelineBuilderImpl;
import com.scene7.is.ps.provider.fvctx.FvctxPipelineProcessor;
import com.scene7.is.ps.provider.fvctx.FvctxRequestBuilder;
import com.scene7.is.ps.provider.fvctx.FvctxUtil;
import com.scene7.is.util.error.ApplicationException;
import java.util.List;
import org.jetbrains.annotations.NotNull;
public class FvctxImageSetRequest {
@NotNull
public final Request request;
@NotNull
public final ImageSet imageset;
public static FvctxImageSetRequest createImageSetRequest(@NotNull Request request, @NotNull FvctxRequestBuilder requestBuilder) throws ApplicationException {
ModifierSet attr = request.getGlobalAttributes();
ImageSet imageSet = FvctxUtil.filterEmptyFrames(attr.get(ModifierEnum.IMAGESET, ImageSet.imageSet()));
if (imageSet.isEmpty()) {
return new FvctxImageSetRequest(request, FvctxUtil.filterEmptyFrames(request.getImageSet()));
}
if (imageSet.size() == 1) {
Catalog mainCatalog = request.getRecord().getCatalog();
List<Request> requests = FvctxImageSetRequest.getFrameRequests(mainCatalog, imageSet, requestBuilder);
assert (requests.size() == 1);
Request r = requests.get(0);
String query = request.getGlobalAttributes().get(ModifierEnum.I_NET_QUERY, null);
if (query != null && !query.isEmpty()) {
r.getGlobalAttributes().set(ModifierEnum.I_NET_QUERY, query);
}
if (!r.getImageSet().isEmpty()) {
return new FvctxImageSetRequest(r, r.getImageSet());
}
}
return new FvctxImageSetRequest(request, imageSet);
}
public boolean isEmpty() {
return this.request.isEmptyImageRequest() && this.imageset.isEmpty();
}
public boolean isSingleImage() {
return !this.request.isEmptyImageRequest() && this.imageset.isEmpty();
}
public boolean isImageSet() {
return !this.imageset.isEmpty();
}
private FvctxImageSetRequest(@NotNull Request request, @NotNull ImageSet imageset) {
this.request = request;
this.imageset = imageset;
}
@NotNull
static List<Request> getFrameRequests(@NotNull Catalog catalog, @NotNull ImageSet imageset, @NotNull FvctxRequestBuilder requestBuilder) throws IZoomException {
FvctxNodeFrameRequestExtractor requestExtractor = new FvctxNodeFrameRequestExtractor();
FvctxNode pipeline = FvctxPipelineBuilderImpl.createRequestBuilderPipeline(catalog, requestBuilder, requestExtractor);
FvctxPipelineProcessor.processImageSet(imageset, pipeline);
return requestExtractor.getFrameRequests();
}
}