Rework states

This commit is contained in:
crschnick
2024-05-29 05:41:29 +00:00
parent 6f6b4a76d4
commit e14b38b31f
10 changed files with 75 additions and 86 deletions
@@ -31,15 +31,13 @@ public class ScriptGroupStoreProvider implements DataStoreProvider {
var def = StoreToggleComp.<ScriptGroupStore>simpleToggle(
"base.isDefaultGroup", sec, s -> s.getState().isDefault(), (s, aBoolean) -> {
var state = s.getState();
state.setDefault(aBoolean);
var state = s.getState().toBuilder().isDefault(aBoolean).build();
s.setState(state);
});
var bring = StoreToggleComp.<ScriptGroupStore>simpleToggle(
"base.bringToShells", sec, s -> s.getState().isBringToShell(), (s, aBoolean) -> {
var state = s.getState();
state.setBringToShell(aBoolean);
var state = s.getState().toBuilder().bringToShell(aBoolean).build();
s.setState(state);
});
@@ -6,15 +6,14 @@ import io.xpipe.app.storage.DataStoreEntry;
import io.xpipe.app.storage.DataStoreEntryRef;
import io.xpipe.app.util.ShellTemp;
import io.xpipe.app.util.Validators;
import io.xpipe.core.process.ShellInitCommand;
import io.xpipe.core.process.ShellControl;
import io.xpipe.core.process.ShellInitCommand;
import io.xpipe.core.store.DataStore;
import io.xpipe.core.store.DataStoreState;
import io.xpipe.core.store.FileNames;
import io.xpipe.core.store.StatefulDataStore;
import io.xpipe.core.util.JacksonizedValue;
import lombok.*;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;
import lombok.extern.jackson.Jacksonized;
@@ -222,20 +221,12 @@ public abstract class ScriptStore extends JacksonizedValue implements DataStore,
public abstract List<DataStoreEntryRef<ScriptStore>> getEffectiveScripts();
@FieldDefaults(level = AccessLevel.PRIVATE)
@Setter
@Getter
@SuperBuilder
@Value
@EqualsAndHashCode(callSuper=true)
@SuperBuilder(toBuilder = true)
@Jacksonized
public static class State extends DataStoreState {
boolean isDefault;
boolean bringToShell;
@Override
public void merge(DataStoreState newer) {
var s = (State) newer;
isDefault = s.isDefault;
bringToShell = s.bringToShell;
}
}
}
@@ -56,15 +56,13 @@ public class SimpleScriptStoreProvider implements DataStoreProvider {
var def = StoreToggleComp.<SimpleScriptStore>simpleToggle(
"base.isDefaultGroup", sec, s -> s.getState().isDefault(), (s, aBoolean) -> {
var state = s.getState();
state.setDefault(aBoolean);
var state = s.getState().toBuilder().isDefault(aBoolean).build();
s.setState(state);
});
var bring = StoreToggleComp.<SimpleScriptStore>simpleToggle(
"base.bringToShells", sec, s -> s.getState().isBringToShell(), (s, aBoolean) -> {
var state = s.getState();
state.setBringToShell(aBoolean);
var state = s.getState().toBuilder().bringToShell(aBoolean).build();
s.setState(state);
});