# HG changeset patch # User Robert Casties # Date 1542216715 -3600 # Node ID 1149eb948036073ba4359e5b3d5b784637df8b22 # Parent 68e759210b535d2955b819df913dc26c8a481db2 add isodate tag to XML dump format 4.9. diff -r 68e759210b53 -r 1149eb948036 src/main/java/org/mpi/openmind/repository/utils/OM4StreamWriter.java --- a/src/main/java/org/mpi/openmind/repository/utils/OM4StreamWriter.java Fri Nov 09 15:12:17 2018 +0100 +++ b/src/main/java/org/mpi/openmind/repository/utils/OM4StreamWriter.java Wed Nov 14 18:31:55 2018 +0100 @@ -15,6 +15,11 @@ import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; +import org.joda.time.DateTime; +import org.joda.time.format.DateTimeFormatter; +import org.joda.time.format.ISODateTimeFormat; +import org.json.JSONException; +import org.json.JSONObject; import org.mpi.openmind.repository.bo.Attribute; import org.mpi.openmind.repository.bo.Entity; import org.mpi.openmind.repository.bo.Node; @@ -32,7 +37,7 @@ */ public class OM4StreamWriter { - protected static final String FORMAT_VERSION = "4.8"; + protected static final String FORMAT_VERSION = "4.9"; private static Logger logger = Logger.getLogger(OM4StreamWriter.class); @@ -44,6 +49,9 @@ /** key for entity count in attribute counts map */ private static final String ENT_KEY = ""; + /** formatter for isodate tag */ + public static DateTimeFormatter dateFormatter = ISODateTimeFormat.date(); + /** * Return the object's string representation or "null" if its null. * @@ -389,6 +397,29 @@ writer.writeCharacters(nov); writer.writeEndElement(); } + // convert date JSON into additional isodate + if (ov.startsWith("{")) { + try { + JSONObject json = new JSONObject(ov); + JSONObject date = null; + if (json.has("date")) { + date = json.getJSONObject("date"); + } else if (json.has("from")) { + date = json.getJSONObject("from"); + } + if (date != null) { + int year = date.getInt("year"); + int month = date.getInt("month"); + int day = date.getInt("dayOfMonth"); + DateTime dt = new DateTime(year, month, day, 0, 0); + writer.writeStartElement(XMLUtil.ISODATE); + writer.writeCharacters(dateFormatter.print(dt)); + writer.writeEndElement(); + } + } catch (JSONException e) { + // maybe not JSON... + } + } } writer.writeEndElement(); diff -r 68e759210b53 -r 1149eb948036 src/main/java/org/mpi/openmind/repository/utils/XMLUtil.java --- a/src/main/java/org/mpi/openmind/repository/utils/XMLUtil.java Fri Nov 09 15:12:17 2018 +0100 +++ b/src/main/java/org/mpi/openmind/repository/utils/XMLUtil.java Wed Nov 14 18:31:55 2018 +0100 @@ -92,6 +92,8 @@ public static String MERGE = "merge"; public static String REPLACE = "replace"; public static String INSERT = "insert"; + + public static String ISODATE = "isodate"; public static Node getNodeByName(NodeList nodeList, String name){ for(int i=0; i < nodeList.getLength(); i++){