does lazy rules from clause works? [message #987896] |
Wed, 28 November 2012 10:01  |
Eclipse User |
|
|
|
Hello to everyone,
I have a question about lazy rules, because the manual is quite synthetic about them.
I would like to know when the from clause is evaluated.
i.e. I make a call to a lazy rule in a matched rule in this way:
rule main {
from
m: UML!Model,
s: UML!Class ( m.name = 'model')
to
container1 : UML!Model
(
name<- 'graphModel',
packagedElement <- thisModule.host(s)
)
}
lazy rule host {
from
source : UML!Class (source.hasStereotype('lanprofile::Router'))
to
target : UML!Class
(
name <- 'nodo_router'
)
}
why the from clause in the lazy is not evaluated? (it was created target UML!Classes also for that source Classes that don't respect the condition in the round brackets) And, if this behaviour is correct, in which case the from clause make sense for lazy rules?
Thanks in advance,
Alessandro
|
|
|
Re: does lazy rules from clause works? [message #987933 is a reply to message #987896] |
Wed, 28 November 2012 12:08  |
Eclipse User |
|
|
|
Hello,
The initial philosophy behind lazy (matched) rules is to be able to specify when matched rules are actually called.
Thus lazy rules should not have guard conditions, and the filtering should be done on the call:
packagedElement <- if s.hasStereotype('lanprofile::Router') then
thisModule.host(s)
else
OclUndefined -- or something else
endif
Hugo
|
|
|
Powered by
FUDForum. Page generated in 0.04768 seconds