One can always get better at following but tools must improve to be better for building ;)
** Martin 2011/1/11 Rodolfo Hansen <kry...@gmail.com>: > I guess Project Lombok could be extended for this. > > You would be inviting the same problems encountered by C++ with its > multiple inheritance, > and all that magic will probably make things harder to follow. > > But; like all shotguns, it's everyone's responsibility where they aim, > lest they shoot themselves in the foot. > > :D > > > On Sun, 2011-01-09 at 10:00 +0200, Martin Makundi wrote: > >> >>> Either way, you have to put logic somewhere that tries to figure out >> >>> what the heck you want to borrow and then figure out where the heck to >> >>> get it. >> >> >> >> If it is done at compile time you don't need "messaging" logic. It >> >> would be uniquely defined what you can get. >> > >> > Please explain. >> >> Think about object hierarchy. It is uniquely defined what method >> overrides what etc. >> >> So it would just expand the same idea to "membership dimensions" in >> addition to "inheritance dimensions". >> >> I mean that assuming man has a bag would work effectively similar to >> man extends bag at compile time. >> >> If bag has a getter then man can expose that getter. However, if we >> would really extend bag then we are stuck with it (and we could'nt >> have man wear both jacket, trousers and bag at same time). >> >> When man only "has" bag then we can also change the bag and extend the >> bag with another bag or set it to null even. >> >> Nevertheless, we could annotate: >> >> @DefaultExpose(ExposeLevels.ALL) >> public class Man { >> private Bag bag; >> } >> >> public class Customs { >> public boolean investigate(Man man) { >> Pencil = man.getPencil(); >> } >> } >> >> :::: Alternatively you can move the annotation >> >> public class Man { >> �...@defaultexpose(ExposeLevels.ALL) >> private Bag bag; >> } >> >> ::: or even more detailed: >> >> public class Bag { >> �...@defaultexpose(ExposeLevels.ALL) >> private PencilCase pencilCase; >> } >> >> >> Override rules could be same as "as if" the Man extended Bag and as if >> Bag extened PencilCase. >> >> ** >> Martin > > >