package it.cavallium.strangedb.java.objects; import it.cavallium.strangedb.java.annotations.DbDataType; import it.cavallium.strangedb.java.annotations.DbPrimitiveType; import java.io.IOException; import java.util.function.Supplier; public interface EnhancedObjectUpgrader { T getPrimitiveField(int id, DbPrimitiveType integer) throws IOException; default int getPrimitiveBoolean(int id) throws IOException { return getPrimitiveField(id, DbPrimitiveType.BOOLEAN); } default int getPrimitiveByte(int id) throws IOException { return getPrimitiveField(id, DbPrimitiveType.BYTE); } default int getPrimitiveShort(int id) throws IOException { return getPrimitiveField(id, DbPrimitiveType.SHORT); } default int getPrimitiveChar(int id) throws IOException { return getPrimitiveField(id, DbPrimitiveType.CHAR); } default int getPrimitiveInt(int id) throws IOException { return getPrimitiveField(id, DbPrimitiveType.INTEGER); } default long getPrimitiveLong(int id) throws IOException { return getPrimitiveField(id, DbPrimitiveType.LONG); } default float getPrimitiveFloat(int id) throws IOException { return getPrimitiveField(id, DbPrimitiveType.FLOAT); } default double getPrimitiveDouble(int id) throws IOException { return getPrimitiveField(id, DbPrimitiveType.DOUBLE); } Object getField(int id, DbDataType type) throws IOException; Object getMethod(int id, DbDataType type) throws IOException; }