
net.intelie.liverig.plugin.widgets.AssetRequestConfigService Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of plugin-assets Show documentation
Show all versions of plugin-assets Show documentation
Asset framework for industries solutions
The newest version!
package net.intelie.liverig.plugin.widgets;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import net.intelie.live.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
import static java.util.Collections.singletonList;
public class AssetRequestConfigService {
private static final Gson GSON = new Gson();
@Nullable
public AssetWidgetConfig getWidgetConfig(WidgetQueryRequest request) {
AssetWidgetConfig storedWidgetConfig = GSON.fromJson(GSON.toJson(request.config()), AssetWidgetConfig.class);
if (storedWidgetConfig == null) return null;
AssetWidgetConfig userWidgetConfig;
if (request.userConfig() == null)
userWidgetConfig = storedWidgetConfig;
else
userWidgetConfig = GSON.fromJson(GSON.toJson(request.userConfig()), AssetWidgetConfig.class);
if (userWidgetConfig == null)
userWidgetConfig = storedWidgetConfig;
if (userWidgetConfig.getAssets().isEmpty())
userWidgetConfig.setAssets(storedWidgetConfig.getAssets());
return userWidgetConfig;
}
public void maybeAddLayer(@Nullable String expression, @Nullable String reducer, @Nullable String span,
@NotNull WidgetQueryRequest request, @NotNull List layers,
boolean follow, boolean preloadWindow, JsonElement userConfig) {
if (expression != null)
layers.add(new WidgetQueryData.WidgetQueryLayer(singletonList(
makeQuery(expression, reducer, span, request, follow, preloadWindow, userConfig)
)));
}
@NotNull
private Query makeQuery(String expression, String reducer, String span, WidgetQueryRequest request, boolean follow, boolean preloadWindow, JsonElement userConfig) {
return new Query(expression)
.follow(follow)
.reduceHistory(reducer)
.span(span)
.description(request.description())
.prefilter(request.prefilter())
.preloadWindow(preloadWindow)
.context("userConfig", LiveJson.fromJson(request.userConfig(), Object.class))
.lookupValues(QueryRequest.makeValues(request.lookupValues()));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy