VIVO-187 validation for URIs entered on ontology creation form
This commit is contained in:
parent
73d54999d4
commit
0dc3956b09
2 changed files with 27 additions and 12 deletions
|
@ -2,28 +2,37 @@
|
||||||
|
|
||||||
package edu.cornell.mannlib.vedit.validator.impl;
|
package edu.cornell.mannlib.vedit.validator.impl;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vedit.validator.Validator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import com.hp.hpl.jena.iri.IRI;
|
||||||
|
import com.hp.hpl.jena.iri.IRIFactory;
|
||||||
|
import com.hp.hpl.jena.iri.Violation;
|
||||||
|
|
||||||
import edu.cornell.mannlib.vedit.validator.ValidationObject;
|
import edu.cornell.mannlib.vedit.validator.ValidationObject;
|
||||||
import java.util.regex.*;
|
import edu.cornell.mannlib.vedit.validator.Validator;
|
||||||
|
|
||||||
public class UrlValidator implements Validator {
|
public class UrlValidator implements Validator {
|
||||||
|
|
||||||
public ValidationObject validate (Object obj) throws IllegalArgumentException {
|
public ValidationObject validate (Object obj) throws IllegalArgumentException {
|
||||||
|
|
||||||
ValidationObject vo = new ValidationObject();
|
ValidationObject vo = new ValidationObject();
|
||||||
String theString = null;
|
|
||||||
|
|
||||||
if (!(obj instanceof String)){
|
if (!(obj instanceof String)){
|
||||||
throw new IllegalArgumentException("Expected instance of String");
|
throw new IllegalArgumentException("Expected instance of String");
|
||||||
}
|
}
|
||||||
|
|
||||||
Pattern pat = Pattern.compile("[a-z]{3,5}*://.*\\.[a-z]{2,4}");
|
IRIFactory factory = IRIFactory.jenaImplementation();
|
||||||
Matcher mat = pat.matcher(theString);
|
IRI iri = factory.create((String) obj);
|
||||||
if (mat.matches()){
|
if (iri.hasViolation(false) ) {
|
||||||
vo.setValid(true);
|
String errorStr = "";
|
||||||
} else {
|
Iterator<Violation> violIt = iri.violations(false);
|
||||||
|
while(violIt.hasNext()) {
|
||||||
|
errorStr += violIt.next().getShortMessage() + " ";
|
||||||
|
}
|
||||||
vo.setValid(false);
|
vo.setValid(false);
|
||||||
vo.setMessage("Please enter a valid URL");
|
vo.setMessage("Please enter a valid URL. " + errorStr);
|
||||||
|
} else {
|
||||||
|
vo.setValid(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
vo.setValidatedObject(obj);
|
vo.setValidatedObject(obj);
|
||||||
|
|
|
@ -22,6 +22,7 @@ import edu.cornell.mannlib.vedit.forwarder.impl.UrlForwarder;
|
||||||
import edu.cornell.mannlib.vedit.util.FormUtils;
|
import edu.cornell.mannlib.vedit.util.FormUtils;
|
||||||
import edu.cornell.mannlib.vedit.validator.Validator;
|
import edu.cornell.mannlib.vedit.validator.Validator;
|
||||||
import edu.cornell.mannlib.vedit.validator.impl.RequiredFieldValidator;
|
import edu.cornell.mannlib.vedit.validator.impl.RequiredFieldValidator;
|
||||||
|
import edu.cornell.mannlib.vedit.validator.impl.UrlValidator;
|
||||||
import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
|
import edu.cornell.mannlib.vitro.webapp.auth.permissions.SimplePermission;
|
||||||
import edu.cornell.mannlib.vitro.webapp.beans.Ontology;
|
import edu.cornell.mannlib.vitro.webapp.beans.Ontology;
|
||||||
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
||||||
|
@ -47,7 +48,13 @@ public class OntologyRetryController extends BaseEditController {
|
||||||
epo.setBeanClass(Ontology.class);
|
epo.setBeanClass(Ontology.class);
|
||||||
epo.setBeanMask(testMask);
|
epo.setBeanMask(testMask);
|
||||||
|
|
||||||
String action = "insert";
|
String action = null;
|
||||||
|
if (epo.getAction() == null) {
|
||||||
|
action = "insert";
|
||||||
|
epo.setAction("insert");
|
||||||
|
} else {
|
||||||
|
action = epo.getAction();
|
||||||
|
}
|
||||||
|
|
||||||
OntologyDao oDao = request.getUnfilteredWebappDaoFactory().getOntologyDao();
|
OntologyDao oDao = request.getUnfilteredWebappDaoFactory().getOntologyDao();
|
||||||
epo.setDataAccessObject(oDao);
|
epo.setDataAccessObject(oDao);
|
||||||
|
@ -67,13 +74,12 @@ public class OntologyRetryController extends BaseEditController {
|
||||||
epo.setOriginalBean(ontologyForEditing);
|
epo.setOriginalBean(ontologyForEditing);
|
||||||
} else {
|
} else {
|
||||||
ontologyForEditing = (Ontology) epo.getNewBean();
|
ontologyForEditing = (Ontology) epo.getNewBean();
|
||||||
action = "update";
|
|
||||||
log.error("using newBean");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//validators
|
//validators
|
||||||
List<Validator> validatorList = new ArrayList<Validator>();
|
List<Validator> validatorList = new ArrayList<Validator>();
|
||||||
validatorList.add(new RequiredFieldValidator());
|
validatorList.add(new RequiredFieldValidator());
|
||||||
|
validatorList.add(new UrlValidator());
|
||||||
epo.getValidatorMap().put("URI", validatorList);
|
epo.getValidatorMap().put("URI", validatorList);
|
||||||
|
|
||||||
//make a simple mask for the class's id
|
//make a simple mask for the class's id
|
||||||
|
|
Loading…
Add table
Reference in a new issue