import java.io.IOException;
import java.util.Optional;
-import javax.inject.Inject;
-import javax.inject.Singleton;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
+import com.fasterxml.jackson.module.kotlin.KotlinModule;
+import jakarta.inject.Inject;
+import jakarta.inject.Singleton;
import net.pterodactylus.rhynodge.State;
/** Jackson object mapper. */
private final ObjectMapper objectMapper = new ObjectMapper();
+ {
+ objectMapper.registerModule(new KotlinModule.Builder().build());
+ objectMapper.registerModule(new JavaTimeModule());
+ objectMapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
+ }
+
/** The directory in which to store states. */
private final String directory;
/**
* Creates a new state manager. The given directory is assumed to exist.
*
- * @param directory
+ * @param stateDirectory
* The directory to store states in
*/
@Inject
- public StateManager(Directory directory) {
- this.directory = directory.getDirectory();
+ public StateManager(StateDirectory stateDirectory) {
+ this.directory = stateDirectory.getDirectory();
}
//
return empty();
}
- public static class Directory {
+ public static class StateDirectory {
private final String directory;
- private Directory(String directory) {
+ private StateDirectory(String directory) {
this.directory = directory;
}
return directory;
}
- public static Directory of(String directory) {
- return new Directory(directory);
+ public static StateDirectory of(String directory) {
+ return new StateDirectory(directory);
}
}