mirror of
https://github.com/xpipe-io/xpipe.git
synced 2026-08-12 20:40:59 +00:00
Properly update state on children refresh
This commit is contained in:
@@ -27,4 +27,13 @@ public class ShellStoreState extends DataStoreState implements OsNameState {
|
||||
public boolean isRunning() {
|
||||
return running != null ? running : false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void merge(DataStoreState newer) {
|
||||
var shellStoreState = (ShellStoreState) newer;
|
||||
osType = useNewer(osType, shellStoreState.getOsType());
|
||||
osName = useNewer(osName, shellStoreState.getOsName());
|
||||
shellDialect = useNewer(shellDialect, shellStoreState.getShellDialect());
|
||||
running = useNewer(running, shellStoreState.getRunning());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,16 @@ import lombok.SneakyThrows;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
@SuperBuilder
|
||||
public class DataStoreState {
|
||||
public abstract class DataStoreState {
|
||||
|
||||
public DataStoreState() {}
|
||||
|
||||
protected static <T> T useNewer(T older, T newer) {
|
||||
return newer != null ? newer : older;
|
||||
}
|
||||
|
||||
public abstract void merge(DataStoreState newer);
|
||||
|
||||
@SneakyThrows
|
||||
public String toString() {
|
||||
var tree = JacksonMapper.getDefault().valueToTree(this);
|
||||
|
||||
@@ -20,7 +20,7 @@ public abstract class DataStateProvider {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
public abstract void setState(DataStore store, Object value);
|
||||
public abstract void setState(DataStore store, DataStoreState value);
|
||||
|
||||
public abstract <T extends DataStoreState> T getState(DataStore store, Supplier<T> def);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user