Skip to content

Commit

Permalink
Only add objects when not empty
Browse files Browse the repository at this point in the history
  • Loading branch information
samleeflang committed Nov 21, 2024
1 parent 71264ad commit cde73bb
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,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 @@ -265,6 +266,12 @@
@RequiredArgsConstructor
public abstract class BaseDigitalObjectDirector {

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

protected final ObjectMapper mapper;
protected final TermMapper termMapper;
private final OrganisationNameComponent organisationNameComponent;
Expand Down Expand Up @@ -605,9 +612,17 @@ private List<Event> assembleEventTerms(JsonNode data, boolean dwc) {
.withDwcVerbatimElevation(termMapper.retrieveTerm(new VerbatimElevation(), data, dwc))
.withDwcVerticalDatum(termMapper.retrieveTerm(new VerticalDatum(), data, dwc))
.withDwcLocationAccordingTo(termMapper.retrieveTerm(new LocationAccordingTo(), data, dwc))
.withDwcLocationRemarks(termMapper.retrieveTerm(new LocationRemarks(), data, dwc))
.withOdsHasGeoreference(geoReference)
.withOdsHasGeologicalContext(geologicalContext);
.withDwcLocationRemarks(termMapper.retrieveTerm(new LocationRemarks(), data, dwc));
if (!Objects.equals(geoReference, EMPTY_GEOREFERENCE)) {
location.setOdsHasGeoreference(geoReference);
}
if (!Objects.equals(geologicalContext, EMPTY_GEOLOGICAL_CONTEXT)) {
location.setOdsHasGeologicalContext(geologicalContext);
}
setMinMaxMeterField(new MinimumElevationInMeters(), location, data, dwc);
setMinMaxMeterField(new MaximumElevationInMeters(), location, data, dwc);
setMinMaxMeterField(new MinimumDepthInMeters(), location, data, dwc);
setMinMaxMeterField(new MaximumDepthInMeters(), location, data, dwc);
var assertions = new EventAssertions().gatherEventAssertions(mapper, data, dwc);
var event = new Event()
.withType("ods:Event")
Expand Down Expand Up @@ -639,8 +654,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 cde73bb

Please sign in to comment.