summaryrefslogtreecommitdiff
path: root/same/src/main/java/com/orbekk/same/State.java
diff options
context:
space:
mode:
Diffstat (limited to 'same/src/main/java/com/orbekk/same/State.java')
-rw-r--r--same/src/main/java/com/orbekk/same/State.java54
1 files changed, 27 insertions, 27 deletions
diff --git a/same/src/main/java/com/orbekk/same/State.java b/same/src/main/java/com/orbekk/same/State.java
index 2b48a00..f0fee80 100644
--- a/same/src/main/java/com/orbekk/same/State.java
+++ b/same/src/main/java/com/orbekk/same/State.java
@@ -24,22 +24,22 @@ public class State {
private Map<String, Component> state = new HashMap<String, Component>();
private ObjectMapper mapper = new ObjectMapper();
private Set<String> updatedComponents = new TreeSet<String>();
-
+
public State(String networkName) {
update(".networkName", networkName, 1);
updateFromObject(".participants", new ArrayList<String>(), 1);
}
-
+
public State(State other) {
state.putAll(other.state);
}
-
+
public synchronized void clear() {
logger.info("Clearing state.");
updatedComponents.clear();
state.clear();
}
-
+
public synchronized void forceUpdate(String componentName,
String data, long revision) {
Component oldComponent = state.get(componentName);
@@ -48,7 +48,7 @@ public class State {
state.put(componentName, newComponent);
updatedComponents.add(componentName);
}
-
+
public synchronized boolean update(String componentName, String data,
long revision) {
Component component = null;
@@ -57,7 +57,7 @@ public class State {
} else {
component = state.get(componentName);
}
-
+
if (revision > component.getRevision()) {
Component oldComponent = new Component(component);
component.setName(componentName);
@@ -71,7 +71,7 @@ public class State {
return false;
}
}
-
+
/**
* Get a copy of a component.
*/
@@ -83,7 +83,7 @@ public class State {
return null;
}
}
-
+
public String getDataOf(String componentName) {
Component component = state.get(componentName);
if (component != null) {
@@ -92,7 +92,7 @@ public class State {
return null;
}
}
-
+
public long getRevision(String componentName) {
Component component = state.get(componentName);
if (component != null) {
@@ -103,7 +103,7 @@ public class State {
return 0;
}
}
-
+
/**
* Parses a JSON value using Jackson ObjectMapper.
*/
@@ -126,12 +126,12 @@ public class State {
}
return null;
}
-
+
public List<String> getList(String componentName) {
return getParsedData(componentName,
new TypeReference<List<String>>(){});
}
-
+
public boolean updateFromObject(String componentName, Object data, long revision) {
String dataS;
try {
@@ -151,14 +151,14 @@ public class State {
return false;
}
}
-
+
/**
* Pretty print a component.
*/
public String show(String componentName) {
return componentName + ": " + state.get(componentName);
}
-
+
/**
* Returns a list of all the components in this State.
*
@@ -171,7 +171,7 @@ public class State {
}
return list;
}
-
+
public synchronized List<Component> getAndClearUpdatedComponents() {
List<Component> components = new ArrayList<Component>();
for (String name : updatedComponents) {
@@ -185,7 +185,7 @@ public class State {
private String name;
private long revision;
private String data;
-
+
/**
* Copy constructor.
*/
@@ -194,21 +194,21 @@ public class State {
this.revision = other.revision;
this.data = other.data;
}
-
+
public Component(String name, long revision, String data) {
this.name = name;
this.revision = revision;
this.data = data;
}
-
+
public long getRevision() {
return revision;
}
-
+
public void setRevision(long revision) {
this.revision = revision;
}
-
+
public String getData() {
return data;
}
@@ -216,29 +216,29 @@ public class State {
public void setData(String data) {
this.data = data;
}
-
+
public String getName() {
return name;
}
-
+
public void setName(String name) {
this.name = name;
}
-
+
@Override public String toString() {
return "[" + this.name + ": " + this.data + "@" + revision + "]";
}
-
+
@Override public boolean equals(Object other) {
if (!(other instanceof Component)) {
return false;
}
Component o = (Component)other;
return name.equals(o.name) && data.equals(o.data) &&
- revision == o.revision;
+ revision == o.revision;
}
}
-
+
@Override public String toString() {
StringBuilder output = new StringBuilder();
output.append("State(\n");
@@ -248,7 +248,7 @@ public class State {
output.append(")");
return output.toString();
}
-
+
@Override public boolean equals(Object other) {
if (!(other instanceof State)) {
return false;