Skip to content

Commit e3a25fa

Browse files
committed
reduce code duplication #6570
1 parent d54206f commit e3a25fa

File tree

2 files changed

+13
-38
lines changed

2 files changed

+13
-38
lines changed

src/main/java/edu/harvard/iq/dataverse/DatasetVersion.java

+12-37
Original file line numberDiff line numberDiff line change
@@ -754,43 +754,17 @@ public String getDescriptionHtmlEscaped() {
754754
return MarkupChecker.escapeHtml(getDescription());
755755
}
756756

757-
public List<String[]> getDatasetContacts(){
758-
List <String[]> retList = new ArrayList<>();
759-
for (DatasetField dsf : this.getDatasetFields()) {
760-
Boolean addContributor = true;
761-
String contributorName = "";
762-
String contributorAffiliation = "";
763-
if (dsf.getDatasetFieldType().getName().equals(DatasetFieldConstant.datasetContact)) {
764-
for (DatasetFieldCompoundValue authorValue : dsf.getDatasetFieldCompoundValues()) {
765-
for (DatasetField subField : authorValue.getChildDatasetFields()) {
766-
if (subField.getDatasetFieldType().getName().equals(DatasetFieldConstant.datasetContactName)) {
767-
if (subField.isEmptyForDisplay()) {
768-
addContributor = false;
769-
}
770-
contributorName = subField.getDisplayValue();
771-
}
772-
if (subField.getDatasetFieldType().getName().equals(DatasetFieldConstant.datasetContactAffiliation)) {
773-
contributorAffiliation = subField.getDisplayValue();
774-
}
775-
776-
}
777-
if (addContributor) {
778-
String[] datasetContributor = new String[] {contributorName, contributorAffiliation};
779-
retList.add(datasetContributor);
780-
}
781-
}
782-
}
783-
}
784-
return retList;
757+
public List<String[]> getDatasetContacts() {
758+
boolean getDisplayValues = true;
759+
return getDatasetContacts(getDisplayValues);
785760
}
786761

787762
/**
788-
* This method is the same as getDatasetContacts above but the actual value
789-
* is returned for affiliation instead of the "display" value, which as of
790-
* this writing wraps the value in parentheses.
763+
* @param getDisplayValues Instead of the retrieving pristine value in the
764+
* database, run the value through special formatting.
791765
*/
792-
public List<String[]> getDatasetContactsNonDisplay() {
793-
List<String[]> retList = new ArrayList<>();
766+
public List<String[]> getDatasetContacts(boolean getDisplayValues) {
767+
List <String[]> retList = new ArrayList<>();
794768
for (DatasetField dsf : this.getDatasetFields()) {
795769
Boolean addContributor = true;
796770
String contributorName = "";
@@ -802,21 +776,22 @@ public List<String[]> getDatasetContactsNonDisplay() {
802776
if (subField.isEmptyForDisplay()) {
803777
addContributor = false;
804778
}
779+
// There is no use case yet for getting the non-display value for contributorName.
805780
contributorName = subField.getDisplayValue();
806781
}
807782
if (subField.getDatasetFieldType().getName().equals(DatasetFieldConstant.datasetContactAffiliation)) {
808-
contributorAffiliation = subField.getValue();
783+
contributorAffiliation = getDisplayValues ? subField.getDisplayValue() : subField.getValue();
809784
}
810785

811786
}
812787
if (addContributor) {
813-
String[] datasetContributor = new String[]{contributorName, contributorAffiliation};
788+
String[] datasetContributor = new String[] {contributorName, contributorAffiliation};
814789
retList.add(datasetContributor);
815790
}
816791
}
817792
}
818-
}
819-
return retList;
793+
}
794+
return retList;
820795
}
821796

822797
public List<String[]> getDatasetProducers(){

src/main/java/edu/harvard/iq/dataverse/search/SolrSearchResult.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -596,7 +596,7 @@ public JsonObjectBuilder json(boolean showRelevance, boolean showEntityIds, bool
596596
if (!dv.getDatasetContacts().isEmpty()) {
597597
JsonArrayBuilder contacts = Json.createArrayBuilder();
598598
NullSafeJsonBuilder nullSafeJsonBuilderInner = jsonObjectBuilder();
599-
for (String contact[] : dv.getDatasetContactsNonDisplay()) {
599+
for (String contact[] : dv.getDatasetContacts(false)) {
600600
nullSafeJsonBuilderInner.add("name", contact[0]);
601601
nullSafeJsonBuilderInner.add("affiliation", contact[1]);
602602
contacts.add(nullSafeJsonBuilderInner);

0 commit comments

Comments
 (0)