\ 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() );