--- On Fri, 9/10/10, Adam Heath <[email protected]> wrote: > On 09/10/2010 06:46 PM, Adrian Crum > wrote: > > --- On Fri, 9/10/10, Adam Heath<[email protected]> > wrote: > >> On 09/10/2010 04:46 PM, Adrian Crum > >> wrote: > >>> I have a feeling that will break a lot of > screen > >> widget/mini-language code. > >> > >> Removing implements Map, or fixing the > implementation? > >> > >> I've seen code scattered around that checks if the > Map is > >> an instance > >> of MapStack, and then does a push, falling back on > wrapping > >> the map in > >> a new MapStack. Such code shouldn't break > > > > Let's cross our fingers. > > > > I understand your viewpoint and I'm not arguing > against it. If MapStack implements Map, then it should > follow the Map contract - from a Java developer's > viewpoint. > > > > My concern is for the OFBiz user who is writing a > simple method, and they expect their changes to local > variables to be local - not global. The OFBiz user is not > aware of - or concerned with - a "Map contract." > > Huh? Changes to map expected to be local, not > global? What do you > mean by that? If I call map.remove(key) in a simple > method, I expect > that the very next line after that will return false for > map.containsKey(key).
If I write a simple method that declares a variable, then calls another simple method, I would expect the variable I declared to still be there when the simple method I called returns. -Adrian
