Added interface for serializing (WIP; maybe removed later)
parent
2520078473
commit
86bed613fa
@ -0,0 +1,7 @@
|
|||||||
|
package de.banananetwork.serialize;
|
||||||
|
|
||||||
|
public interface Serializable {
|
||||||
|
|
||||||
|
SerializedData serialize();
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue