>
>
> > Ok, try it once again, then we better go to IRC :)
> >
> Please come to IRC, because we have a lot to discuss ;-)
>
We discussed the problem and come with this adapted proposal:

MMObjectBuilder::nodeXXXXChanged(String machine,String number,String 
builder,String ctype) {

if(builder.equals(tableName) {
    // do cache stuff
}
 
// signal all the other objects that have shown interest in changes of 
nodes of this builder type.
for (Enumeration e=remoteObservers.elements();e.hasMoreElements();) {
    MMBaseObserver o=(MMBaseObserver)e.nextElement();
    o.nodeRemoteChanged(machine,number,builder,ctype);
}

MMObjectBuilder pb = getParentBuilder();
if(pb!=null && pb.ISINSTANCEOFBUILDER(builder)) {
    pb.nodeRemoteChanged(machine, number, builder, ctype);
}

The different with the previous propasal is the extra 
ISINSTANCEOFBUILDER check. This will make sure that only the 
parentBuilders are getting a signal if they are instances of the builder 
that changed. This additional check implies that we also have to add an 
extra method MMObjectBuilder::isInstanceOfBuilder(String buildername). I 
don't see big problems. I will start testing this setup and if people 
agree, i will add it to cvs.

greetings Rob



Reply via email to