From 1ca534bbddc6279728d16117a632990f79e27b5c Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 28 Feb 2017 18:07:07 +0100 Subject: [PATCH] export to sql improved (\' character issue) --- .../parse/AppointmentSqlExporter.java | 11 +--- .../smash/appointment/parse/SqlExporter.java | 52 +++++++++++++++++++ .../appointment/parse/SubjectSqlExporter.java | 28 +--------- .../appointment/parse/VisitSqlExporter.java | 25 +-------- 4 files changed, 55 insertions(+), 61 deletions(-) create mode 100644 appointment-import/src/main/java/smash/appointment/parse/SqlExporter.java diff --git a/appointment-import/src/main/java/smash/appointment/parse/AppointmentSqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/AppointmentSqlExporter.java index 2e1b93ea..821649a5 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/AppointmentSqlExporter.java +++ b/appointment-import/src/main/java/smash/appointment/parse/AppointmentSqlExporter.java @@ -1,6 +1,6 @@ package smash.appointment.parse; -public class AppointmentSqlExporter { +public class AppointmentSqlExporter extends SqlExporter{ public String toSql(AppointmentEntry appointment, boolean isFinished) { StringBuilder result = new StringBuilder(""); @@ -21,13 +21,4 @@ public class AppointmentSqlExporter { return result.toString(); } - private String getStringVal(String arg) { - if (arg == null) { - return "null"; - } else if (arg.isEmpty()) { - return "''"; - } else { - return "'" + arg + "'"; - } - } } diff --git a/appointment-import/src/main/java/smash/appointment/parse/SqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/SqlExporter.java new file mode 100644 index 00000000..a5c19bb2 --- /dev/null +++ b/appointment-import/src/main/java/smash/appointment/parse/SqlExporter.java @@ -0,0 +1,52 @@ +package smash.appointment.parse; + +import java.text.SimpleDateFormat; +import java.util.Calendar; + +public class SqlExporter { + + private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd"); + + public SqlExporter() { + super(); + } + + protected boolean isBefore(AppointmentEntry entry, Calendar minDate) { + String entryDate = entry.getDay(); + String beforeDate = DATE_FORMATTER.format(minDate.getTime()); + if (entryDate.compareTo(beforeDate) < 0) { + return true; + } else { + return false; + } + } + + protected String getStringVal(String arg) { + if (arg == null) { + return "null"; + } else if (arg.isEmpty()) { + return "''"; + } else { + return "'" + arg.replace("'", "''") + "'"; + } + } + + protected String getIntVal(String diagnosisYear) { + if (diagnosisYear == null || diagnosisYear.trim().isEmpty()) { + return "0"; + } else { + return diagnosisYear; + } + } + + protected String getDateVal(String arg) { + if (arg == null) { + return "null"; + } else if (arg.isEmpty()) { + return "null"; + } else { + return "'" + arg + "'"; + } + } + +} \ No newline at end of file diff --git a/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java index 4d7750cf..19266843 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java +++ b/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java @@ -1,6 +1,6 @@ package smash.appointment.parse; -public class SubjectSqlExporter { +public class SubjectSqlExporter extends SqlExporter{ public String toSql(Subject subject) { StringBuilder result = new StringBuilder(""); @@ -61,30 +61,4 @@ public class SubjectSqlExporter { return result.toString(); } - private String getIntVal(String diagnosisYear) { - if (diagnosisYear == null || diagnosisYear.trim().isEmpty()) { - return "0"; - } else { - return diagnosisYear; - } - } - - private String getStringVal(String arg) { - if (arg == null) { - return "null"; - } else if (arg.isEmpty()) { - return "''"; - } else { - return "'" + arg + "'"; - } - } - private String getDateVal(String arg) { - if (arg == null) { - return "null"; - } else if (arg.isEmpty()) { - return "null"; - } else { - return "'" + arg + "'"; - } - } } diff --git a/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java index 6bd9dbe3..16077d37 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java +++ b/appointment-import/src/main/java/smash/appointment/parse/VisitSqlExporter.java @@ -1,13 +1,10 @@ package smash.appointment.parse; import java.text.ParseException; -import java.text.SimpleDateFormat; import java.util.Calendar; -public class VisitSqlExporter { +public class VisitSqlExporter extends SqlExporter { AppointmentSqlExporter appointmentSqlExporter = new AppointmentSqlExporter(); - private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd"); - public String toSql(Visit visit, boolean isFinished) throws ParseException { StringBuilder result = new StringBuilder(""); @@ -32,24 +29,4 @@ public class VisitSqlExporter { return result.toString(); } - - private boolean isBefore(AppointmentEntry entry, Calendar minDate) { - String entryDate = entry.getDay(); - String beforeDate = DATE_FORMATTER.format(minDate.getTime()); - if (entryDate.compareTo(beforeDate) < 0) { - return true; - } else { - return false; - } - } - - private String getStringVal(String arg) { - if (arg == null) { - return "null"; - } else if (arg.isEmpty()) { - return "''"; - } else { - return "'" + arg + "'"; - } - } } -- GitLab