FvctxRequestHandler.java
4.59 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
95
96
97
98
99
100
101
102
103
104
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* com.scene7.is.provider.CacheSpec
* com.scene7.is.provider.ProcessingStatus
* com.scene7.is.provider.RequestContext
* com.scene7.is.provider.RequestTypeEnum
* com.scene7.is.provider.Response
* com.scene7.is.sleng.CacheEnum
* com.scene7.is.sleng.FXGServer
* com.scene7.is.sleng.ImageServer
* com.scene7.is.util.error.ApplicationException
* org.jetbrains.annotations.NotNull
*/
package com.scene7.is.ps.provider;
import com.scene7.is.provider.CacheSpec;
import com.scene7.is.provider.ProcessingStatus;
import com.scene7.is.provider.RequestContext;
import com.scene7.is.provider.RequestTypeEnum;
import com.scene7.is.provider.Response;
import com.scene7.is.ps.provider.ModifierSet;
import com.scene7.is.ps.provider.Request;
import com.scene7.is.ps.provider.RequestBuilder;
import com.scene7.is.ps.provider.RequestHandler;
import com.scene7.is.ps.provider.Util;
import com.scene7.is.ps.provider.defs.ModifierEnum;
import com.scene7.is.ps.provider.fvctx.FvctxCachingPolicy;
import com.scene7.is.ps.provider.fvctx.FvctxFilter;
import com.scene7.is.ps.provider.fvctx.FvctxFilterMissingImageChecker;
import com.scene7.is.ps.provider.fvctx.FvctxImageSetRequest;
import com.scene7.is.ps.provider.fvctx.FvctxRequestBuilder;
import com.scene7.is.ps.provider.fvctx.FvctxRequestBuilderImpl;
import com.scene7.is.ps.provider.fvctx.FvctxRequester;
import com.scene7.is.ps.provider.fvctx.FvctxUtil;
import com.scene7.is.ps.provider.util.CacheAgent;
import com.scene7.is.ps.provider.util.CachingPolicy;
import com.scene7.is.ps.provider.util.Requester;
import com.scene7.is.sleng.CacheEnum;
import com.scene7.is.sleng.FXGServer;
import com.scene7.is.sleng.ImageServer;
import com.scene7.is.util.error.ApplicationException;
import org.jetbrains.annotations.NotNull;
public abstract class FvctxRequestHandler
implements RequestHandler {
private static final int MAX_FRAMES_PER_FRAMESET = 10;
@NotNull
private final RequestBuilder requestBuilder;
@NotNull
private final CacheAgent cacheAgent;
private boolean useCatalogRecordValidation;
private final boolean useCache;
private int nestingLimit;
@NotNull
private final ImageServer imageServer;
@NotNull
private final FXGServer fxgServer;
FvctxRequestHandler(@NotNull ImageServer server, @NotNull FXGServer fxgServer, @NotNull RequestBuilder requestBuilder, boolean useCatalogRecordValidation, boolean useCache, boolean removeEmptyFrames, int nestingLimit, @NotNull CacheAgent cacheAgent) {
this.requestBuilder = requestBuilder;
this.cacheAgent = cacheAgent;
this.useCatalogRecordValidation = useCatalogRecordValidation;
this.useCache = useCache;
FvctxUtil.removeEmptyFrames = removeEmptyFrames;
this.nestingLimit = nestingLimit;
this.imageServer = server;
this.fxgServer = fxgServer;
}
@NotNull
@Override
public Response getResponse(@NotNull Request request, @NotNull ProcessingStatus status) throws ApplicationException {
RequestContext context = this.getRequestContext();
FvctxRequestBuilderImpl fvctxRequestBuilder = new FvctxRequestBuilderImpl(this.requestBuilder, context, request);
FvctxImageSetRequest imagesetReq = FvctxImageSetRequest.createImageSetRequest(request, fvctxRequestBuilder);
CachingPolicy cachingPolicy = FvctxCachingPolicy.createFvctxCachingPolicy(this.useCache, this.useCatalogRecordValidation, imagesetReq.request);
CacheSpec cacheSpec = request.getGlobalAttributes().get(ModifierEnum.CACHE, CacheSpec.ON);
FvctxFilterMissingImageChecker missingImageChecker = new FvctxFilterMissingImageChecker(context);
FvctxRequester requester = new FvctxRequester(fvctxRequestBuilder, context, imagesetReq, missingImageChecker, 10, this.nestingLimit, this.imageServer, this.fxgServer);
Response response = this.cacheAgent.getResponse(request.getRootId(), requester, cachingPolicy);
return response.setClientCacheUse(cacheSpec.getClient()).setRequestType(request.getType()).setExpiration(Util.computeNonImgExpiration(request)).setMissingImageHasCatalogEntry(missingImageChecker.isMissingImageHasCatalogEntry());
}
public void setUseCatalogRecordValidation(boolean v) {
this.useCatalogRecordValidation = v;
}
public boolean getUseCatalogRecordValidation() {
return this.useCatalogRecordValidation;
}
public void setNestingLimit(int v) {
this.nestingLimit = v;
}
public int getNestingLimit() {
return this.nestingLimit;
}
protected abstract RequestContext getRequestContext();
}