Hi Josh: your response makes sense to me, i.e. the public keyword should be inserted by demjava. So does this mean that if we have: public Main = . then the constructor will be made public too? Can Dou add this soon so that we can do JavaBeans. -- Karl >From jayantha@ccs.neu.edu Thu Apr 9 21:47:24 1998 >From: "Joshua C. Marshall" >To: Karl Lieberherr >Subject: Re: weaver > >> In >> http://www.ccs.neu.edu/research/demeter/course/f97/projects/java-beans1/project/project.html >> is a description of two capabilities needed by the weaver. >> >> Have those been added? How can it be expressed? >> >> -- Karl >> >you can say: > > public Main = . > >in the .cd to make a class public. But this doesnt make the constructor >public - i emailed doug about how do to this. > >I think this should be done on demjava's side - having an aspect force a >class public seems not a good idea. Aspects can make individual methods >public by renaming, but the primary purpose of this was to be able >to change something like: > > OldClass { > private void f() (@ old_code() @) > } > >into: > > OldClass { > private void f() (@ ... NewClass.f() ... @) > public void _old_f() (@ old_code() @) // <- old method after renaming > } > NewClass { > void f() (@ ... OldClass._old_f() ... @) > } > >This might be a backwards way to do things, especially since the weaver >now supports variables (so the code alone could be moved), but users >should never know about OldClass._old_f() so I dont mind it too much. > > >josh > >