From 488f71b1c8b2a509197810dd3e47b37c1e6598e9 Mon Sep 17 00:00:00 2001 From: bdc34 Date: Wed, 17 Nov 2010 17:43:56 +0000 Subject: [PATCH] working on freemarker custom forms --- productMods/WEB-INF/web.xml | 9 + .../forms/personHasEducationalTraining.jsp | 92 +++-- .../body/personHasEducationalTraining.ftl | 101 ++++++ .../widgets/edit/DateTimeWithPrecision.ftl | 10 +- .../edit/elements/DateTimeWithPrecision.java | 331 +++++++++++------- .../elements/DateTimeWithPrecisionTest.java | 47 ++- 6 files changed, 403 insertions(+), 187 deletions(-) create mode 100644 productMods/templates/freemarker/body/personHasEducationalTraining.ftl diff --git a/productMods/WEB-INF/web.xml b/productMods/WEB-INF/web.xml index 70b4f828..5da37870 100644 --- a/productMods/WEB-INF/web.xml +++ b/productMods/WEB-INF/web.xml @@ -320,6 +320,15 @@ IndexController /SearchIndex + + + N3EditFormController + edu.cornell.mannlib.vitro.webapp.controller.freemarker.N3EditFormController + + + N3EditFormController + /N3EditForm + @@ -430,4 +426,4 @@ var customFormData = { }; - +--%> diff --git a/productMods/templates/freemarker/body/personHasEducationalTraining.ftl b/productMods/templates/freemarker/body/personHasEducationalTraining.ftl new file mode 100644 index 00000000..15a7e623 --- /dev/null +++ b/productMods/templates/freemarker/body/personHasEducationalTraining.ftl @@ -0,0 +1,101 @@ +<#-- $This file is distributed under the terms of the license in /doc/license.txt$ --> + +<#-- this is in request.subject.name --> +<#assign subjectName = "Bogus, Al"> + +<#-- where is the context path suppose to come from? --> +<#assign contextPath = "/vivo"> + +<#assign editMode="edit"> +<#assign editMode=editConfig.object!"add"> + +<#if editMode == "edit"> + <#assign titleVerb="Edit"> + <#assign title="Edit educational background entry for subjectName" /> + <#assign submitButtonText="Edit Educational Training"> + <#assign disabledVal="disabled"> +<#else> + <#assign titleVerb="Create"> + <#assign submitButtonText="Educational Training"> + <#assign disabledVal=""/> + +<#assign requiredHint=" *"/> + + +
+

${titleVerb} educational training entry for ${subjectName}

+ +
+ +
+ + +
+ + + + + <@widget name="editElement" name="dateTime" /> + +
+
+ + + or +
+ + +
+
Add a New Organization
+ + + + + +
+
+ + +
+ + + + + +

e.g., Postdoctoral training or Transferred

+
+ + +

+ + + + <#assign cancelParams = "editKey=${editConfig.editKey}&cancel=true" > + orCancel +

+ +

* required fields

