From 86bed613faa3dcb176883bef6fd0fcb15499527d Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Thu, 19 Jul 2018 11:07:43 +0200 Subject: [PATCH] Added interface for serializing (WIP; maybe removed later) --- .../banananetwork/serialize/Serializable.java | 7 +++ .../serialize/SerializedData.java | 59 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 src/de/banananetwork/serialize/Serializable.java create mode 100644 src/de/banananetwork/serialize/SerializedData.java diff --git a/src/de/banananetwork/serialize/Serializable.java b/src/de/banananetwork/serialize/Serializable.java new file mode 100644 index 0000000..e8cd633 --- /dev/null +++ b/src/de/banananetwork/serialize/Serializable.java @@ -0,0 +1,7 @@ +package de.banananetwork.serialize; + +public interface Serializable { + + SerializedData serialize(); + +} \ No newline at end of file diff --git a/src/de/banananetwork/serialize/SerializedData.java b/src/de/banananetwork/serialize/SerializedData.java new file mode 100644 index 0000000..43ec862 --- /dev/null +++ b/src/de/banananetwork/serialize/SerializedData.java @@ -0,0 +1,59 @@ +package de.banananetwork.serialize; + +public interface SerializedData implements Serializable { + + @Override + default SerializedData serialize() { + return this; + } + + void put(String key, int value); + + void put(String key, String value); + + default void put(String key, Serializable value) { + put(key, value.serialize()); + } + + void put(String key, SerializedData value); + + void put(String key, int[] values); + + void put(String key, String[] values); + + default put(String key, Serializable[] values) { + put(key, Arrays.stream(values).map(Serializable::serialize).toArray(SerializedData[]::new)); + } + + void put(String key, SerializedData[] values); + + boolean exists(String key); + + Type getType(String key); + + boolean isType(String key, Type type); + + String[] getKeys(); + + int getInt(String key); + + String getString(String key); + + SerializedData getData(String key); + + int[] getIntArray(String key); + + String[] getStringArray(String key); + + SerializedData[] getDataArray(String key); + + public enum Type { + INT, + INT_ARRAY, + STRING, + STRING_ARRAY, + SERIALIZED_DATA, + SERIALIZED_DATA_ARRAY; + } + +} \ No newline at end of file