Java tutorial
package com.contrastsecurity.http; import lombok.Getter; import lombok.Setter; import org.apache.commons.lang.StringUtils; import java.util.ArrayList; import java.util.Date; import java.util.EnumSet; import java.util.List; @Getter @Setter public class TraceFilterForm { public enum ApplicationExpandValues { SCORES, TRACE_BREAKDOWN, LICENSE; @Override public String toString() { return name().toLowerCase(); } } public enum LibrariesExpandValues { VULNS; @Override public String toString() { return name().toLowerCase(); } } public enum TraceExpandValue { CARD, EVENTS, NOTES, REQUEST, APPLICATION, SERVERS; @Override public String toString() { return name().toLowerCase(); } } private String filterText; private Date startDate; private Date endDate; private List<String> filterTags; private EnumSet<RuleSeverity> severities; private List<String> status; private List<String> vulnTypes; private List<String> appVersionTags; private List<Long> serverIds; private EnumSet<ServerEnvironment> environments; private List<String> urls; private List<String> modules; private EnumSet<TraceExpandValue> expand; private int limit; private int offset; private String sort; public TraceFilterForm() { this.filterText = ""; this.startDate = null; this.endDate = null; this.filterTags = null; this.severities = null; this.status = null; this.vulnTypes = null; this.appVersionTags = null; this.serverIds = null; this.environments = null; this.urls = null; this.modules = null; this.expand = null; this.limit = -1; this.offset = -1; this.sort = ""; } @Override public String toString() { List<String> filters = new ArrayList<>(); if (StringUtils.isNotEmpty(filterText)) { filters.add(filterText); } if (expand != null && !expand.isEmpty()) { filters.add("expand=" + StringUtils.join(expand, ",")); } if (startDate != null) { filters.add("startDate=" + startDate.getTime()); } if (endDate != null) { filters.add("endDate=" + endDate.getTime()); } if (filterTags != null && !filterTags.isEmpty()) { filters.add("filterTags=" + StringUtils.join(filterTags, ",")); } if (severities != null && !severities.isEmpty()) { filters.add("severities=" + StringUtils.join(severities, ",")); } if (status != null) { filters.add("status=" + StringUtils.join(status, ",")); } if (vulnTypes != null && !vulnTypes.isEmpty()) { filters.add("vulnTypes=" + StringUtils.join(vulnTypes, ",")); } if (appVersionTags != null && !appVersionTags.isEmpty()) { filters.add("appVersionTags=" + StringUtils.join(appVersionTags, ",")); } if (environments != null && !environments.isEmpty()) { filters.add("environments=" + StringUtils.join(environments, ",")); } if (serverIds != null && !serverIds.isEmpty()) { filters.add("servers=" + StringUtils.join(serverIds, ",")); } if (urls != null && !urls.isEmpty()) { filters.add("urls=" + StringUtils.join(urls, ",")); } if (modules != null && !modules.isEmpty()) { filters.add("modules=" + StringUtils.join(modules, ",")); } if (StringUtils.isNotEmpty(sort)) { filters.add("sort=" + sort); } if (limit > -1) { filters.add("limit=" + limit); } if (offset > -1) { filters.add("offset=" + offset); } if (!filters.isEmpty()) { return "?" + StringUtils.join(filters, "&"); } else { return ""; } } }