Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

def honor_constraints(PL):
forEach i in 0..n-1
if not choices_i(PL) contains p[i], then
p[i]:= default_i(PL)
// detect infinite loops and stop with message 'Action parameter negotiation cannot yield a fixed point.'

1) Fill in defaults in two passes:

Code Block
languagepy
//TODO we need to find a fixed point

forEachfor i in 0..n-1
	p[i]:= default_i() # no arg, init PL

for i in 0..n-1
	p[i]:= default_i(PL)
	honor_constraints(PL)


2) Prozess Process visibility and usablility usability (disable/hide)

Code Block
forEachfor i in 0..n-1
	v[i]:= not hide_i(PL)
	u[i]:= not disable_i(PL)


3) Prozess Process individual parameter validity

Code Block
// skip this step until (5) has been reached at least once!
if step_5 was reached, then
	forEachfor i in 0..n-1
		invalid[i]:= validate_i(PL)


4) Wait for user interaction,
- let reset_i be a user initiated reset request for the i-th parameter
- let update_i be a user initiated update for the i-th parameter, either triggered by direct entering of a value or using autoComplete or choices

Code Block
on reset_i:
	p[i]:= default_i(PL)

on update_i:
	p[i]:= the proposed new value as given by the update event

on user initiates the action invocation
	goto (5) //# process parameter-list validity

goto (2) //# start over


5) Process parameter-list validity

Code Block
if validate(PL) is not empty, then
	render invocation veto message
	goto (4) //# wait for user interaction

...