1. Changes to fix the bug in display of years attached to publications. (see NIHVIVO-1794) It was caused due to change in Date/Time format representation in the backend.
2. Added code so new date/time formatters can be added with ease.
This commit is contained in:
parent
c2176664ac
commit
b65c2bccbe
3 changed files with 48 additions and 5 deletions
|
@ -2,7 +2,12 @@
|
|||
|
||||
package edu.cornell.mannlib.vitro.webapp.visualization.constants;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
import org.joda.time.format.ISODateTimeFormat;
|
||||
|
||||
/**
|
||||
* This contains the constants related to all the value objects.
|
||||
|
@ -24,5 +29,15 @@ public class VOConstants {
|
|||
public static final int MINIMUM_PUBLICATION_YEAR = 1800;
|
||||
public static final int CURRENT_YEAR = Calendar.getInstance().get(Calendar.YEAR);
|
||||
|
||||
@SuppressWarnings("serial")
|
||||
public static final List<DateTimeFormatter> POSSIBLE_DATE_TIME_FORMATTERS = new ArrayList<DateTimeFormatter>() {{
|
||||
|
||||
add(ISODateTimeFormat.dateTimeNoMillis());
|
||||
add(ISODateTimeFormat.dateHourMinuteSecond());
|
||||
add(ISODateTimeFormat.dateTimeParser());
|
||||
|
||||
}};
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -10,6 +10,7 @@ import org.joda.time.format.DateTimeFormatter;
|
|||
import org.joda.time.format.ISODateTimeFormat;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils.UtilityFunctions;
|
||||
|
||||
/**
|
||||
* @author cdtank
|
||||
|
@ -112,12 +113,11 @@ public class BiboDocument extends Individual {
|
|||
|
||||
if (publicationDate != null) {
|
||||
|
||||
DateTimeFormatter dateTimeFormat = ISODateTimeFormat.dateHourMinuteSecond();
|
||||
DateTime validParsedDateTimeObject = UtilityFunctions.getValidParsedDateTimeObject(publicationDate);
|
||||
|
||||
try {
|
||||
DateTime dateTime = dateTimeFormat.parseDateTime(publicationDate);
|
||||
return String.valueOf(dateTime.getYear());
|
||||
} catch (Exception e) {
|
||||
if (validParsedDateTimeObject != null) {
|
||||
return String.valueOf(validParsedDateTimeObject.getYear());
|
||||
} else {
|
||||
return publicationYear != null ? publicationYear : VOConstants.DEFAULT_PUBLICATION_YEAR;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,8 +3,10 @@
|
|||
package edu.cornell.mannlib.vitro.webapp.visualization.freemarker.visutils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
|
@ -16,6 +18,9 @@ import javax.servlet.http.HttpServletResponse;
|
|||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.format.DateTimeFormatter;
|
||||
import org.joda.time.format.ISODateTimeFormat;
|
||||
|
||||
import edu.cornell.mannlib.vitro.webapp.beans.Portal;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.Controllers;
|
||||
|
@ -23,6 +28,7 @@ import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
|
|||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.ResponseValues;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.freemarker.responsevalues.TemplateResponseValues;
|
||||
import edu.cornell.mannlib.vitro.webapp.controller.visualization.freemarker.VisualizationFrameworkConstants;
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VOConstants;
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.constants.VisConstants;
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.BiboDocument;
|
||||
import edu.cornell.mannlib.vitro.webapp.visualization.freemarker.valueobjects.CoAuthorshipData;
|
||||
|
@ -254,4 +260,26 @@ public class UtilityFunctions {
|
|||
|
||||
}
|
||||
|
||||
public static DateTime getValidParsedDateTimeObject(String unparsedDateTime) {
|
||||
|
||||
for (DateTimeFormatter currentFormatter : VOConstants.POSSIBLE_DATE_TIME_FORMATTERS) {
|
||||
|
||||
try {
|
||||
|
||||
DateTime dateTime = currentFormatter.parseDateTime(unparsedDateTime);
|
||||
return dateTime;
|
||||
|
||||
} catch (Exception e2) {
|
||||
/*
|
||||
* The current date-time formatter did not pass the muster.
|
||||
* */
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* This means that none of the date time formatters worked.
|
||||
* */
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue