aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java')
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java101
1 files changed, 101 insertions, 0 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java b/src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java
new file mode 100644
index 00000000..c0aa63c0
--- /dev/null
+++ b/src/main/java/de/thedevstack/conversationsplus/persistance/db/migrations/FileParamsBodyToDatabaseFieldsMigration.java
@@ -0,0 +1,101 @@
+package de.thedevstack.conversationsplus.persistance.db.migrations;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import de.thedevstack.conversationsplus.entities.FileParams;
+
+/**
+ * Created by steckbrief on 24.08.2016.
+ */
+public class FileParamsBodyToDatabaseFieldsMigration {
+
+ public static FileParams getFileParams(String body) {
+ FileParams params = getLegacyFileParams(body);
+ if (params != null) {
+ return params;
+ }
+ params = new FileParams();
+ if (body == null) {
+ return params;
+ }
+ String parts[] = body.split("\\|");
+ switch (parts.length) {
+ case 1:
+ try {
+ params.setSize(Long.parseLong(parts[0]));
+ } catch (NumberFormatException e) {
+ try {
+ URL url = new URL(parts[0]);
+ params.setUrl(url.toString());
+ } catch (MalformedURLException e1) {
+ }
+ }
+ break;
+ case 2:
+ case 4:
+ try {
+ URL url = new URL(parts[0]);
+ params.setUrl(url.toString());
+ } catch (MalformedURLException e1) {
+ }
+ try {
+ params.setSize(Long.parseLong(parts[1]));
+ } catch (NumberFormatException e) {
+ }
+ try {
+ params.setWidth(Integer.parseInt(parts[2]));
+ } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) {
+ }
+ try {
+ params.setHeight(Integer.parseInt(parts[3]));
+ } catch (NumberFormatException | ArrayIndexOutOfBoundsException e) {
+ }
+ break;
+ case 3:
+ try {
+ params.setSize(Long.parseLong(parts[0]));
+ } catch (NumberFormatException e) {
+ }
+ try {
+ params.setWidth(Integer.parseInt(parts[1]));
+ } catch (NumberFormatException e) {
+ }
+ try {
+ params.setHeight(Integer.parseInt(parts[2]));
+ } catch (NumberFormatException e) {
+ }
+ break;
+ }
+ return params;
+ }
+
+ private static FileParams getLegacyFileParams(String body) {
+ FileParams params = new FileParams();
+ if (body == null) {
+ return params;
+ }
+ String parts[] = body.split(",");
+ if (parts.length == 3) {
+ try {
+ params.setSize(Long.parseLong(parts[0]));
+ } catch (NumberFormatException e) {
+ return null;
+ }
+ try {
+ params.setWidth(Integer.parseInt(parts[1]));
+ } catch (NumberFormatException e) {
+ return null;
+ }
+ try {
+ params.setHeight(Integer.parseInt(parts[2]));
+ } catch (NumberFormatException e) {
+ return null;
+ }
+ return params;
+ } else {
+ return null;
+ }
+ }
+
+}