Skip to content

Commit 4f11bb9

Browse files
#2663 Basic metadata's contributors - fix saving and validation issues
1 parent 4d208ea commit 4f11bb9

File tree

4 files changed

+194
-83
lines changed

4 files changed

+194
-83
lines changed

src/main/java/org/gbif/ipt/model/datapackage/metadata/FrictionlessContributor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import java.util.Map;
2222
import java.util.StringJoiner;
2323
import javax.validation.Valid;
24-
import javax.validation.constraints.NotNull;
24+
import javax.validation.constraints.NotBlank;
2525
import javax.validation.constraints.Pattern;
2626

2727
import com.fasterxml.jackson.annotation.JsonAnyGetter;
@@ -47,7 +47,7 @@ public class FrictionlessContributor implements Contributor, Serializable {
4747
* (Required)
4848
*/
4949
@JsonProperty("title")
50-
@NotNull(message = "validation.input.required", groups = BasicMetadata.class)
50+
@NotBlank(message = "validation.input.required", groups = BasicMetadata.class)
5151
private String title;
5252

5353
/**

src/main/java/org/gbif/ipt/model/datapackage/metadata/camtrap/CamtrapContributor.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.LinkedHashMap;
2323
import java.util.List;
2424
import java.util.Map;
25+
import java.util.StringJoiner;
2526

2627
import com.fasterxml.jackson.annotation.JsonInclude;
2728
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -86,6 +87,20 @@ public void setLastName(String lastName) {
8687
this.lastName = lastName;
8788
}
8889

90+
@Override
91+
public String toString() {
92+
return new StringJoiner(", ", CamtrapContributor.class.getSimpleName() + "[", "]")
93+
.add("title='" + super.getTitle() + "'")
94+
.add("path='" + super.getPath() + "'")
95+
.add("email='" + super.getEmail() + "'")
96+
.add("organization='" + super.getOrganization() + "'")
97+
.add("role='" + super.getRole() + "'")
98+
.add("firstName='" + firstName + "'")
99+
.add("lastName='" + lastName + "'")
100+
.add("additionalProperties=" + super.getAdditionalProperties())
101+
.toString();
102+
}
103+
89104
public static class CamtrapContributorDeserializer extends JsonDeserializer<Contributor> {
90105
@Override
91106
public Contributor deserialize(JsonParser jsonParser, DeserializationContext ctxt) throws IOException {

src/main/java/org/gbif/ipt/validation/NotNullForPeopleContributorsValidator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@
1313
*/
1414
package org.gbif.ipt.validation;
1515

16-
import org.apache.commons.beanutils.BeanUtils;
17-
import org.apache.commons.lang3.StringUtils;
18-
1916
import javax.validation.ConstraintValidator;
2017
import javax.validation.ConstraintValidatorContext;
2118
import java.lang.reflect.InvocationTargetException;
2219
import java.util.Arrays;
2320
import java.util.List;
2421

22+
import org.apache.commons.beanutils.BeanUtils;
23+
import org.apache.commons.lang3.StringUtils;
24+
2525
public class NotNullForPeopleContributorsValidator implements ConstraintValidator<NotNullLastNameForPeopleContributors, Object> {
2626

2727
private static final List<String> ROLES = Arrays.asList("contact", "principalInvestigator", "contributor");
@@ -30,7 +30,7 @@ public class NotNullForPeopleContributorsValidator implements ConstraintValidato
3030
public boolean isValid(Object value, ConstraintValidatorContext ctx) {
3131
try {
3232
String roleValue = BeanUtils.getProperty(value, "role");
33-
String lastName = BeanUtils.getProperty(value, "lastName");
33+
String lastName = StringUtils.trimToNull(BeanUtils.getProperty(value, "lastName"));
3434

3535
// last name must not be null for the roles
3636
if ((ROLES.contains(roleValue) || StringUtils.isEmpty(roleValue)) && StringUtils.isEmpty(lastName)) {

0 commit comments

Comments
 (0)