Skip to content

Commit 4134f22

Browse files
committed
comment fixes
1 parent 7eb2f4c commit 4134f22

File tree

11 files changed

+85
-45
lines changed

11 files changed

+85
-45
lines changed

src/main/java/edu/harvard/iq/dataverse/api/AbstractApiBean.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import edu.harvard.iq.dataverse.confirmemail.ConfirmEmailServiceBean;
1313
import edu.harvard.iq.dataverse.datacapturemodule.DataCaptureModuleServiceBean;
1414
import edu.harvard.iq.dataverse.dataset.DatasetTypeServiceBean;
15+
import edu.harvard.iq.dataverse.dataverse.featured.DataverseFeaturedItem;
1516
import edu.harvard.iq.dataverse.engine.command.Command;
1617
import edu.harvard.iq.dataverse.engine.command.DataverseRequest;
1718
import edu.harvard.iq.dataverse.engine.command.exception.*;
@@ -583,16 +584,16 @@ protected DvObject findDvoOrDie(@NotNull final String dvIdtf, String type) throw
583584
if (isNumeric(dvIdtf)) {
584585
dvObject = findDvo(Long.valueOf(dvIdtf));
585586
} else {
586-
if ("dataverse".equalsIgnoreCase(type)) {
587+
if (DataverseFeaturedItem.TYPES.DATAVERSE.name().equalsIgnoreCase(type)) {
587588
dvObject = findDataverseOrDie(dvIdtf);
588-
} else if ("dataset".equalsIgnoreCase(type)) {
589+
} else if (DataverseFeaturedItem.TYPES.DATASET.name().equalsIgnoreCase(type)) {
589590
dvObject = findDatasetOrDie(dvIdtf);
590-
} else if ("datafile".equalsIgnoreCase(type)) {
591+
} else if (DataverseFeaturedItem.TYPES.DATAFILE.name().equalsIgnoreCase(type)) {
591592
dvObject = findDataFileOrDie(dvIdtf);
592593
}
593594
}
594595
if (dvObject == null) {
595-
throw new WrappedResponse(error(Response.Status.NOT_FOUND, "Can't find Collection, Dataset, or Datafile with identifier='" + dvIdtf + "'"));
596+
throw new WrappedResponse(error( Response.Status.NOT_FOUND, BundleUtil.getStringFromBundle("find.dvo.error.dvObjectNotFound", Arrays.asList(dvIdtf))));
596597
}
597598
return dvObject;
598599
}

