extract shareable plot config

This commit is contained in:
2023-02-26 09:03:39 +01:00
parent a2945d2d9b
commit dc8a462031
6 changed files with 178 additions and 148 deletions

View File

@@ -13,30 +13,31 @@ import org.lucares.pdb.plot.api.ParallelRequestsAggregate;
import org.lucares.pdb.plot.api.PlotSettings;
import org.lucares.pdb.plot.api.ScatterAggregateHandler;
import org.lucares.pdb.plot.api.YAxisDefinition;
import org.lucares.pdbui.domain.PlotConfig;
import org.lucares.pdbui.domain.PlotRequest;
class PlotSettingsTransformer {
static PlotSettings toSettings(final PlotRequest request) {
final PlotSettings result = new PlotSettings();
result.setQuery(request.getQuery());
result.setGroupBy(request.getGroupBy());
final PlotConfig config = request.getConfig();
result.setQuery(config.getQuery());
result.setGroupBy(config.getGroupBy());
result.setHeight(request.getHeight());
result.setWidth(request.getWidth());
result.setLimit(request.getLimit());
result.setLimitBy(request.getLimitBy());
result.setDateRange(request.getDateRange());
result.setLimit(config.getLimit());
result.setLimitBy(config.getLimitBy());
result.setDateRange(config.getDateRange());
result.setKeyOutside(request.isKeyOutside());
result.setThumbnailMaxWidth(request.getThumbnailMaxWidth());
result.setThumbnailMaxHeight(request.getThumbnailMaxHeight());
result.setGenerateThumbnail(request.isGenerateThumbnail());
result.setY1(request.getY1());
result.setY2(request.getY2());
result.setAggregates(toAggregateInternal(request.getY1(), request.getY2(), request.getAggregates()));
result.setInterval(Interval.create(request.getIntervalUnit(), request.getIntervalValue(), result.dateRange()));
result.setRenderBarChartTickLabels(request.isRenderBarChartTickLabels());
result.setY1(config.getY1());
result.setY2(config.getY2());
result.setAggregates(toAggregateInternal(config.getY1(), config.getY2(), config.getAggregates()));
result.setInterval(Interval.create(config.getIntervalUnit(), config.getIntervalValue(), result.dateRange()));
result.setRenderBarChartTickLabels(config.isRenderBarChartTickLabels());
return result;
}

View File

@@ -0,0 +1,124 @@
package org.lucares.pdbui.domain;
import java.util.ArrayList;
import java.util.List;
import org.lucares.pdb.plot.api.Aggregate;
import org.lucares.pdb.plot.api.Limit;
import org.lucares.pdb.plot.api.YAxisDefinition;
/**
* The user defined settings of a plot. Contains everything the user cares
* about, but nothing else. Contains: query, selected plot types, axis
* definition, ... Does not contain: plot size, thumbnail size, job submitter
* id, ...
*/
public class PlotConfig {
private String query;
private List<String> groupBy;
private Limit limitBy = Limit.NO_LIMIT;
private int limit = Integer.MAX_VALUE;
private YAxisDefinition y1 = new YAxisDefinition();
private YAxisDefinition y2 = new YAxisDefinition();
private String dateRange;
private List<Aggregate> aggregates = new ArrayList<>();
private String intervalUnit;
private int intervalValue;
private boolean renderBarChartTickLabels;
public String getQuery() {
return query;
}
public void setQuery(final String query) {
this.query = query;
}
public List<String> getGroupBy() {
return groupBy;
}
public void setGroupBy(final List<String> groupBy) {
this.groupBy = groupBy;
}
public Limit getLimitBy() {
return limitBy;
}
public void setLimitBy(final Limit limitBy) {
this.limitBy = limitBy;
}
public int getLimit() {
return limit;
}
public void setLimit(final int limit) {
this.limit = limit;
}
public String getDateRange() {
return dateRange;
}
public void setDateRange(final String dateRange) {
this.dateRange = dateRange;
}
public void setAggregate(final List<Aggregate> aggregates) {
this.aggregates = aggregates;
}
public List<Aggregate> getAggregates() {
return aggregates;
}
public YAxisDefinition getY1() {
return y1;
}
public void setY1(final YAxisDefinition y1) {
this.y1 = y1;
}
public YAxisDefinition getY2() {
return y2;
}
public void setY2(final YAxisDefinition y2) {
this.y2 = y2;
}
public String getIntervalUnit() {
return intervalUnit;
}
public void setIntervalUnit(final String intervalUnit) {
this.intervalUnit = intervalUnit;
}
public int getIntervalValue() {
return intervalValue;
}
public void setIntervalValue(final int intervalValue) {
this.intervalValue = intervalValue;
}
public boolean isRenderBarChartTickLabels() {
return renderBarChartTickLabels;
}
public void setRenderBarChartTickLabels(final boolean renderBarChartTickLabels) {
this.renderBarChartTickLabels = renderBarChartTickLabels;
}
}

View File

@@ -1,14 +1,6 @@
package org.lucares.pdbui.domain;
import java.util.ArrayList;
import java.util.List;
import org.lucares.pdb.plot.api.Aggregate;
import org.lucares.pdb.plot.api.Limit;
import org.lucares.pdb.plot.api.YAxisDefinition;
public class PlotRequest {
private String query;
private int height = 1000;
@@ -18,35 +10,18 @@ public class PlotRequest {
private int thumbnailMaxHeight = 0;
private List<String> groupBy;
private Limit limitBy = Limit.NO_LIMIT;
private int limit = Integer.MAX_VALUE;
private YAxisDefinition y1 = new YAxisDefinition();
private YAxisDefinition y2 = new YAxisDefinition();
private String dateRange;
private List<Aggregate> aggregates = new ArrayList<>();
private boolean keyOutside;
private boolean generateThumbnail;
private String intervalUnit;
private int intervalValue;
private boolean renderBarChartTickLabels;
private boolean keyOutside;
private String submitterId;
public String getQuery() {
return query;
private PlotConfig config;
public PlotConfig getConfig() {
return config;
}
public void setQuery(final String query) {
this.query = query;
public void setConfig(final PlotConfig config) {
this.config = config;
}
public int getWidth() {
@@ -81,51 +56,6 @@ public class PlotRequest {
this.thumbnailMaxHeight = thumbnailMaxHeight;
}
@Override
public String toString() {
return query + ":" + height + "x" + width;
}
public List<String> getGroupBy() {
return groupBy;
}
public void setGroupBy(final List<String> groupBy) {
this.groupBy = groupBy;
}
public Limit getLimitBy() {
return limitBy;
}
public void setLimitBy(final Limit limitBy) {
this.limitBy = limitBy;
}
public int getLimit() {
return limit;
}
public void setLimit(final int limit) {
this.limit = limit;
}
public String getDateRange() {
return dateRange;
}
public void setDateRange(final String dateRange) {
this.dateRange = dateRange;
}
public void setAggregate(final List<Aggregate> aggregates) {
this.aggregates = aggregates;
}
public List<Aggregate> getAggregates() {
return aggregates;
}
public void setKeyOutside(final boolean keyOutside) {
this.keyOutside = keyOutside;
}
@@ -142,46 +72,6 @@ public class PlotRequest {
this.generateThumbnail = generateThumbnail;
}
public YAxisDefinition getY1() {
return y1;
}
public void setY1(final YAxisDefinition y1) {
this.y1 = y1;
}
public YAxisDefinition getY2() {
return y2;
}
public void setY2(final YAxisDefinition y2) {
this.y2 = y2;
}
public String getIntervalUnit() {
return intervalUnit;
}
public void setIntervalUnit(final String intervalUnit) {
this.intervalUnit = intervalUnit;
}
public int getIntervalValue() {
return intervalValue;
}
public void setIntervalValue(final int intervalValue) {
this.intervalValue = intervalValue;
}
public boolean isRenderBarChartTickLabels() {
return renderBarChartTickLabels;
}
public void setRenderBarChartTickLabels(final boolean renderBarChartTickLabels) {
this.renderBarChartTickLabels = renderBarChartTickLabels;
}
public String getSubmitterId() {
return submitterId;
}
@@ -190,4 +80,9 @@ public class PlotRequest {
this.submitterId = submitterId;
}
@Override
public String toString() {
return (config != null ? config.getQuery() : "<no query>") + ":" + height + "x" + width;
}
}