- // Update the valueMap and check if we have conflict in the setSet
- for (NameValuePair i : nodeToProcess.getSetSet()) {
- if (i.getIsManual()) // Manual input: we have no conflict
- continue; // If this manual write is the last write, this is actually a break
-
- if (valueMap.containsKey(i.getVarName())) {
- if (!valueMap.get(i.getVarName()).equals(i.getValue())) { // Check if their value is different we have a conflict
- errorMessage = createErrorMessage(i, valueMap, writerMap);
- return true;
- }
- else // We have two writers writing the same value
- writerMap.put(i.getVarName(), i.getAppNum()+writerMap.get(i.getVarName()));
+ // Update the valueMap
+ for (int i = 0;i < nodeToProcess.getSetSet().size();i++) {
+ NameValuePair nameValuePair = nodeToProcess.getSetSet().get(i);
+
+ if (valueMap.containsKey(nameValuePair.getVarName())) {
+ // Check if we have a same writer
+ if (!writerMap.get(nameValuePair.getVarName()).equals(nameValuePair.getAppNum())) {
+ // Check if we have a conflict or not
+ if (!valueMap.get(nameValuePair.getVarName()).equals(nameValuePair.getValue())) {
+ errorMessage = createErrorMessage(nameValuePair, valueMap, writerMap);
+ return true;
+ } else { // We have two writers writing the same value
+ writerMap.put(nameValuePair.getVarName(), 3); // 3 represents both apps
+ }
+ } else {
+ // Check if we have more than one value with the same writer
+ if (!valueMap.get(nameValuePair.getVarName()).equals(nameValuePair.getValue())) {
+ valueMap.put(nameValuePair.getVarName(), "twoValue"); // We have one writer writing more than one value in a same event
+ }
+ }