Sorry I misread what you said. I thought you said that beans are
only usable in the IDE if it has both a getter and a setter - my
misundestanding.
M
On 19/12/2011 16:19, Michael Anstis wrote:
I'm not clear on what you are saying.
We reflect the methods of existing beans:-
If the member has a getter it is available in the LHS
If the member has a setter it is available in the RHS
If the member has a getter and a setter it is available in
both the LHS and RHS
Members of declared types are available in both the LHS and RHS
(as we implicitly create getters and setters).
I don't understand "we should only support getters" but "be
intelligent enough not to allow the setter to be used in the IDE".
If we only support getters there is no setter; and if there is no
setter how do we allow the user to set the value? Of course my
comments are from a Guvnor perspective, if you mean to change the
way declared types work, then... well, we'll have to change Guvnor
anyway :)
For POJO models we use reflection (class.getMethods) to
determine whether a Type's methods members are available
in the LHS or RHS or both, according to Java Bean
conventions. Declarative models have their members
available in both the LHS and RHS by default as we
generate "getters" and "setters" for them.
It probably looks like we should support only getters
though, for existing beans. We just need to be intelligent
enough not to allow the setter to be used in the IDE.
Toshiya: Sounds like a great introduction task, you up for
the challenge?
In Guvnor 5.3.0, I can use CEP feature support in
Guided Rule Editor after uploading a class by
"Upload POJO Model jar" and annotating it in "New
Declarable Mode".
But if some fields of the POJO class have only
getter methods, Guided Rule Editor won't list those
fields in "Modify constraints" popup. (if a field
has a setter method, it will be listed)
public class TestPojo {
private String name;
public TestPojo() {}
public String getName() { return name; }
// public void setName(String name) { this.name = name; }
}
Am I missing something? If it's not an expected
behaviour, I will raise a JIRA.