2 Replies Latest reply on Feb 29, 2008 10:33 AM by adrian.brock

    BeanMetaDataBuilder

      I've done a major tidyup on the BeanMetaDataBuilder.

      A lot of it was javadoc but there were some other problems.

      1) Although this class is public api, the only way to get access to it was
      from a private api. BeanMetaDataBuilderFactory :-)

      2) There were a lot of things you could not do, especially with the install metadata
      or creating values to pass to the metadata

      I've changed the interface to an abstract class to include both factory methods
      and also to implement most of the helper methods based on a small amount
      of implementation detail abstract methods.

      I added some factory methods for values.

      This also included a helper for parameters/properties
      addParameter(..., String string) instead of Object
      which creates a StringValueMetaData, i.e. it can use property editors
      instead of just passing the String.

      I also reworked the installs so you can pass reasonable values,
      i.e. ValueMetaData, with a special method for the common case of "this".

      I also add methods to configure the "factory" part of the constructor.

      There's still some work to do on the in/uncallbacks which currently have no support.
      But this class is a lot more useful now. Not that it wasn't useful before, but it
      only catered for simple cases (unless you fell back to using implementation details).

        • 1. Re: BeanMetaDataBuilder
          kabirkhan

          If you do

          builder.addPropertyMetaData("name", val1);
          builder.addPropertyMetaData("name", val2);
          


          You end up with two AbstractPropertyMetaData entries with the same name. For my use case I need to replace it.

          Should I create new replacePropertyMetaData() methods, or update the existing addPropertyMetaData() methods?

          • 2. Re: BeanMetaDataBuilder

             

            "kabir.khan@jboss.com" wrote:

            Should I create new replacePropertyMetaData() methods, or update the existing addPropertyMetaData() methods?


            Fix it. It should replace.