summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--same/src/main/java/com/orbekk/same/State.java24
1 files changed, 5 insertions, 19 deletions
diff --git a/same/src/main/java/com/orbekk/same/State.java b/same/src/main/java/com/orbekk/same/State.java
index e62fbee..ce4f18d 100644
--- a/same/src/main/java/com/orbekk/same/State.java
+++ b/same/src/main/java/com/orbekk/same/State.java
@@ -38,7 +38,6 @@ public class State {
private Logger logger = LoggerFactory.getLogger(getClass());
private Map<String, Component> state = new HashMap<String, Component>();
private ObjectMapper mapper = new ObjectMapper();
- private Set<String> updatedComponents = new TreeSet<String>();
public static final String PARTICIPANTS = ".participants0";
@@ -49,11 +48,12 @@ public class State {
}
public State(State other) {
- state.putAll(other.state);
+ for (Component c : other.getComponents()) {
+ state.put(c.getName(), c);
+ }
}
public synchronized void clear() {
- updatedComponents.clear();
state.clear();
}
@@ -62,7 +62,6 @@ public class State {
Component oldComponent = state.get(componentName);
Component newComponent = new Component(componentName, revision, data);
state.put(componentName, newComponent);
- updatedComponents.add(componentName);
}
public synchronized boolean update(String componentName, String data,
@@ -75,12 +74,8 @@ public class State {
}
if (revision > component.getRevision()) {
- Component oldComponent = new Component(component);
- component.setName(componentName);
- component.setRevision(revision);
- component.setData(data);
- state.put(componentName, component);
- updatedComponents.add(componentName);
+ Component newComponent = new Component(componentName, revision, data);
+ state.put(componentName, newComponent);
return true;
} else {
return false;
@@ -187,15 +182,6 @@ public class State {
return list;
}
- public synchronized List<Component> getAndClearUpdatedComponents() {
- List<Component> components = new ArrayList<Component>();
- for (String name : updatedComponents) {
- components.add(state.get(name));
- }
- updatedComponents.clear();
- return components;
- }
-
public static class Component {
private String name;
private long revision;