Closed isostorm closed 9 years ago
Momenteel moet er eerst een taak vb "task2" aangemaakt worden en dan kan die via task1.setAlternativeTask(task2) gekoppeld worden.
De reden waarom ik denk dat het in 2 stappen moet gebeuren is: "if the task to deploy apache is marked as failed, the user may create an alternative task deploy nginx."
Het checken of de alternative task tot hetzelfde project hoort is idd een probleem. Bidirectioneel zou dit oplossen maar koppeling gaat dan wel omhoog :/
Daarom stel ik voor dat die methode altijd langs project passeert. Hij is ten slotte de information expert van Tasks. Ik denk zelfs dat alles wat met alternative in Project gecontroleerd zou mogen worden...
Dus eigenlijk Task.canHaveAsAlternative verplaatsen naar Project? Project heeft inderdaad alle informatie terwijl Task niet weet tot of de alternativeTask wel tot het juiste Project behoort.
En dan ook hetzelfde met Task.canHaveAsPrerequisiteTasks waarschijnlijk.
Is het een probleem dat andere klassen dan nog steeds Task.setAlternativeTask kunnen oproepen en dus ook kunnen zorgen dat een task in een illegale toestand geraakt?
Wanneer een taak gecreerd wordt kan opgegeven of het een alternatief is voor een andere taak, die failed is. Project controleert of alternative in hetzelfde project zit.
Dit kan ook gebeuren door parametervisibiliteit van project te geven aan setAlternative dan kan dit niet buiten project om opgeroepen worden
Kan een gebruiker onmiddellijk een nieuwe taak maken of moet hij hem al hebben aangemaakt voor hij hem als alternatief zet? + Hoe wordt gecheckt dat alternative tot zelfde project behoort?