Skip to content

Commit

Permalink
Merge pull request #75 from DiSSCo/feature/remove-empty-objects
Browse files Browse the repository at this point in the history
Only add objects when not empty
  • Loading branch information
samleeflang authored Nov 25, 2024
2 parents ece746a + 1924666 commit 7e781fc
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,7 @@
import eu.dissco.core.translator.terms.specimen.stratigraphy.lithostratigraphic.Member;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
Expand All @@ -266,6 +267,12 @@
@RequiredArgsConstructor
public abstract class BaseDigitalObjectDirector {

private static final Georeference EMPTY_GEOREFERENCE = new Georeference().withType(
"ods:Georeference");
private static final GeologicalContext EMPTY_GEOLOGICAL_CONTEXT = new GeologicalContext().withType(
"ods:GeologicalContext");
private static final Location EMPTY_LOCATION = new Location().withType("ods:Location");

protected final ObjectMapper mapper;
protected final TermMapper termMapper;
private final OrganisationNameComponent organisationNameComponent;
Expand Down Expand Up @@ -619,6 +626,12 @@ private List<Event> assembleEventTerms(JsonNode data, boolean dwc) {
setMinMaxMeterField(new MaximumElevationInMeters(), location, data, dwc);
setMinMaxMeterField(new MinimumDepthInMeters(), location, data, dwc);
setMinMaxMeterField(new MaximumDepthInMeters(), location, data, dwc);
if (!Objects.equals(geoReference, EMPTY_GEOREFERENCE)) {
location.setOdsHasGeoreference(geoReference);
}
if (!Objects.equals(geologicalContext, EMPTY_GEOLOGICAL_CONTEXT)) {
location.setOdsHasGeologicalContext(geologicalContext);
}
var assertions = new EventAssertions().gatherEventAssertions(mapper, data, dwc);
var event = new Event()
.withType("ods:Event")
Expand Down Expand Up @@ -650,8 +663,10 @@ private List<Event> assembleEventTerms(JsonNode data, boolean dwc) {
.withDwcSampleSizeValue(parseToDouble(new SampleSizeValue(), data, dwc))
.withDwcCaste(termMapper.retrieveTerm(new Caste(), data, dwc))
.withDwcVitality(termMapper.retrieveTerm(new Vitality(), data, dwc))
.withOdsHasLocation(location)
.withOdsHasAssertions(assertions);
if (!Objects.equals(location, EMPTY_LOCATION)) {
event.setOdsHasLocation(location);
}
event.setOdsHasAgents(
addAgent(event.getOdsHasAgents(), termMapper.retrieveTerm(new RecordedBy(), data, dwc),
termMapper.retrieveTerm(new RecordedByID(), data, dwc), COLLECTOR, SCHEMA_PERSON));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import eu.dissco.core.translator.schema.Identification;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;
Expand All @@ -22,6 +23,7 @@
public class DwcaDigitalObjectDirector extends BaseDigitalObjectDirector {

private static final String EXTENSION = "extensions";
private static final Citation EMTPY_CITATION = new Citation().withType("ods:Citation");

public DwcaDigitalObjectDirector(ObjectMapper mapper, TermMapper termMapper,
OrganisationNameComponent rorComponent, SourceSystemComponent sourceSystemComponent,
Expand Down Expand Up @@ -61,7 +63,10 @@ protected List<Citation> assembleSpecimenCitations(JsonNode data, boolean dwc) {
}
}
} else {
citations.add(createCitation(data, dwc));
var citation = createCitation(data, dwc);
if (!Objects.equals(citation, EMTPY_CITATION)) {
citations.add(citation);
}
}
return citations;
}
Expand Down

0 comments on commit 7e781fc

Please sign in to comment.