import java.io.IOException;
import java.util.Optional;
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
import net.pterodactylus.rhynodge.State;
import org.apache.log4j.Logger;
*
* @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
*/
+@Singleton
public class StateManager {
/** The logger. */
/**
* Creates a new state manager. The given directory is assumed to exist.
*
- * @param directory
+ * @param stateDirectory
* The directory to store states in
*/
- public StateManager(String directory) {
- this.directory = directory;
+ @Inject
+ public StateManager(StateDirectory stateDirectory) {
+ this.directory = stateDirectory.getDirectory();
}
//
return empty();
}
+ public static class StateDirectory {
+
+ private final String directory;
+
+ private StateDirectory(String directory) {
+ this.directory = directory;
+ }
+
+ public String getDirectory() {
+ return directory;
+ }
+
+ public static StateDirectory of(String directory) {
+ return new StateDirectory(directory);
+ }
+
+ }
+
}