diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/PersonHasPositionValidator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/PersonHasPositionValidator.java index 7cf1c2efa..6d41b3bb5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/PersonHasPositionValidator.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/PersonHasPositionValidator.java @@ -30,10 +30,6 @@ public class PersonHasPositionValidator implements N3Validator { if( "".equals(organizationUri)) organizationUri = null; -// System.out.println("newOrgName " + newOrgName); -// System.out.println("newOrgType " + newOrgType); -// System.out.println("organizationUri " + organizationUri); - Map errors = new HashMap(); if( organizationUri != null && (newOrgName != null || newOrgType != null) ){ errors.put("newOrgName", DUPLICATE_ERROR); diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/PublicationHasAuthorValidator.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/PublicationHasAuthorValidator.java new file mode 100644 index 000000000..2b3104bc4 --- /dev/null +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/edit/n3editing/PublicationHasAuthorValidator.java @@ -0,0 +1,46 @@ +package edu.cornell.mannlib.vitro.webapp.edit.n3editing; + +import java.util.HashMap; +import java.util.Map; + +import com.hp.hpl.jena.rdf.model.Literal; + +public class PublicationHasAuthorValidator implements N3Validator { + + private static String MISSING_AUTHOR_ERROR = "Must specify a new or existing author."; + private static String MISSING_FIRST_NAME_ERROR = "Must specify the author's first name."; + private static String MISSING_LAST_NAME_ERROR = "Must specify the author's last name."; + + @Override + public Map validate(EditConfiguration editConfig, + EditSubmission editSub) { + Map urisFromForm = editSub.getUrisFromForm(); + Map literalsFromForm = editSub.getLiteralsFromForm(); + + Literal firstName = literalsFromForm.get("firstName"); + if( firstName.getLexicalForm() != null && "".equals(firstName.getLexicalForm()) ) + firstName = null; + + Literal lastName = literalsFromForm.get("lastName"); + if( lastName.getLexicalForm() != null && "".equals(lastName.getLexicalForm()) ) + lastName = null; + + String personUri = urisFromForm.get("personUri"); + if ("".equals(personUri)) { + personUri = null; + } + + Map errors = new HashMap(); + + if (personUri == null && lastName == null && firstName == null) { + errors.put("lastName", MISSING_AUTHOR_ERROR); + } else if (lastName != null && firstName == null) { + errors.put("firstName", MISSING_FIRST_NAME_ERROR); + } else if (lastName == null && firstName != null) { + errors.put("lastName", MISSING_LAST_NAME_ERROR); + } + + return errors.size() != 0 ? errors : null; + } + +}