[jdom-interest] insertChild in Element
Brett McLaughlin
brett.mclaughlin at lutris.com
Wed Aug 30 07:20:06 PDT 2000
"James W. Howe" wrote:
>
> At 09:46 PM 8/29/2000 -0500, Brett McLaughlin wrote:
>
> >Chris Hamersley wrote:
> > >
> > > Hi All,
> > >
> > > I could really use an insertChild(int aIndex, Element aChild) method in the
> > > Element class. I think I'm going to go ahead and add this but was
> > wondering
> > > if it could become incorporated so I don't have to add this feature to
> > > future releases.
> >
> >What's wrong with using the List operations from getChildren()?
> >
> >-Brett
>
> There are a couple of things that bother me about the getChildren
> approach. First, it violates the Law of Demeter. You shouldn't have to
What? ;-) The "Law of Demeter"?
> grab the guts of an Element in order to manipulate the Element. You are
You don't have to grab the "guts of an Element." You are grabbing a Java
structure that is universal (a List) and operating upon it. There's
nothing exposed about this.
> basically exposing the internal implementation of the Element object to the
> outside world. The second problem I have is that it violates the notion of
You're inserting an Element - by definition, you want to affect the
internal implementation. I'm not sure I buy this...
> doing something Once And Only Once. The odds are pretty good that there
Actually, adding a method to Element to do this would violate the notion
of providing one way to do a single task. I don't like an API that
provides 13 ways to do the same basic thing...
> will be more than one place where you might want to insert an element and
> duplicating code is generally not a good idea. Granted, the amount of code
> you are duplicating is pretty small, but it is duplicated effort just the
> same.
What is wrong with
element.getChildren().add(myElement, 3);
Nothing complex or duplicated about it...
>
> It seems to me that the ability to insert a child into an Element at a
> particular location is behavior which belongs to the Element itself. I
> would advocate adding this capability to Element.
Seeing as we haven't heard this complaint from anyone else in 6 months,
I'm leary to add it. I think the line above is pretty simple to put in,
and makes a lot of sense. It's most of the reason we made the list of
children live, anyway.
-Brett
>
> James W. Howe mailto:jwh at allencreek.com
> Allen Creek Software, Inc. pgpkey: http://ic.net/~jwh/pgpkey.html
> Ann Arbor, MI 48103
--
Brett McLaughlin, Enhydra Strategist
Lutris Technologies, Inc.
1200 Pacific Avenue, Suite 300
Santa Cruz, CA 95060 USA
http://www.lutris.com
http://www.enhydra.org
More information about the jdom-interest
mailing list