Hi Stephen, I also wish to have your hypothetical syntax available in Java. In Java 3.0, perhaps. :-)
I'd like to hear your comment on the idea I posted in a previous message: >public class MyClass { > private int fAge; > private String fName; > > static { > BeanInfoUtils.expose(MyClass.class, "name", "fName", > "setNameWithValidation"); > BeanInfoUtils.expose(MyClass.class, "age", "fAge", "fAge"); > } > > private void setNameWithValidation(String name) {..} >} > >Then, the properties can be accessed by PropertyUtils: > > PropertyUtils.setProperty(myObj, "name", "John Yu"); > PropertyUtils.setProperty(myObj, "age", new Integer(42)); I can see the major problem with this approach is, as with all reflection-based routines, you'll lose the compile-time checking. Otherwise, as you said, the other possibility is to do pre-processing in the IDEs. A drawback of this approach is you have to give up the code-completion facility provided by the IDEs (unless you hack deep enough to alter the IDEs' real-time code inspection sub-system). IMO this is a significant IDE feature you don't want to give up. -- John At 05:16 pm 04-10-2002, you wrote: >Amazing... > >We're starting to discuss stuff I've been experimenting with all year. My >own Joda project started initially as a way to generate beans from >interfaces, adding in other facilities like support for Maps and Lists, >plus event handling. > >If I had the chance then I would agree that the declaritive style of >defining properties is preferable. > >public class Person { > property surname String; > property age int; >} > >The trouble with this is that it requires source code pre generation. The >only alternative I've thought of is to write something like an Eclipse >plugin that hides the precompilation going on. > >Doing something better with beans/properties seems to be a repetitive >requirement. So I'm fully supportive of looking at it. > >Stephen -- John Yu Scioworks Technologies e: [EMAIL PROTECTED] w: +(65) 873 5989 w: http://www.scioworks.com m: +(65) 9782 9610 -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>