Skip to content

Commit

Permalink
chore: replace private constructors
Browse files Browse the repository at this point in the history
  • Loading branch information
brunopacheco1 committed Apr 8, 2024
1 parent fa0697b commit e8ecbea
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,22 @@
import java.util.Objects;

import io.github.genomicdatainfrastructure.discovery.model.DatasetSearchQueryFacet;
import lombok.experimental.UtilityClass;

import static java.util.Objects.nonNull;
import static java.util.Optional.ofNullable;
import static java.util.stream.Collectors.groupingBy;
import static java.util.stream.Collectors.joining;

@UtilityClass
public class CkanFacetsQueryBuilder {

private static final String CKAN_FACET_GROUP = "ckan";
private static final String QUOTED_VALUE = "\"%s\"";
private static final String FACET_PATTERN = "%s:(%s)";
private static final String AND = " AND ";
private final String CKAN_FACET_GROUP = "ckan";
private final String QUOTED_VALUE = "\"%s\"";
private final String FACET_PATTERN = "%s:(%s)";
private final String AND = " AND ";

private CkanFacetsQueryBuilder() {
// utility class
}

public static String buildFacetQuery(List<DatasetSearchQueryFacet> facets) {
public String buildFacetQuery(List<DatasetSearchQueryFacet> facets) {
var nonNullFacets = ofNullable(facets)
.orElseGet(List::of)
.stream()
Expand All @@ -37,15 +35,15 @@ public static String buildFacetQuery(List<DatasetSearchQueryFacet> facets) {
.collect(joining(AND));
}

private static Boolean isCkanGroupAndFacetIsNotBlank(DatasetSearchQueryFacet facet) {
private Boolean isCkanGroupAndFacetIsNotBlank(DatasetSearchQueryFacet facet) {
return Objects.equals(CKAN_FACET_GROUP, facet.getFacetGroup()) &&
nonNull(facet.getFacet()) &&
!facet.getFacet().isBlank() &&
nonNull(facet.getValue()) &&
!facet.getValue().isBlank();
}

private static String getFacetQuery(String key, List<DatasetSearchQueryFacet> facets) {
private String getFacetQuery(String key, List<DatasetSearchQueryFacet> facets) {
var values = facets.stream()
.map(facet -> QUOTED_VALUE.formatted(facet.getValue()))
.collect(joining(AND));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,22 @@
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.CkanOrganization;
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.CkanPackage;
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.CkanResource;
import lombok.experimental.UtilityClass;

import static java.util.Optional.ofNullable;
import static java.util.function.Predicate.not;

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

@UtilityClass
public class PackageShowMapper {

public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(
private final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(
"yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
);

private PackageShowMapper() {
// Utility class
}

public static RetrievedDataset from(CkanPackage ckanPackage) {
public RetrievedDataset from(CkanPackage ckanPackage) {
var catalogue = ofNullable(ckanPackage.getOrganization())
.map(CkanOrganization::getTitle)
.orElse(null);
Expand All @@ -57,7 +55,7 @@ public static RetrievedDataset from(CkanPackage ckanPackage) {
.build();
}

private static List<ValueLabel> values(List<String> values) {
private List<ValueLabel> values(List<String> values) {
return ofNullable(values)
.orElseGet(List::of)
.stream()
Expand All @@ -66,7 +64,7 @@ private static List<ValueLabel> values(List<String> values) {
.toList();
}

private static ValueLabel value(String value) {
private ValueLabel value(String value) {
return ofNullable(value)
.filter(Objects::nonNull)
.filter(not(String::isBlank))
Expand All @@ -77,21 +75,21 @@ private static ValueLabel value(String value) {
.orElse(null);
}

private static LocalDateTime parse(String date) {
private LocalDateTime parse(String date) {
return ofNullable(date)
.map(it -> LocalDateTime.parse(it, DATE_FORMATTER))
.orElse(null);
}

private static List<RetrievedDistribution> distributions(CkanPackage ckanPackage) {
private List<RetrievedDistribution> distributions(CkanPackage ckanPackage) {
return ofNullable(ckanPackage.getResources())
.orElseGet(List::of)
.stream()
.map(PackageShowMapper::distribution)
.toList();
}

private static RetrievedDistribution distribution(CkanResource ckanResource) {
private RetrievedDistribution distribution(CkanResource ckanResource) {
return RetrievedDistribution.builder()
.id(ckanResource.getId())
.title(ckanResource.getName())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.CkanPackage;
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.PackagesSearchResponse;
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.PackagesSearchResult;
import lombok.experimental.UtilityClass;

import java.util.List;
import java.util.Map;
import java.util.Objects;
Expand All @@ -23,39 +25,36 @@
import static java.util.Optional.ofNullable;
import static java.util.function.Predicate.not;

@UtilityClass
public class PackagesSearchResponseMapper {

public static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(
private final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(
"yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
);

private PackagesSearchResponseMapper() {
// Utility class
}

public static DatasetsSearchResponse from(PackagesSearchResponse response) {
public DatasetsSearchResponse from(PackagesSearchResponse response) {
return DatasetsSearchResponse.builder()
.count(count(response.getResult()))
.facetGroups(facetGroups(response.getResult()))
.results(results(response.getResult()))
.build();
}

private static Integer count(PackagesSearchResult result) {
private Integer count(PackagesSearchResult result) {
return ofNullable(result)
.map(PackagesSearchResult::getCount)
.orElse(null);
}

private static List<FacetGroup> facetGroups(PackagesSearchResult result) {
private List<FacetGroup> facetGroups(PackagesSearchResult result) {
var nonNullSearchFacets = ofNullable(result)
.map(PackagesSearchResult::getSearchFacets)
.orElseGet(Map::of);

return List.of(facetGroup(nonNullSearchFacets));
}

private static FacetGroup facetGroup(Map<String, CkanFacet> facets) {
private FacetGroup facetGroup(Map<String, CkanFacet> facets) {
return FacetGroup.builder()
.key("ckan")
.label("Metadata")
Expand All @@ -65,7 +64,7 @@ private static FacetGroup facetGroup(Map<String, CkanFacet> facets) {
.build();
}

private static Facet facet(Map.Entry<String, CkanFacet> entry) {
private Facet facet(Map.Entry<String, CkanFacet> entry) {
var key = entry.getKey();
var facet = entry.getValue();
var values = ofNullable(facet.getItems())
Expand All @@ -85,7 +84,7 @@ private static Facet facet(Map.Entry<String, CkanFacet> entry) {
.build();
}

private static List<SearchedDataset> results(PackagesSearchResult result) {
private List<SearchedDataset> results(PackagesSearchResult result) {
var nonNullPackages = ofNullable(result)
.map(PackagesSearchResult::getResults)
.orElseGet(List::of);
Expand All @@ -95,7 +94,7 @@ private static List<SearchedDataset> results(PackagesSearchResult result) {
.toList();
}

private static SearchedDataset result(CkanPackage dataset) {
private SearchedDataset result(CkanPackage dataset) {
var catalogue = ofNullable(dataset.getOrganization())
.map(CkanOrganization::getTitle)
.orElse(null);
Expand All @@ -111,13 +110,13 @@ private static SearchedDataset result(CkanPackage dataset) {
.build();
}

private static LocalDateTime parse(String date) {
private LocalDateTime parse(String date) {
return ofNullable(date)
.map(it -> LocalDateTime.parse(it, DATE_FORMATTER))
.orElse(null);
}

private static List<ValueLabel> values(List<String> values) {
private List<ValueLabel> values(List<String> values) {
return ofNullable(values)
.orElseGet(List::of)
.stream()
Expand All @@ -126,7 +125,7 @@ private static List<ValueLabel> values(List<String> values) {
.toList();
}

private static ValueLabel value(String value) {
private ValueLabel value(String value) {
return ofNullable(value)
.filter(Objects::nonNull)
.filter(not(String::isBlank))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

package io.github.genomicdatainfrastructure.discovery.services;

import static io.github.genomicdatainfrastructure.discovery.services.PackageShowMapper.DATE_FORMATTER;
import static java.time.LocalDateTime.parse;
import static org.assertj.core.api.Assertions.assertThat;

Expand All @@ -17,9 +16,14 @@
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.CkanOrganization;
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.CkanPackage;
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.CkanResource;
import java.time.format.DateTimeFormatter;

class PackageShowMapperTest {

private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(
"yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
);

@Test
void accepts_empty_package() {
var ckanPackage = CkanPackage.builder().build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

package io.github.genomicdatainfrastructure.discovery.services;

import static io.github.genomicdatainfrastructure.discovery.services.PackagesSearchResponseMapper.DATE_FORMATTER;
import static java.time.LocalDateTime.parse;
import static org.assertj.core.api.Assertions.assertThat;

Expand All @@ -22,9 +21,14 @@
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.CkanPackage;
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.PackagesSearchResponse;
import io.github.genomicdatainfrastructure.discovery.remote.ckan.model.PackagesSearchResult;
import java.time.format.DateTimeFormatter;

class PackagesSearchResponseMapperTest {

private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern(
"yyyy-MM-dd'T'HH:mm:ss.SSSSSS"
);

@Test
void accepts_null_result() {
var packagesSearchResponse = PackagesSearchResponse.builder()
Expand Down

0 comments on commit e8ecbea

Please sign in to comment.