public Builder releaseId(ReleaseId releaseId) { this.releaseIdFilter = new ReleaseIdFilter(releaseId); return this; }
/** * Creates representation of this filter which can be used as part of the URL (e.g. the "?" query part). * * @return string representation that can be directly used in URL (as query params), without the leading '?' */ public String toURLQueryString() { StringJoiner joiner = new StringJoiner("&"); if (releaseIdFilter.getGroupId() != null) { joiner.add("groupId=" + releaseIdFilter.getGroupId()); } if (releaseIdFilter.getArtifactId() != null) { joiner.add("artifactId=" + releaseIdFilter.getArtifactId()); } if (releaseIdFilter.getVersion() != null) { joiner.add("version=" + releaseIdFilter.getVersion()); } // don't send over the default status filter (e.g. one that accepts all the states) as it is not needed, it is // the default if (!statusFilter.equals(KieContainerStatusFilter.ACCEPT_ALL)) { String status = statusFilter.getAcceptedStatuses() .stream() .map(s -> s.toString()) .collect(Collectors.joining(",")); joiner.add("status=" + status); } return joiner.toString(); }
public boolean accept(KieContainerResource kieContainerResource) { if (kieContainerResource == null) { throw new IllegalArgumentException("KieContainerResource can not be null!"); } // in case resolved release id exists, check against that ReleaseId resolvedReleaseId = kieContainerResource.getResolvedReleaseId(); if (resolvedReleaseId != null) { if (!releaseIdFilter.accept(resolvedReleaseId)) { return false; } } else { if (!releaseIdFilter.accept(kieContainerResource.getReleaseId())) { return false; } } KieContainerStatus status = kieContainerResource.getStatus(); if (status != null && !statusFilter.accept(status)) { return false; } // all sub-filters accepted the container, so it is a match return true; }
@Override public int hashCode() { int result = releaseIdFilter != null ? releaseIdFilter.hashCode() : 0; result = 31 * result + (statusFilter != null ? statusFilter.hashCode() : 0); return result; }
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } KieContainerResourceFilter that = (KieContainerResourceFilter) o; if (releaseIdFilter != null ? !releaseIdFilter.equals(that.releaseIdFilter) : that.releaseIdFilter != null) return false; return statusFilter != null ? statusFilter.equals(that.statusFilter) : that.statusFilter == null; }
/** * Checks whether the specified releaseId matches (is accepted by) this filter. * * @param releaseId releaseId to match against * @return true if this filter accepts the specified releaseId, otherwise false */ public boolean accept(ReleaseId releaseId) { if (releaseId == null) { throw new IllegalArgumentException("ReleaseId can not be null!"); } return matches(groupId, releaseId.getGroupId()) && matches(artifactId, releaseId.getArtifactId()) && matches(version, releaseId.getVersion()); }
@Test public void testAccept() { boolean result = filter.accept(releaseId); Assertions.assertThat(result).isEqualTo(expectedResult); } }
public ReleaseIdFilter build() { return new ReleaseIdFilter(groupId, artifactId, version); } }
public Builder releaseId(String groupId, String artifactId, String version) { this.releaseIdFilter = new ReleaseIdFilter(groupId, artifactId, version); return this; }
private static ReleaseIdFilter createReleaseIdFilter() { return new ReleaseIdFilter("group", "artifact", "version"); }