<snip>
> With the static method I can apply my toString implementation to any object that 
> comes along - just what you need for debugging. I just wonder why the Apache 
> commons-beanutils does not provide such a method, and someone mentioned it might be 
> in commons-lang, but I could not find that either.

http://jakarta.apache.org/commons/lang/apidocs/org/apache/commons/lang/builder/ToStringBuilder.html#reflectionToString(java.lang.Object)

String objString = ToStringBuilder.reflectionToString(object);

- Mike

> 
> Hiran
> 
> -----------------------------------------
> Hiran Chaudhuri
> SAG Systemhaus GmbH
> Elsenheimer Straße 11
> 80867 München
> Phone +49-89-54 74 21 34
> Fax   +49-89-54 74 21 99
> 
> 
>  
> 
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] 
> > Sent: Donnerstag, 7. Oktober 2004 14:22
> > To: [EMAIL PROTECTED]
> > Subject: RE: Proposed Action base class change
> > 
> > Another fair point. :)
> > 
> > Well, that's the reason I put the idea out there... I can't 
> > think of every possible angle to look at it from... If I 
> > thought I could, I wouldn't need to solicit opinions in the 
> > first place.
> > 
> > Kind of depressing though... I'm trying to contribute, but so 
> > far all my ideas have been shot down (but for good reasons, 
> > so I'm not bitter about it).  Just have to keep trying I suppose. :)
> > 
> > --
> > Frank W. Zammetti
> > Founder and Chief Software Architect
> > Omnytex Technologies
> > http://www.omnytex.com
> > 
> > On Thu, October 7, 2004 8:56 am, [EMAIL PROTECTED] said:
> > > Hi, Frank.
> > > 
> > > I do not agree. While in most cases it is desireable to see 
> > inside a 
> > > bean (hence I created my
> > >   public static String toString(Object bean) method), 
> > there are times 
> > > when I just have to make sure a bean is not just equal but the same 
> > > instance.
> > > The java.lang.Object.toString() methods allows me to that quite 
> > > quickly as the memory address is printed.
> > > 
> > > Unless you have another way to provide that information, I'd rather 
> > > stick with the default toString() plus some utility 
> > toString(Object) 
> > > method. The impact for you is not too much. What you code so far is:
> > >   log.debug("mybean="+mybean);
> > > and you'd have to change that to
> > >   log.debug("mybean="+BeanUtil.toString(mybean));
> > > which will allow you to either see the memory address or 
> > the contents, 
> > > whatever you prefer.
> > > 
> > > Hiran
> > > 
> > > -----------------------------------------
> > > Hiran Chaudhuri
> > > SAG Systemhaus GmbH
> > > Elsenheimer Stra?e 11
> > > 80867 M?nchen
> > > Phone +49-89-54 74 21 34
> > > Fax   +49-89-54 74 21 99
> > > 
> > > 
> > > 
> > > 
> > >> -----Original Message-----
> > >> From: Frank W. Zammetti [mailto:[EMAIL PROTECTED]
> > >> Sent: Donnerstag, 7. Oktober 2004 13:43
> > >> To: Struts Developers List
> > >> Subject: Re: Proposed Action base class change
> > >>
> > >> Hi Niall,
> > >>
> > >> I certainly agree it would not be possible to satisfy 
> > everyone, but 
> > >> seeing as the intrinsic toString() is all but useless (and 
> > people do 
> > >> generally expect that to be the case with many classes), 
> > why not give 
> > >> an implementation that is of at least some use to some people?  
> > >> Surely it would be better than what you get now?  Obviously it's 
> > >> something many people will override, and that's of course 
> > the whole 
> > >> point of inheritance.  But providing even a slightly more useful 
> > >> default implementation (and maybe telling people it's a 
> > basic default 
> > >> implementation so as to try and keep the flood of bugzilla 
> > requests 
> > >> to a
> > >> minimum) seems to me like a good idea.
> > >>
> > >> I can't address your point about dynabeans because I haven't used 
> > >> them enough to be able to intelligently comment (which is to say I 
> > >> haven't used them at all! :) )... I wouodn't imagine some basic 
> > >> implementation would be too tough for them as well.
> > >>
> > >> In any case, I will look at the toString builders you mentioned... 
> > >> I've come to really like using the commons packages and I try to 
> > >> whenever I can.  This would be a good case I think, if it 
> > doesn't get 
> > >> added as I proposed.  I already have an ActionHelpers class with a 
> > >> bunch of similarly-themed static methods for use from Actions, so 
> > >> maybe it's time to do so for forms as well.
> > >>
> > >> --
> > >> Frank W. Zammetti
> > >> Founder and Chief Software Architect
> > >> Omnytex Technologies
> > >> http://www.omnytex.com
> > >>
> > >> Niall Pemberton wrote:
> > >> > Frank,
> > >> >
> > >> > For me it wouldn't be any use unless it also handled
> > >> DynaBeans. Even
> > >> > then I'd end up overriding it because I have some 
> > formatting utils 
> > >> > which do dates, arrays and collections. Seems to me if 
> > we put it in 
> > >> > then we would end up with a monster trying to satisy
> > >> everyones needs
> > >> > and forever dealing with bugzilla requests for 
> > enhacements (someone 
> > >> > would want an i18n version!) - all just for debugging.
> > >> >
> > >> > The easiest thing is to just put all that code into a
> > >> utility method -
> > >> > that way its only a one liner in the toString() - even
> > >> better if you
> > >> > have your own "base" ActionForm that all you others derive
> > >> from, then
> > >> > its only in one place.
> > >> >
> > >> > Also, there are a set of "toString" builders in commons
> > >> lang which you
> > >> > might like to use - including a reflection one like yours:
> > >> >
> > >> >
> > >> 
> > http://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/bu
> > >> i
> > >> > lder/package-summary.html
> > >> >
> > >> 
> > http://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/bu
> > >> i
> > >> > lder/ReflectionToStringBuilder.html
> > >> >
> > >> > Niall
> > >> >
> > >> > ----- Original Message -----
> > >> > From: "Frank W. Zammetti" <[EMAIL PROTECTED]>
> > >> > To: "Struts Developer" <[EMAIL PROTECTED]>
> > >> > Sent: Thursday, October 07, 2004 4:29 AM
> > >> > Subject: Re: Proposed Action base class change
> > >> >
> > >> >
> > >> >
> > >> >>Obviously I made a typo in the subject... this applies to the 
> > >> >>ActionForm base class.
> > >> >>
> > >> >>Did anyone have any comment on this?  I've noticed a lack
> > >> of activity
> > >> >>on the list lately...
> > >> >>
> > >> >>
> > >> >>>Hello all...
> > >> >>>
> > >> >>>I find myself all the time overloading toString() of my
> > >> ActionForms
> > >> >>>for
> > >> >
> > >> > debugging
> > >> >
> > >> >>>purposes, so I can easily dump the current state of the 
> > object.  I 
> > >> >>>had
> > >> >
> > >> > been doing
> > >> >
> > >> >>>this for each ActionForm class, specifically for it, but
> > >> it ocurrs to
> > >> >>>me
> > >> >
> > >> > that a
> > >> >
> > >> >>>general-purpose reflection-based approach would be better.
> > >> >>>
> > >> >>>I'd like to propose adding this functionality to the
> > >> ActionForm base
> > >> >
> > >> > class.  Here's
> > >> >
> > >> >>>the code I propose adding:
> > >> >>>
> > >> >>>import java.lang.reflect.Field;
> > >> >>>public static final AVERAGE_FIELD_SIZE = 25; public String
> > >> toString()
> > >> >>>{
> > >> >>>  String str = "";
> > >> >>>  StringBuffer sb = null;
> > >> >>>  try {
> > >> >>>    Field[] fields = this.getClass().getDeclaredFields();
> > >> >>>    sb = new StringBuffer(fields.length * AVERAGE_FIELD_SIZE);
> > >> >>>    for (int i = 0; i < fields.length; i++) {
> > >> >>>      if (sb.length() > 0) { sb.append(", "); }
> > >> >>>      sb.append(fields[i].getName() + "=" + 
> > fields[i].get(this));
> > >> >>>    }
> > >> >>>    str = sb.toString().trim();
> > >> >>>  } catch (Exception e) {
> > >> >>>    str = "Exception in ActionForm.toString() : " + e;
> > >> >>>  }
> > >> >>>  return str;
> > >> >>>}
> > >> >>>
> > >> >>>The value of AVERAGE_FIELD_SIZE is a matter of debate, 
> > and it's of
> > >> >
> > >> > course impossible
> > >> >
> > >> >>>to come up with a real value, so something reasonable is
> > >> the answer.
> > >> >>>25
> > >> >
> > >> > struck me
> > >> >
> > >> >>>as a decent starting point.
> > >> >>>
> > >> >>>What does everyone think?  I find this functionality to be very 
> > >> >>>useful
> > >> >
> > >> > in my work,
> > >> >
> > >> >>>and I suspect others may as well.  The code doesn't add any 
> > >> >>>dependencies
> > >> >
> > >> > outside
> > >> >
> > >> >>>J2SE, and it's certainly simple enough as to not be
> > >> particularly risky.
> > >> >>>
> > >> >>>Thanks all!
> > >> >>>
> > >> >>>Frank W. Zammetti
> > >> >>>Founder and Chief Software Architect Omnytex Technologies 
> > >> >>>http://www.omnytex.com
> > >> >>>
> > >> >>
> > >> >>
> > >> >>------------------------------------------------------------
> > >> ---------
> > >> >>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]
> > >>
> > >>
> > > 
> > > 
> > ---------------------------------------------------------------------
> > > 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