-1, what if I don't want this feature? this makes models even more complex to understand. I would rather check, whether detachables aren't detached an log it. but I don't like the idea of taking actions directly.
regards martin Am 06.04.2012 20:01 schrieb "Ryan McKinley" <[email protected]>: > +1 Having IDetachable items detached by default makes sense > > > On Fri, Apr 6, 2012 at 10:56 AM, Igor Vaynberg <[email protected]> > wrote: > > its easy to enable detaching of any IDetachable field rather then only > > IModel. this code can also walk behaviors, but i dont think it should > > go beyond that. walking the entire object graph will be too expensive. > > right now it performs a lot of caching which makes it work well. > > > > -igor > > > > On Fri, Apr 6, 2012 at 10:48 AM, Dan Retzlaff <[email protected]> > wrote: > >> Sorry to double-post, but I realized it's trivial to visit the object > graph > >> since local final variables show up as fields in the inner class. This > >> following snippet prints "detaching". So what do you think about > >> generalizing the automatic detach to all objects, not just components? > >> > >> final IModel model = new IModel() { > >> @Override > >> public Object getObject() { > >> return null; > >> } > >> @Override > >> public void setObject(Object object) { > >> } > >> @Override > >> public void detach() { > >> System.out.println("detaching"); > >> } > >> }; > >> Object object = new Object() { > >> public void method() { > >> System.out.println(model.getObject()); > >> } > >> }; > >> for (Field f : object.getClass().getDeclaredFields()) { > >> System.out.println(f.getName()); > >> if (IModel.class.isAssignableFrom(f.getType())) { > >> f.setAccessible(true); > >> ((IModel)f.get(object)).detach(); > >> } > >> } > >> > >> On Fri, Apr 6, 2012 at 11:26 AM, Dan Retzlaff <[email protected]> > wrote: > >> > >>> I wish there were a way to apply this strategy to the whole object > graph > >>> (not just fields). I use local final LoadableDetachableModels on > occasion, > >>> and it'd be nice for those to magically detach too. I'm +0. > >>> > >>> Just got Calc-Eric's message. Looks like we're on the same page. > >>> > >>> > >>> On Fri, Apr 6, 2012 at 10:42 AM, Igor Vaynberg < > [email protected]>wrote: > >>> > >>>> i wrote a IDetachListener that automatically detaches any IModel > >>>> fields found on components. is this something we would be interested > >>>> in for core? its been running in production for a while without any > >>>> noticeable overhead and its nice not to have to implemenet onDetach() > >>>> all the time just to forward it to secondary models. the only downside > >>>> is that once we introduce this feature we can never remote it because > >>>> doing so will break code. > >>>> > >>>> thoughts? > >>>> > >>>> -igor > >>>> > >>> > >>> >