+
+ +<#assign acUrl="/autocomplete?tokenize=true&stem=true" > + + + +
\ No newline at end of file diff --git a/productMods/templates/freemarker/widgets/edit/DateTimeWithPrecision.ftl b/productMods/templates/freemarker/widgets/edit/DateTimeWithPrecision.ftl index 767eb85d..d8c97c21 100644 --- a/productMods/templates/freemarker/widgets/edit/DateTimeWithPrecision.ftl +++ b/productMods/templates/freemarker/widgets/edit/DateTimeWithPrecision.ftl @@ -1,6 +1,12 @@ <#-- $This file is distributed under the terms of the license in /doc/license.txt$ --> -${fieldName}
+<#-- +This is the placeholder template for the dateTime with precision input element. +The UI team should replace any or all of the text in this file. +--> + +
+${fieldName}
year:
month:
@@ -8,4 +14,4 @@ day:
hour:
minute:
second:
-
\ No newline at end of file +
\ No newline at end of file diff --git a/src/edu/cornell/mannlib/vitro/webapp/edit/elements/DateTimeWithPrecision.java b/src/edu/cornell/mannlib/vitro/webapp/edit/elements/DateTimeWithPrecision.java index 94784959..f7212fdf 100644 --- a/src/edu/cornell/mannlib/vitro/webapp/edit/elements/DateTimeWithPrecision.java +++ b/src/edu/cornell/mannlib/vitro/webapp/edit/elements/DateTimeWithPrecision.java @@ -7,45 +7,71 @@ import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.joda.time.DateTime; -import org.joda.time.format.ISODateTimeFormat; -import com.hp.hpl.jena.datatypes.xsd.XSDDatatype; -import com.hp.hpl.jena.datatypes.xsd.XSDDateTime; import com.hp.hpl.jena.rdf.model.Literal; import com.hp.hpl.jena.rdf.model.Model; import com.hp.hpl.jena.rdf.model.ModelFactory; -import com.hp.hpl.jena.rdf.model.ResourceFactory; import edu.cornell.mannlib.vitro.webapp.controller.freemarker.FreemarkerHttpServlet; +import edu.cornell.mannlib.vitro.webapp.dao.VitroVocabulary; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditSubmission; +import edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field; import freemarker.template.Configuration; /** - * This is intended to work in conjunction with a tempalte to create the HTML for a + * This is intended to work in conjunction with a template to create the HTML for a * datetime with precision and to convert he submitted parameters into * varname -> Literal and varname -> URI maps. */ public class DateTimeWithPrecision extends BaseEditElement { + + String fieldName; + + public DateTimeWithPrecision(Field field) { + super(field); + fieldName = field.getName(); + } + + private static final Log log = LogFactory.getLog(DateTimeWithPrecision.class); - private String TEMPATE_NAME = "DateTimeWithPrecision.ftl"; - protected String[] PRECISIONS = { - "http://bogus.com/precision/none", - "http://bogus.com/precision/year", - "http://bogus.com/precision/month", - "http://bogus.com/precision/day", - "http://bogus.com/precision/hour", - "http://bogus.com/precision/minute", - "http://bogus.com/precision/second" }; + protected String TEMPATE_NAME = "DateTimeWithPrecision.ftl"; + protected static final String vivoCore = "http://vivoweb.org/ontology/core#"; + protected static final String[] PRECISIONS = { + vivoCore+"NoPrecision", + vivoCore+"YearPrecision", + vivoCore+"YearMonthPrecision", + vivoCore+"YearMonthDayPrecision", + vivoCore+"YearMonthDayHourPrecision", + vivoCore+"YearMonthDayHourMinutePrecision", + vivoCore+"YearMonthDayTimePrecision"}; + + protected enum Precision { + NONE(PRECISIONS[0]), + YEAR(PRECISIONS[1]), + MONTH(PRECISIONS[2]), + DAY(PRECISIONS[3]), + HOUR(PRECISIONS[4]), + MINUTE(PRECISIONS[5]), + SECOND(PRECISIONS[6]); + + private final String URI; + Precision(String uri){ + URI=uri; + } + public String uri(){return URI;} + } @Override public String draw(String fieldName, EditConfiguration editConfig, EditSubmission editSub, Configuration fmConfig) { - Map map = getMapForTemplate(fieldName, editConfig, editSub); + Map map = getMapForTemplate( editConfig, editSub); map.putAll( FreemarkerHttpServlet.getDirectives()); return merge( fmConfig, TEMPATE_NAME, map); } @@ -53,12 +79,12 @@ public class DateTimeWithPrecision extends BaseEditElement { /** * This produces a map for use in the template. */ - private Map getMapForTemplate(String fieldName, EditConfiguration editConfig, EditSubmission editSub) { + private Map getMapForTemplate(EditConfiguration editConfig, EditSubmission editSub) { Mapmap = new HashMap(); map.put("fieldName", fieldName); - DateTime value = getTimeValue(fieldName,editConfig,editSub); + DateTime value = getTimeValue(editConfig,editSub); map.put("year", Integer.toString(value.getYear())); map.put("month", Integer.toString(value.getMonthOfYear())); map.put("day", Integer.toString(value.getDayOfMonth()) ); @@ -66,7 +92,7 @@ public class DateTimeWithPrecision extends BaseEditElement { map.put("minute", Integer.toString(value.getMinuteOfHour()) ); map.put("second", Integer.toString(value.getSecondOfMinute() )) ; - map.put("precision", getPrecision(fieldName,editConfig,editSub)); + map.put("precision", getPrecision(editConfig,editSub)); //maybe we should put in empty validation errors to show what they would be? //ex: map.put("year.error",""); @@ -75,14 +101,12 @@ public class DateTimeWithPrecision extends BaseEditElement { } - private String getPrecision(String fieldName, - EditConfiguration editConfig, EditSubmission editSub) { + private String getPrecision(EditConfiguration editConfig, EditSubmission editSub) { // TODO Auto-generated method stub return "http://bogus.precision.uri.com/bogus"; } - private DateTime getTimeValue(String fieldName, EditConfiguration editConfig, - EditSubmission editSub) { + private DateTime getTimeValue(EditConfiguration editConfig, EditSubmission editSub) { return new DateTime(); } @@ -95,14 +119,13 @@ public class DateTimeWithPrecision extends BaseEditElement { EditConfiguration editConfig, Map queryParameters) { Map literalMap = new HashMap(); - Literal datetime =getDateTime( fieldName, queryParameters); + Literal datetime =getDateTime( queryParameters); literalMap.put(fieldName+".value", datetime); return literalMap; } - protected Literal getDateTime(String fieldName, - Map queryParameters) { + protected Literal getDateTime( Map queryParameters ) { Integer year = parseToInt(fieldName+".year", queryParameters); Integer month = parseToInt(fieldName+".month", queryParameters); if( month == null || month == 0 ) @@ -149,7 +172,7 @@ public class DateTimeWithPrecision extends BaseEditElement { EditConfiguration editConfig, Map queryParameters) { String precisionUri; try { - precisionUri = getSubmittedPrecision( fieldName, queryParameters); + precisionUri = getSubmittedPrecision( queryParameters); } catch (Exception e) { // TODO Auto-generated catch block log.error("getURIS() should only be called on input that passed getValidationErrors()"); @@ -165,8 +188,7 @@ public class DateTimeWithPrecision extends BaseEditElement { * the error message if the queryParameters cannot make a valid date/precision because * there are values missing. */ - protected String getSubmittedPrecision(String fieldName, - Map queryParameters) throws Exception { + protected String getSubmittedPrecision(Map queryParameters) throws Exception { Integer year = parseToInt(fieldName+".year",queryParameters); Integer month = parseToInt(fieldName+".month",queryParameters); @@ -218,35 +240,176 @@ public class DateTimeWithPrecision extends BaseEditElement { if ( !hasNoneOrSingle(fieldName+"."+name, queryParameters)) errorMsgMap.put(fieldName+"."+name, "must have only one value for " + name); } - - errorMsgMap.putAll(checkDate( fieldName, queryParameters) ); + + String precisionURI = null; + try{ + precisionURI = getSubmittedPrecision( queryParameters); + }catch(Exception ex){ + errorMsgMap.put(fieldName,ex.getMessage()); + return errorMsgMap; + } + + errorMsgMap.putAll(checkDate( precisionURI, queryParameters) ); return errorMsgMap; } /** - * This checks for invalid date times like "2010-02-31" or "2010-02-01T99:99:99". + * This checks for invalid date times. */ - private Map checkDate(String fieldName, Map queryParameters){ - //TODO - //see EditSubmission.getDateTime() for an example of checking for valid dates. + final static String NON_INTEGER_YEAR = "must enter a valid year"; + final static String NON_INTEGER_MONTH = "must enter a valid month"; + final static String NON_INTEGER_DAY = "must enter a valid day"; + final static String NON_INTEGER_HOUR = "must enter a valid hour"; + final static String NON_INTEGER_MINUTE = "must enter a valid minute"; + final static String NON_INTEGER_SECOND = "must enter a valid second"; + + private Map checkDate( String precisionURI, Map qp){ + if( precisionURI == null ) + return Collections.emptyMap(); -// Integer year,month,day,hour,minute,second; -// -// year = parseToInt(fieldName+".year", queryParameters); -// month= parseToInt(fieldName+".month", queryParameters); -// day = parseToInt(fieldName+".day", queryParameters); -// hour = parseToInt(fieldName+".hour", queryParameters); -// minute = parseToInt(fieldName+".minute",queryParameters); -// second = parseToInt(fieldName+".second", queryParameters); -// -// DateTime dateTime = new DateTime(); -// DateTimeFormatter fmt = ISODateTimeFormat.dateParser(); -// + Map errors = new HashMap(); + + Integer year,month,day,hour,minute,second; + + //just check if the values for the precision parse to integers + if( precisionURI.equals( Precision.YEAR.uri() ) ){ + if( ! canParseToNumber(fieldName+".year" ,qp)) + errors.put(fieldName+".year", NON_INTEGER_YEAR); + }else if( precisionURI.equals( Precision.MONTH.uri() )){ + if( ! canParseToNumber(fieldName+".year" ,qp)) + errors.put(fieldName+".year", NON_INTEGER_YEAR); + if( ! canParseToNumber(fieldName+".month" ,qp)) + errors.put(fieldName+".month", NON_INTEGER_MONTH); + }else if( precisionURI.equals( Precision.DAY.uri() )){ + if( ! canParseToNumber(fieldName+".year" ,qp)) + errors.put(fieldName+".year", NON_INTEGER_YEAR); + if( ! canParseToNumber(fieldName+".month" ,qp)) + errors.put(fieldName+".month", NON_INTEGER_MONTH); + if( ! canParseToNumber(fieldName+".day" ,qp)) + errors.put(fieldName+".day", NON_INTEGER_DAY); + }else if( precisionURI.equals( Precision.HOUR.uri() )){ + if( ! canParseToNumber(fieldName+".year" ,qp)) + errors.put(fieldName+".year", NON_INTEGER_YEAR); + if( ! canParseToNumber(fieldName+".month" ,qp)) + errors.put(fieldName+".month", NON_INTEGER_MONTH); + if( ! canParseToNumber(fieldName+".day" ,qp)) + errors.put(fieldName+".day", NON_INTEGER_DAY); + if( ! canParseToNumber(fieldName+".hour" ,qp)) + errors.put(fieldName+".hour", NON_INTEGER_HOUR); + }else if( precisionURI.equals( Precision.MINUTE.uri() )){ + if( ! canParseToNumber(fieldName+".year" ,qp)) + errors.put(fieldName+".year", NON_INTEGER_YEAR); + if( ! canParseToNumber(fieldName+".month" ,qp)) + errors.put(fieldName+".month", NON_INTEGER_MONTH); + if( ! canParseToNumber(fieldName+".day" ,qp)) + errors.put(fieldName+".day", NON_INTEGER_DAY); + if( ! canParseToNumber(fieldName+".hour" ,qp)) + errors.put(fieldName+".hour", NON_INTEGER_HOUR); + if( ! canParseToNumber(fieldName+".minute" ,qp)) + errors.put(fieldName+".minute", NON_INTEGER_HOUR); + }else if( precisionURI.equals( Precision.SECOND.uri() )){ + if( ! canParseToNumber(fieldName+".year" ,qp)) + errors.put(fieldName+".year", NON_INTEGER_YEAR); + if( ! canParseToNumber(fieldName+".month" ,qp)) + errors.put(fieldName+".month", NON_INTEGER_MONTH); + if( ! canParseToNumber(fieldName+".day" ,qp)) + errors.put(fieldName+".day", NON_INTEGER_DAY); + if( ! canParseToNumber(fieldName+".hour" ,qp)) + errors.put(fieldName+".hour", NON_INTEGER_HOUR); + if( ! canParseToNumber(fieldName+".minute" ,qp)) + errors.put(fieldName+".minute", NON_INTEGER_HOUR); + if( ! canParseToNumber(fieldName+".second" ,qp)) + errors.put(fieldName+".second", NON_INTEGER_SECOND); + } + + //check if we can make a valid date with these integers + year = parseToInt(fieldName+".year", qp); + if( year == null ) + year = 1999; + month= parseToInt(fieldName+".month", qp); + if(month == null ) + month = 1; + day = parseToInt(fieldName+".day", qp); + if( day == null ) + day = 1; + hour = parseToInt(fieldName+".hour", qp); + if( hour == null ) + hour = 0; + minute = parseToInt(fieldName+".minute",qp); + if( minute == null ) + minute = 0; + second = parseToInt(fieldName+".second", qp); + if( second == null ) + second = 0; + + DateTime dateTime = new DateTime(); + try{ + dateTime.withYear(year); + }catch(IllegalArgumentException iae){ + errors.put(fieldName+".year", iae.getLocalizedMessage()); + } + try{ + dateTime.withMonthOfYear(month); + }catch(IllegalArgumentException iae){ + errors.put(fieldName+".month", iae.getLocalizedMessage()); + } + try{ + dateTime.withDayOfMonth(day); + }catch(IllegalArgumentException iae){ + errors.put(fieldName+".day", iae.getLocalizedMessage()); + } + try{ + dateTime.withHourOfDay(hour); + }catch(IllegalArgumentException iae){ + errors.put(fieldName+".hour", iae.getLocalizedMessage()); + } + try{ + dateTime.withSecondOfMinute(second); + }catch(IllegalArgumentException iae){ + errors.put(fieldName+".second", iae.getLocalizedMessage()); + } - return Collections.emptyMap(); + return errors; } + + private boolean fieldMatchesPattern( String fieldName, MapqueryParameters, Pattern pattern){ + String[] varg = queryParameters.get(fieldName); + if( varg == null || varg.length != 1 || varg[0] == null) + return false; + String value = varg[0]; + Matcher match = pattern.matcher(value); + return match.matches(); + } + + private boolean emptyOrBlank(String key,Map queryParameters){ + String[] vt = queryParameters.get(key); + return ( vt == null || vt.length ==0 || vt[0] == null || vt[0].length() == 0 ); + } + + private boolean canParseToNumber(String key,Map queryParameters){ + Integer out = null; + try{ + String[] vt = queryParameters.get(key); + if( vt == null || vt.length ==0 || vt[0] == null) + return false; + else{ + out = Integer.parseInt(vt[0]); + return true; + } + }catch(IndexOutOfBoundsException iex){ + out = null; + }catch(NumberFormatException nfe){ + out = null; + }catch(NullPointerException npe){ + out = null; + } + return false; + } + + + private Integer parseToInt(String key,Map queryParameters){ Integer out = null; try{ @@ -263,79 +426,7 @@ public class DateTimeWithPrecision extends BaseEditElement { out = null; } return out; - } - - -// -// /** -// * Create the var->value map for the datetimeprec.ftl template. -// */ -// private Map getDateTimePrecMap(String fieldName, -// EditConfiguration editConfig, EditSubmission editSub) { -// Date dateFromLit = null; -// String dateStrFromLit = null; -// -// if( editSub != null && editSub.getLiteralsFromForm() != null && editSub.getLiteralsFromForm().get(fieldName) != null ){ -// log.debug("found the field " + fieldName + " in the EditSubmission"); -// Literal date = editSub.getLiteralsFromForm().get(fieldName); -// Object valueFromLiteral = date.getValue(); -// if( valueFromLiteral != null && valueFromLiteral instanceof Date){ -// dateFromLit = (Date)valueFromLiteral; -// log.debug("found literal in submission of type Date for field " + fieldName); -// }else if( valueFromLiteral != null && valueFromLiteral instanceof String){ -// dateStrFromLit = (String) valueFromLiteral; -// log.debug("found literal in submission of type String for field " + fieldName); -// } else if ( valueFromLiteral != null && valueFromLiteral instanceof XSDDateTime) { -// dateStrFromLit = date.getLexicalForm(); -// log.debug("found existing literal of type XSDDateTime for field " + fieldName); -// } else { -// log.error("found a value from the submsission but it was not a String or Date."); -// } -// }else if( editConfig != null && editConfig.getLiteralsInScope() != null && editConfig.getLiteralsInScope().containsKey(fieldName)){ -// log.debug( "No EditSubmission found for the field " + fieldName + ", trying to get an existing value"); -// Literal date = editConfig.getLiteralsInScope().get(fieldName); -// Object valueFromLiteral = date.getValue(); -// if( valueFromLiteral != null && valueFromLiteral instanceof Date){ -// dateFromLit = (Date)valueFromLiteral; -// log.debug("found existing literal of type Date for field " + fieldName); -// }else if( valueFromLiteral != null && valueFromLiteral instanceof String){ -// dateStrFromLit = (String) valueFromLiteral; -// log.debug("found exisitng literal of type String for field " + fieldName); -// } else if ( valueFromLiteral != null && valueFromLiteral instanceof XSDDateTime) { -// dateStrFromLit = date.getLexicalForm(); -// log.debug("found existing literal of type XSDDateTime for field " + fieldName); -// } else { -// log.error("found an existing value from the editConfig but it was not a String or Date:"); -// log.error(valueFromLiteral.getClass().getName()); -// } -// }else{ -// log.debug("no value found for field " + fieldName + " in the submission or config, try to get default value"); -// Field field = editConfig.getField(fieldName); -// List> options = field.getLiteralOptions(); -// if( options.size() >=1 && options.get(0) != null && -// options.get(0).size() >= 1 && options.get(0).get(0) != null){ -// dateStrFromLit = options.get(0).get(0); -// }else{ -// log.debug("no default found for field " + fieldName); -// } -// } -// -// DateTime dt = null; -// if( dateStrFromLit != null){ -// try { -// /* See: -// * http://joda-time.sourceforge.net/api-release/org/joda/time/format/ISODateTimeFormat.html#dateParser() -// * for date format information*/ -// DateTimeFormatter dtFmt = ISODateTimeFormat.dateParser(); -// dt = new DateTime( dtFmt.parseDateTime( dateStrFromLit )); -// } catch (Exception e) { -// log.warn("Could not convert '" + dateStrFromLit +"' to DateTime.",e); -// dt = null; -// } -// }else if (dateFromLit != null){ -// -// } -// + } } diff --git a/test/edu/cornell/mannlib/vitro/webapp/edit/elements/DateTimeWithPrecisionTest.java b/test/edu/cornell/mannlib/vitro/webapp/edit/elements/DateTimeWithPrecisionTest.java index 57548b2b..e643e4b2 100644 --- a/test/edu/cornell/mannlib/vitro/webapp/edit/elements/DateTimeWithPrecisionTest.java +++ b/test/edu/cornell/mannlib/vitro/webapp/edit/elements/DateTimeWithPrecisionTest.java @@ -2,7 +2,6 @@ package edu.cornell.mannlib.vitro.webapp.edit.elements; -import java.util.Calendar; import java.util.HashMap; import java.util.Map; @@ -13,17 +12,19 @@ import org.junit.Test; import com.hp.hpl.jena.datatypes.xsd.XSDDatatype; import com.hp.hpl.jena.datatypes.xsd.XSDDateTime; import com.hp.hpl.jena.rdf.model.Literal; -import com.hp.hpl.jena.rdf.model.ResourceFactory; import edu.cornell.mannlib.vitro.webapp.edit.n3editing.EditConfiguration; +import edu.cornell.mannlib.vitro.webapp.edit.n3editing.Field; -public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { +public class DateTimeWithPrecisionTest { @Test public void precisionSecondsValidationTest() throws Exception{ String FIELDNAME = "testfield"; - DateTimeWithPrecision dtwp = new DateTimeWithPrecision(); + Field field = new Field(); + field.setName(FIELDNAME); + DateTimeWithPrecision dtwp = new DateTimeWithPrecision(field); Map queryParameters = new HashMap(); queryParameters.put(FIELDNAME+".year", new String[]{"1999" }); @@ -38,7 +39,7 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { Assert.assertTrue(validationMsgs.size() == 0 ); String precisionURI = null; - precisionURI = dtwp.getSubmittedPrecision(FIELDNAME, queryParameters); + precisionURI = dtwp.getSubmittedPrecision( queryParameters); Assert.assertNotNull(precisionURI); Assert.assertEquals(dtwp.PRECISIONS[6], precisionURI); @@ -47,7 +48,9 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { @Test public void precisionMinutesValidationTest() throws Exception{ String FIELDNAME = "testfield"; - DateTimeWithPrecision dtwp = new DateTimeWithPrecision(); + Field field = new Field(); + field.setName(FIELDNAME); + DateTimeWithPrecision dtwp = new DateTimeWithPrecision(field); Map queryParameters = new HashMap(); queryParameters.put(FIELDNAME+".year", new String[]{"1999" }); @@ -63,7 +66,7 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { Assert.assertTrue(validationMsgs.size() == 0 ); String precisionURI = null; - precisionURI = dtwp.getSubmittedPrecision(FIELDNAME, queryParameters); + precisionURI = dtwp.getSubmittedPrecision( queryParameters); Assert.assertNotNull(precisionURI); Assert.assertEquals(dtwp.PRECISIONS[5], precisionURI); @@ -72,7 +75,9 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { @Test public void precisionHourssValidationTest() throws Exception{ String FIELDNAME = "testfield"; - DateTimeWithPrecision dtwp = new DateTimeWithPrecision(); + Field field = new Field(); + field.setName(FIELDNAME); + DateTimeWithPrecision dtwp = new DateTimeWithPrecision(field); Map queryParameters = new HashMap(); queryParameters.put(FIELDNAME+".year", new String[]{"1999" }); @@ -88,7 +93,7 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { Assert.assertTrue(validationMsgs.size() == 0 ); String precisionURI = null; - precisionURI = dtwp.getSubmittedPrecision(FIELDNAME, queryParameters); + precisionURI = dtwp.getSubmittedPrecision( queryParameters); Assert.assertNotNull(precisionURI); Assert.assertEquals(dtwp.PRECISIONS[4], precisionURI); @@ -97,7 +102,9 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { @Test public void precisionDaysValidationTest() throws Exception{ String FIELDNAME = "testfield"; - DateTimeWithPrecision dtwp = new DateTimeWithPrecision(); + Field field = new Field(); + field.setName(FIELDNAME); + DateTimeWithPrecision dtwp = new DateTimeWithPrecision(field); Map queryParameters = new HashMap(); queryParameters.put(FIELDNAME+".year", new String[]{"1999" }); @@ -113,7 +120,7 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { Assert.assertTrue(validationMsgs.size() == 0 ); String precisionURI = null; - precisionURI = dtwp.getSubmittedPrecision(FIELDNAME, queryParameters); + precisionURI = dtwp.getSubmittedPrecision( queryParameters); Assert.assertNotNull(precisionURI); Assert.assertEquals(dtwp.PRECISIONS[3], precisionURI); @@ -122,7 +129,9 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { @Test public void precisionMonthsValidationTest()throws Exception{ String FIELDNAME = "testfield"; - DateTimeWithPrecision dtwp = new DateTimeWithPrecision(); + Field field = new Field(); + field.setName(FIELDNAME); + DateTimeWithPrecision dtwp = new DateTimeWithPrecision(field); Map queryParameters = new HashMap(); queryParameters.put(FIELDNAME+".year", new String[]{"1999" }); @@ -138,7 +147,7 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { Assert.assertTrue(validationMsgs.size() == 0 ); String precisionURI = null; - precisionURI = dtwp.getSubmittedPrecision(FIELDNAME, queryParameters); + precisionURI = dtwp.getSubmittedPrecision( queryParameters); Assert.assertNotNull(precisionURI); Assert.assertEquals(dtwp.PRECISIONS[2], precisionURI); @@ -147,7 +156,9 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { @Test public void precisionYearValidationTest() throws Exception{ String FIELDNAME = "testfield"; - DateTimeWithPrecision dtwp = new DateTimeWithPrecision(); + Field field = new Field(); + field.setName(FIELDNAME); + DateTimeWithPrecision dtwp = new DateTimeWithPrecision(field); Map queryParameters = new HashMap(); queryParameters.put(FIELDNAME+".year", new String[]{"1999" }); @@ -163,7 +174,7 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { Assert.assertTrue(validationMsgs.size() == 0 ); String precisionURI = null; - precisionURI = dtwp.getSubmittedPrecision(FIELDNAME, queryParameters); + precisionURI = dtwp.getSubmittedPrecision( queryParameters); Assert.assertNotNull(precisionURI); Assert.assertEquals(dtwp.PRECISIONS[1], precisionURI); @@ -172,7 +183,9 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { @Test public void getDateLiteralTest(){ String FIELDNAME = "testfield"; - DateTimeWithPrecision dtwp = new DateTimeWithPrecision(); + Field field = new Field(); + field.setName(FIELDNAME); + DateTimeWithPrecision dtwp = new DateTimeWithPrecision(field); Map queryParameters = new HashMap(); queryParameters.put(FIELDNAME+".year", new String[]{"1999" }); @@ -187,7 +200,7 @@ public class DateTimeWithPrecisionTest extends DateTimeWithPrecision { Assert.assertNotNull(validationMsgs); Assert.assertTrue(validationMsgs.size() == 0 ); - Literal date = dtwp.getDateTime(FIELDNAME, queryParameters); + Literal date = dtwp.getDateTime( queryParameters); Assert.assertNotNull(date); Assert.assertEquals( XSDDatatype.XSDdateTime.getURI() ,date.getDatatypeURI() );