%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page trimDirectiveWhitespaces="true" %>
<%@ page import="org.crosswire.community.projects.ntmss.data.Regularization.RegularizationRule" %>
<%@ page import="org.crosswire.community.projects.ntmss.data.Regularization" %>
<%@ page import="org.crosswire.sword.keys.VerseKey" %>
<%@ page import="org.crosswire.xml.XMLBlock" %>
<%@ page import="org.crosswire.webtools.annotation.*" %>
<%@ page import="javax.validation.constraints.NotNull" %>
<%@ page import="org.crosswire.webtools.*" %>
<%!
@Description(value = "Create a new exception for a global regularization rule", name = "regularization/addexception")
public static class MyParameters extends Parameters {
@NotNull
@Description(value = "regularization rule id to modify. if not provided, a new regularization rule will be created.", example = "32")
public Integer regID;
@Description(value = "owner of the regularization rule exception", example = "joe")
public String userName;
@Description(value = "group name to assign rule exception to", example = "ECM Matthew")
public String groupName;
@NotNull
@Description(value = "context verse", example = "Jn.2.2")
public String verse;
@Override
protected void customValidation() {
if (getUser() == null) {
addError(-5, "Must be logged in.");
return;
}
if (userName == null) userName = getUser().getUserName();
}
}
%>
<%
MyParameters params = new MyParameters().loadFromRequest(request, response, false);
if (params.getErrors().size() == 0) {
RegularizationRule reg = RegularizationRule.getRegularizationRule(params.regID);
if (reg == null) {
params.addError(-6, "regID: " + params.regID + " not found.");
}
else {
int verseHash = new VerseKey(params.verse).getHashNumber();
Regularization.setRuleException(params.regID, verseHash, params.userName, params.groupName);
Serializer.output(response, out, params, XMLBlock.createXMLBlock(""));
return;
}
}
else params.format = "html";
Serializer.reportErrors(request, response, out, params, true);
%>