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