src/main/java/edu/harvard/iq/dataverse/api/Dataverses.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1808,8 +1808,8 @@ public Response createFeaturedItem(@Context ContainerRequestContext crc,
18081808
} catch (WrappedResponse wr) {
18091809
return wr.getResponse();
18101810
}
1811-
NewDataverseFeaturedItemDTO newDataverseFeaturedItemDTO = NewDataverseFeaturedItemDTO.fromFormData(content, displayOrder, imageFileInputStream, contentDispositionHeader, type, dvObject);
18121811
try {
1812+
NewDataverseFeaturedItemDTO newDataverseFeaturedItemDTO = NewDataverseFeaturedItemDTO.fromFormData(content, displayOrder, imageFileInputStream, contentDispositionHeader, type, dvObject);
18131813
DataverseFeaturedItem dataverseFeaturedItem = execCommand(new CreateDataverseFeaturedItemCommand(
18141814
createDataverseRequest(getRequestUser(crc)),
18151815
dataverse,

src/main/java/edu/harvard/iq/dataverse/api/dto/AbstractDataverseFeaturedItemDTO.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
package edu.harvard.iq.dataverse.api.dto;
22

3+
import edu.harvard.iq.dataverse.DataFile;
4+
import edu.harvard.iq.dataverse.Dataset;
5+
import edu.harvard.iq.dataverse.Dataverse;
36
import edu.harvard.iq.dataverse.DvObject;
47
import edu.harvard.iq.dataverse.dataverse.featured.DataverseFeaturedItem;
58

@@ -45,16 +48,16 @@ public String getImageFileName() {
4548
return imageFileName;
4649
}
4750

48-
public void setDvObject(String type, DvObject dvObject) {
49-
DataverseFeaturedItem.DvObjectFeaturedItem item = DataverseFeaturedItem.sanitizeDvObject(type, dvObject);
50-
this.type = item.type;
51-
this.dvObject = item.dvObject;
52-
}
53-
54-
public DvObject getDvObject() {
55-
return dvObject;
51+
public void setType(String type) {
52+
this.type = type;
5653
}
5754
public String getType() {
5855
return type;
5956
}
57+
public void setDvObject(DvObject dvObject) {
58+
this.dvObject = dvObject;
59+
}
60+
public DvObject getDvObject() {
61+
return dvObject;
62+
}
6063
}

src/main/java/edu/harvard/iq/dataverse/api/dto/NewDataverseFeaturedItemDTO.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@ public static NewDataverseFeaturedItemDTO fromFormData(String content,
1313
InputStream imageFileInputStream,
1414
FormDataContentDisposition contentDispositionHeader,
1515
String type,
16-
DvObject dvObject) {
16+
DvObject dvObject) throws IllegalArgumentException {
1717
NewDataverseFeaturedItemDTO newDataverseFeaturedItemDTO = new NewDataverseFeaturedItemDTO();
1818

1919
newDataverseFeaturedItemDTO.content = content;
2020
newDataverseFeaturedItemDTO.displayOrder = displayOrder;
21-
newDataverseFeaturedItemDTO.setDvObject(type, dvObject);
21+
newDataverseFeaturedItemDTO.type = type;
22+
newDataverseFeaturedItemDTO.dvObject = dvObject;
2223

2324
if (imageFileInputStream != null) {
2425
newDataverseFeaturedItemDTO.imageFileInputStream = imageFileInputStream;

src/main/java/edu/harvard/iq/dataverse/api/dto/UpdatedDataverseFeaturedItemDTO.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,14 @@ public static UpdatedDataverseFeaturedItemDTO fromFormData(String content,
1515
InputStream imageFileInputStream,
1616
FormDataContentDisposition contentDispositionHeader,
1717
String type,
18-
DvObject dvObject) {
18+
DvObject dvObject) throws IllegalArgumentException {
1919
UpdatedDataverseFeaturedItemDTO updatedDataverseFeaturedItemDTO = new UpdatedDataverseFeaturedItemDTO();
2020

2121
updatedDataverseFeaturedItemDTO.content = content;
2222
updatedDataverseFeaturedItemDTO.displayOrder = displayOrder;
2323
updatedDataverseFeaturedItemDTO.keepFile = keepFile;
24-
updatedDataverseFeaturedItemDTO.setDvObject(type, dvObject);
24+
updatedDataverseFeaturedItemDTO.type = type;
25+
updatedDataverseFeaturedItemDTO.dvObject = dvObject;
2526

2627
if (imageFileInputStream != null) {
2728
updatedDataverseFeaturedItemDTO.imageFileInputStream = imageFileInputStream;

src/main/java/edu/harvard/iq/dataverse/dataverse/featured/DataverseFeaturedItem.java

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import edu.harvard.iq.dataverse.Dataset;
55
import edu.harvard.iq.dataverse.Dataverse;
66
import edu.harvard.iq.dataverse.DvObject;
7+
import edu.harvard.iq.dataverse.util.BundleUtil;
78
import edu.harvard.iq.dataverse.util.SystemConfig;
89
import jakarta.persistence.*;
910
import jakarta.validation.constraints.NotBlank;
@@ -23,6 +24,9 @@
2324
public class DataverseFeaturedItem {
2425

2526
public static final List<String> VALID_TYPES = List.of("custom","dataverse","dataset","datafile");
27+
public enum TYPES {
28+
CUSTOM, DATAVERSE, DATASET, DATAFILE
29+
}
2630
public static final int MAX_FEATURED_ITEM_CONTENT_SIZE = 15000;
2731

2832
@Id
@@ -115,26 +119,25 @@ public void setDvObject(DvObject dvObject) {
115119
this.dvobject = dvObject;
116120
}
117121

118-
/*
119-
Make sure the object and type match.
120-
*/
121-
public static DvObjectFeaturedItem sanitizeDvObject(String type, DvObject dvObject) {
122-
String dvType = (type != null) ? type.toLowerCase() : "custom";
123-
if (DataverseFeaturedItem.VALID_TYPES.contains(dvType)) {
124-
if (("dataverse".equals(dvType) && dvObject instanceof Dataverse) ||
125-
("dataset".equals(dvType) && dvObject instanceof Dataset) ||
126-
("datafile".equals(dvType) && dvObject instanceof DataFile)) {
127-
return new DvObjectFeaturedItem(dvType, dvObject);
122+
public void setDvObject(String type, DvObject dvObject) throws IllegalArgumentException {
123+
this.type = DataverseFeaturedItem.TYPES.CUSTOM.name().toLowerCase();
124+
this.dvobject = null;
125+
String dvType = (type != null) ? type.toLowerCase() : DataverseFeaturedItem.TYPES.CUSTOM.name().toLowerCase();
126+
if (DataverseFeaturedItem.TYPES.CUSTOM.name().equalsIgnoreCase(dvType)) {
127+
if (dvObject != null) {
128+
throw new IllegalArgumentException(BundleUtil.getStringFromBundle("dataverse.update.featuredItems.error.TypeAndDvObjectMismatch"));
128129
}
129-
}
130-
return new DvObjectFeaturedItem("custom", null);
131-
}
132-
public static class DvObjectFeaturedItem {
133-
public String type;
134-
public DvObject dvObject;
135-
DvObjectFeaturedItem (String type, DvObject dvObject) {
136-
this.type = type;
137-
this.dvObject = dvObject;
130+
} else if (DataverseFeaturedItem.VALID_TYPES.contains(dvType)) {
131+
if ((DataverseFeaturedItem.TYPES.DATAVERSE.name().equalsIgnoreCase(dvType) && dvObject instanceof Dataverse) ||
132+
(DataverseFeaturedItem.TYPES.DATASET.name().equalsIgnoreCase(dvType) && dvObject instanceof Dataset) ||
133+
(DataverseFeaturedItem.TYPES.DATAFILE.name().equalsIgnoreCase(dvType) && dvObject instanceof DataFile)) {
134+
this.type = dvType;
135+
this.dvobject = dvObject;
136+
} else {
137+
throw new IllegalArgumentException(BundleUtil.getStringFromBundle("dataverse.update.featuredItems.error.TypeAndDvObjectMismatch"));
138+
}
139+
} else {
140+
throw new IllegalArgumentException(BundleUtil.getStringFromBundle("dataverse.update.featuredItems.error.invalidType", List.of(String.join(",", DataverseFeaturedItem.VALID_TYPES))));
138141
}
139142
}
140143
}

src/main/java/edu/harvard/iq/dataverse/engine/command/impl/AbstractWriteDataverseFeaturedItemCommand.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,17 @@ protected void setFileImageIfAvailableOrNull(DataverseFeaturedItem featuredItem,
7575
}
7676
}
7777

78-
protected void setDvObject(DataverseFeaturedItem featuredItem, DvObject dvObject) {
79-
featuredItem.setDvObject(dvObject);
78+
protected void validateAndSetDvObject(DataverseFeaturedItem featuredItem, String type, DvObject dvObject) throws CommandException {
79+
try {
80+
featuredItem.setDvObject(type, dvObject);
81+
} catch (IllegalArgumentException e) {
82+
throw new CommandException(
83+
BundleUtil.getStringFromBundle(
84+
"dataverse.update.featuredItems.error.invalidTypeAndDvObject",
85+
List.of(e.getMessage())
86+
),
87+
this
88+
);
89+
}
8090
}
8191
}

src/main/java/edu/harvard/iq/dataverse/engine/command/impl/CreateDataverseFeaturedItemCommand.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package edu.harvard.iq.dataverse.engine.command.impl;
22

33
import edu.harvard.iq.dataverse.Dataverse;
4-
import edu.harvard.iq.dataverse.DvObject;
54
import edu.harvard.iq.dataverse.dataverse.featured.DataverseFeaturedItem;
65
import edu.harvard.iq.dataverse.api.dto.NewDataverseFeaturedItemDTO;
76
import edu.harvard.iq.dataverse.engine.command.CommandContext;
@@ -28,8 +27,7 @@ public DataverseFeaturedItem execute(CommandContext ctxt) throws CommandExceptio
2827

2928
validateAndSetContent(dataverseFeaturedItem, newDataverseFeaturedItemDTO.getContent());
3029
dataverseFeaturedItem.setDisplayOrder(newDataverseFeaturedItemDTO.getDisplayOrder());
31-
dataverseFeaturedItem.setType(newDataverseFeaturedItemDTO.getType());
32-
dataverseFeaturedItem.setDvObject(newDataverseFeaturedItemDTO.getDvObject());
30+
validateAndSetDvObject(dataverseFeaturedItem, newDataverseFeaturedItemDTO.getType(), newDataverseFeaturedItemDTO.getDvObject());
3331

3432
setFileImageIfAvailableOrNull(
3533
dataverseFeaturedItem,

src/main/java/edu/harvard/iq/dataverse/engine/command/impl/UpdateDataverseFeaturedItemCommand.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ public UpdateDataverseFeaturedItemCommand(DataverseRequest request,
2626
public DataverseFeaturedItem execute(CommandContext ctxt) throws CommandException {
2727
validateAndSetContent(dataverseFeaturedItem, updatedDataverseFeaturedItemDTO.getContent());
2828
dataverseFeaturedItem.setDisplayOrder(updatedDataverseFeaturedItemDTO.getDisplayOrder());
29-
dataverseFeaturedItem.setType(updatedDataverseFeaturedItemDTO.getType());
30-
dataverseFeaturedItem.setDvObject(updatedDataverseFeaturedItemDTO.getDvObject());
29+
validateAndSetDvObject(dataverseFeaturedItem, updatedDataverseFeaturedItemDTO.getType(), updatedDataverseFeaturedItemDTO.getDvObject());
3130

3231
if (!updatedDataverseFeaturedItemDTO.isKeepFile()) {
3332
setFileImageIfAvailableOrNull(

src/main/java/propertyFiles/Bundle.properties

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1025,6 +1025,9 @@ dataverse.create.featuredItem.error.contentShouldBeProvided=Featured item 'conte
10251025
dataverse.create.featuredItem.error.contentExceedsLengthLimit=Featured item content exceeds the maximum allowed length of {0} characters.
10261026
dataverse.update.featuredItems.error.missingInputParams=All input parameters (id, content, displayOrder, keepFile, fileName) are required.
10271027
dataverse.update.featuredItems.error.inputListsSizeMismatch=All input lists (id, content, displayOrder, keepFile, fileName, type, dvobject) must have the same size.
1028+
dataverse.update.featuredItems.error.invalidTypeAndDvObject=Invalid type and DvObject.
1029+
dataverse.update.featuredItems.error.invalidType=Unknown 'type' must be one of {0}
1030+
dataverse.update.featuredItems.error.TypeAndDvObjectMismatch=The 'type' passed does not match the dvObject type. Or the dvObject was missing.
10281031
dataverse.delete.featuredItems.success=All featured items of this Dataverse have been successfully deleted.
10291032
# rolesAndPermissionsFragment.xhtml
10301033

@@ -2405,6 +2408,7 @@ find.dataverse.role.error.role.not.found.id=Dataverse Role with ID {0} not found
24052408
find.dataverse.role.error.role.not.found.bad.id=Bad Dataverse Role ID number: {0}
24062409
find.dataverse.role.error.role.not.found.alias=Dataverse Role with alias {0} not found.
24072410
find.dataverse.role.error.role.builtin.not.allowed=May not delete Built In Role {0}.
2411+
find.dvo.error.dvObjectNotFound=Can't find Collection, Dataset, or Datafile with identifier {0}
24082412
file.addreplace.error.dataset_id_not_found=There was no dataset found for ID:
24092413
file.addreplace.error.no_edit_dataset_permission=You do not have permission to edit this dataset.
24102414
file.addreplace.error.filename_undetermined=The file name cannot be determined.

0 commit comments

Comments
 (0)