I've not heard back on this last post.

So... is my idea below not acceptable because it breaks the API signature
for reverse? If not acceptable, would a new API be acceptable? Name to be
suggested later this is the correct path...

Thank,
Gary

> -----Original Message-----
> From: Gary Gregory [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, October 08, 2003 15:10
> To: 'Jakarta Commons Developers List'
> Subject: RE: [lang] ArrayUtils.reverse
> 
> Hmm... my main proposal seems to have gotten lost in the shuffle (sorry,
> couldn't resist).
> 
> Proposal:
> 
> void reverse(type[] array)
> 
> Becomes:
> 
> type[] reverse(type[] array)
> 
> The input array is returned. That's it.
> 
> --
> 
> To follow the shuffle, this lets shuffle lie:
> 
> ArrayUtils.cutTheDeck(ArrayUtils.shuffleHere(ArrayUtils.shuffleThere(deck)
> ))
> ;
> 
> Etc.
> 
> Gary
> 
> > -----Original Message-----
> > From: __matthewHawthorne [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, October 08, 2003 14:58
> > To: Jakarta Commons Developers List
> > Subject: Re: [lang] ArrayUtils.reverse
> >
> > I don't see a need to deprecate the existing methods.  In methods such
> > as reverse(Object[]), I think the default behavior would be to modify
> > the argument.  That's the way that methods in java.util.Arrays as
> > java.util.Collections behave.  However, as I've said, I think that
> > reverseAsCopy versions for all of the reverse methods are acceptable,
> > although I am starting to prefer reverseCopy as a name.  However, I hear
> > what Stephen is saying about bloat...
> >
> > For example, what if I were to propose an array version of:
> > - void java.util.Collections.shuffle(List list)
> >
> > which would be:
> > - void ArrayUtils.shuffle(Object[] array)
> >
> > and would possibly need:
> > - Object[] ArrayUtils.shuffleCopy(Object[] array)
> >
> > Would this be accepted?  What about versions for all of the primitive
> > types?
> >
> > My hypothetical suggestion may be polluting the conversation, but I'm
> > trying to paint a picture that forces us to decide if these types of
> > methods are suitable for ArrayUtils, another class, or [lang] in
> general.
> >
> > What do you think?
> >
> >
> >
> >
> > Gary Gregory wrote:
> >
> > > Here is a proposal that I think addresses all issues but I am not sure
> > why
> > > changing reverse() to return something instead of void is not
> backwards
> > > compatible (granted you need to recompile). Are we saying that we want
> > > binary compatibility. It seems ok to ask folks to recompile.
> > >
> > > 1) reverse does not change but is deprecated, in favor of:
> > > 2) new methods reverseShallow (as opposed to "deep") are just like
> > reverse
> > > and it returns its arg.
> > > 3) do not add reverseAsCopy until someone asks for it.
> > >
> > > Thoughts?
> > >
> > > Gary
> > >
> > >
> > >>-----Original Message-----
> > >>From: Stephen Colebourne [mailto:[EMAIL PROTECTED]
> > >>Sent: Wednesday, October 08, 2003 13:20
> > >>To: Jakarta Commons Developers List
> > >>Subject: Re: [lang] ArrayUtils.reverse
> > >>
> > >>I would agree that reverse() should probably return the array, however
> > >>this
> > >>is a nasty backwards compatable change, seems harmless but actually
> > messes
> > >>up anyone where two OSS projects require different versions of lang.
> (We
> > >>made some incompatble changes in 2.0, but I'm aiming to avoid these
> > >>entirely
> > >>now in such a low level library as lang) So I'm -1.
> > >>
> > >>reverseCopy() sounds fine, however I would question how much of a need
> > it
> > >>meets. We must be very challenging of new methods in lang to avoid too
> > >>much
> > >>bloat, without blocking everything. Its a fine line.
> > >>
> > >>Stephen
> > >>
> > >>----- Original Message -----
> > >>From: "Gary Gregory" <[EMAIL PROTECTED]>
> > >>
> > >>>I think I like it BUT the issue you raise is an orthogonal one.
> > >>>
> > >>>(1) A method that returns void cannot be used in an expression,
> period.
> > >>>Client can always ignore the return value and it does not cost the
> app
> > >>>anything.
> > >>>
> > >>>(2) Whether or not the array is twiddled in-place or not is a
> separate
> > >>
> > >>issue
> > >>
> > >>>and we are talking about a new API. So let's deal with both
> separately.
> > >>
> > >>For
> > >>
> > >>>a new API I see the following possibilities:
> > >>>
> > >>>(2.1.1) reverseCopy(type array[])
> > >>>   Sorts with reverse.
> > >>>
> > >>>(2.1.1) reverseAsCopy(type array[])
> > >>>   Sorts with reverse, a little better.
> > >>>
> > >>>(2.2) copyReverse(type array[])
> > >>>Makes copying the most prominent verb, not quite right IMHO.
> > >>>
> > >>>(2.3) reverse(type array[], boolean copyFirst)
> > >>>      Barf.
> > >>>
> > >>>Gary
> > >>>
> > >>>
> > >>>>-----Original Message-----
> > >>>>From: __matthewHawthorne [mailto:[EMAIL PROTECTED]
> > >>>>Sent: Wednesday, October 08, 2003 12:09
> > >>>>To: Jakarta Commons Developers List
> > >>>>Subject: Re: [lang] ArrayUtils.reverse
> > >>>>
> > >>>>I think it's a good idea, but I like method that returns void also,
> > >>>>because it may save memory by modifying the input array.
> > >>>>
> > >>>>Maybe your suggested method should be renamed to:
> > >>>>
> > >>>>Object[] copyReverse(final Object[] array)
> > >>>>
> > >>>>and be modified to not operate on the argument, but instead create a
> > >>>>copy of it and return the reverse of the copy.
> > >>>>
> > >>>>What do you think?
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>Gary Gregory wrote:
> > >>>>
> > >>>>
> > >>>>>Hello,
> > >>>>>
> > >>>>>How about returning the argument instead of void for these APIs
> such
> > >>>>
> > >>>>that
> > >>>>
> > >>>>>they can be used in expressions?
> > >>>>>
> > >>>>>Now ArrayUtils:
> > >>>>>
> > >>>>>public static void reverse(final Object[] array) {
> > >>>>>
> > >>>>>Proposal:
> > >>>>>
> > >>>>>public static Object[] reverse(final Object[] array) {
> > >>>>>
> > >>>>>
> > >>>>>I ran into this with the Object[] version of the API but this
> > >>
> > >>applies
> > >>to
> > >>
> > >>>>all
> > >>>>
> > >>>>>other ArrayUtils.reverse APIs.
> > >>>>>
> > >>>>>This change should backwards compatible with a recompile of client
> > >>
> > >>code.
> > >>
> > >>>>>Thanks,
> > >>>>>Gary
> > >>>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>--------------------------------------------------------------------
> -
> > >>>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >>>>For additional commands, e-mail: [EMAIL PROTECTED]
> > >>>
> > >>
> > >>---------------------------------------------------------------------
> > >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >>For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to