import Timer.SimulatedTimer
//GlobalVariables
-@Field def location = new LocationVar()
+@Field def location = new LocationVar({}, true)
//Settings variable defined to settings on purpose
@Field def settings = [app: "app"]
//Global variable for state[mode]
@Field File extractedObjectsConstructorApp1 = new File("Extractor/App1/extractedObjectsConstructorApp1.groovy")
@Field File extractedObjectsConstructorApp2 = new File("Extractor/App2/extractedObjectsConstructorApp2.groovy")
-
+//Set this to true for global-state variable conflict
+@Field assignDifferentModes = false
+@Field chooseMode = 0
//Empty the files
if (App == "App1") {
globalObjects.write("")
extractedObjectsApp1.write("")
extractedObjectsConstructorApp1.write("")
+ if (assignDifferentModes)
+ chooseMode = 0
} else if (App == "App2") {
extractedObjectsApp2.write("")
extractedObjectsConstructorApp2.write("")
+ if (assignDifferentModes)
+ chooseMode = 1
}
case "mode":
//def randomVariable = Math.abs(new Random().nextInt() % 3)
def modes = ["away", "home", "night"]
- def userInput = modes[1]
+ // Always assign a different mode to each app
+ def userInput
+ if (assignDifferentModes) {
+ userInput = modes[chooseMode]
+ if (chooseMode < 3)
+ chooseMode++;
+ else
+ chooseMode = chooseMode%3
+ } else {
+ userInput = modes[1]
+ }
if (modeVariables == 0) {
mode0 = metaData['name']
GlobalVariablesBothApps.write("")
GlobalVariablesBothApps.append("//Creating Global variables for both apps\n")
GlobalVariablesBothApps.append("@Field def sendEvent = {eventDataMap -> eventHandler(eventDataMap)}\n")
- GlobalVariablesBothApps.append("@Field def locationObject = new LocationVar(sendEvent)\n")
+ GlobalVariablesBothApps.append("@Field def locationObject = new LocationVar(sendEvent, init)\n")
GlobalVariablesBothApps.append("@Field def appObject = new Touched(sendEvent, 0)\n")
globalObjects.withReader { reader ->