Hi,
API looks very good, I want to add this:
1.
    /**
     * Creates a new instance of this Clazz using the supplied parameters
     */
    public abstract Object newInstance(Object[] parameters);

some of parameters can be null and this method must be something like this :

  public abstract Object newInstance( Class types[], Object[] parameters);

2.
I think we need some kind of callback in ClazzProperty  "property change
listener"

3. ClazzOperation needs some descriptors for exeptions

Is ClazzOperation is for public methods only ?
I am not sure, but I thinkit is better to throw "checked" exeption from
"invoke" and "newInstance"





----- Original Message -----
From: "Dmitri Plotnikov" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, November 08, 2002 3:33 PM
Subject: [clazz] draft reflect implementation


> I am not really done with the first draft yet, but since I will have to
> take about a week off from clazz, I wanted to commit what
> I have done so far and give you a chance to look it over.
>
> My initial focus was on implementing functionality equivalent to
> that of java.beans.Introspector. There are several pretty cool
> improvements over the Introspector:
>
> 1. Highly customizable design.
>
>     - You can add new ClazzLibraries for new kinds of Clazzes. So far
> there is only one such library, ReflectClazzLibrary, but more are
> coming.
>
>     - You can add new ClazzLoaders to customize Clazz generation for
> individual clazzes or groups of clazzes.
>
>     - In the case of Reflected clazzes, you can change the way accessor
> methods are bound to properties.  For example, if you want to make
> read methods look like "readFoo()" instead of "getFoo()", it is a matter
> of overriding one method on ReflectScalarPropertyIntrospector.
>
>     - In the case of Reflected clazzes, you can add new categories of
> properties.  The default list of categories consists of List (which
> works for Lists as well as arrays), Mapped and Scalar properties.
>
> 2. In the case of ReflectedClazzes, richer mapping of accessors to
> properties: methods like getFoo(int), setBar(key,value), getFooKeySet()
> etc are recognized.
>
> 3. If a property is Mapped, the corresponding clazzProperty.get()
> returns a Map, even if all the bean defines is a bunch of accessor
> methods like getFoo(key).  The Map implementation returned by
> clazzProperty will invoke those accessors if they exist (see the
> ReflectedMap).
>
> 4. Similarly, if a property is a List or an array, the corresponding
> value is a List (see ReflectedList).
>
> 5. Powerful diagnostic facility that optionally prints details of
> introspection.  You won't have to wonder any more: "how come it does
> not see my property 'foo'".  I have attached a sample diagnostic log.
> Check it out, it's pretty cool.
>
> The implemented functionality comes with tests, but as you will see not
> all functionality is implemented yet.
>
> Don't look for ATTRIBUTES, DELEGATORS or BEAN stuff yet - I'll get to
> that in a week or so.
>
>
> - Dmitri
>
>


----------------------------------------------------------------------------
----


> --
> To unsubscribe, e-mail:
<mailto:commons-dev-unsubscribe@;jakarta.apache.org>
> For additional commands, e-mail:
<mailto:commons-dev-help@;jakarta.apache.org>


--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@;jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@;jakarta.apache.org>

Reply via email to