- HashMap<String, Integer> writerMap = new HashMap<String, Integer>(); // HashMap from varName to appNum
-
- // 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
- }
- }
- } else {
- valueMap.put(nameValuePair.getVarName(), nameValuePair.getValue());
- writerMap.put(nameValuePair.getVarName(), nameValuePair.getAppNum());
- }
- }
-
- // Comparing the outSet to setSet
- for (NameValuePair i : nodeToProcess.getOutSet()) {
- if (valueMap.containsKey(i.getVarName())) {
- String value = valueMap.get(i.getVarName());
- Integer writer = writerMap.get(i.getVarName());
- if ((value != null)&&(writer != null)) {
- if (!value.equals(i.getValue())&&!writer.equals(i.getAppNum())) { // We have different values
- errorMessage = createErrorMessage(i, valueMap, writerMap);
- return true;
- }
+ HashMap<String, Integer> writerMap = new HashMap<String, Integer>(); // HashMap from varName to appNum
+ HashMap<String, Boolean> isManualMap = new HashMap<String, Boolean>(); // HashMap from varName to isManual
+
+ // Update the valueMap and writerMap + check for conflict between the elements of setSet
+ for (int i = 0;i < setSet.size();i++) {
+ NameValuePair nameValuePair = setSet.get(i);
+ String varName = nameValuePair.getVarName();
+ String value = nameValuePair.getValue();
+ Integer appNum = nameValuePair.getAppNum();
+ Boolean isManual = nameValuePair.getIsManual();
+
+ if (valueMap.containsKey(varName)) {
+ // Check if we have a same writer
+ if (!writerMap.get(varName).equals(appNum)) {
+ // Check if we have a conflict or not
+ if (!valueMap.get(varName).equals(value)) {
+ errorMessage = createErrorMessage(nameValuePair, valueMap, writerMap);
+ return true;