> 
> Will the unbound properties be "set" as well? (If I 
have several unused
> parameters in a component)

No; unbound parameters will not be set, so they'll keep 
whatever the default value is in the component class.

> 
> Also, can someone give me an idea of the overhead paid 
for all the
> reflection/introspection going on? I don't have a good 
grasp on where the
> boundary between convenience and performance lies when 
it requires
> reflection.

I don't either.  It would be good to resurrect some test 
code I wrote and see how it plays in JDK 1.4.  
Supposedly, reflection is now many times faster than in 
1.3 and earlier.

I would like to compute the costs of the following:
1) Invoke a setter method as pure Java code
2) Invoke a setter method using reflection
3) Invoke a setter method using PropertyHelper

And see what the relative costs are.  If I ever get some 
free time (I'm still behind schedule at work and in 
crunch mode, so its hard for me to get anything done for 
Tapestry).


>                     "Howard 
M.                                                       
                                                         
>                     Lewis Ship"          To:     
Christian 
> 
Hall/Technology/Equifax@Equifax                          
                          
>                     <hlship@attbi        
cc:     "Tapestry Developer" 
> <tapestry-
[EMAIL PROTECTED]>                         
     
>                     .com>                Subject:     
Re: [Tapestry-developer] > Massive change to 
parameters / bindings                        
>                                                        
                                                         
                              
>                     
04/26/2002                                               
                                                         
        
>                     11:45 
AM                                                       
                                                         
  
>                                                        
                                                         
                              
>                                                        
                                                         
                              
> 
> 
> 
> 
> >
> > Just so I am clear, is this what you are saying?
> >
> > - For components one builds, each parameter must 
have a corresponding
> > IBinding property
> 
> No, that's what were getting away from.  Under the 
revised scheme, you
> would
> have a property that matches the name and **type** of 
the parameter.  The
> existence of the IBinding would be hidden from your 
code (with some
> exceptions).
> 
> > - If "standard" (non-IBinding) properties are 
desired, provide such
> > properties with same names as parameters, and 
Tapestry will populate them
> > from the IBindings
> 
> A yes ... this is to be the standard case.
> 
> > - If you want to do something special with the input 
(examples might be
> > useful here), you can just leave out the "standard" 
properties and
> > de-reference the IBinding in renderComponent
> 
> Right; if you want more control, implement the 
parameter as it is done
> today, by providing a fooBinding property, not a foo 
property.  Or, for
> less
> efficiency, provide no property and invoke getBinding
() instead.
> 
> > - If you want to provide output to parameters, this 
is done the same way
> it
> > is done now (using IBinding).
> 
> Yes.  Thinking about the few places in Tapestry where 
output parameters are
> used (Foreach, form elements), the component needs 
precise control over
> when
> the output parameter is set ... i.e., set it, then 
invoke the listener.
> 
> >
> > Also, you said:
> >
> > "Rule #1 means all sorts of properties will be set."
> 
> That is, render() will invoke setter methods for all 
bindings that can be
> mapped to parameters before invoking renderComponent
().  The current system
> allows the developer to be more frugal about which 
bindings are
> dereferenced.
> 
> >
> > Not sure what you meant here...just the properties 
that map to bindings,
> > right?
> 
> Basically, each dynamic binding that can map to a 
JavaBean property of the
> component will be set.  Again, the current system 
allows the developer more
> control.
> 
> >
> > -C
> >
> 
> 
> 


--
[EMAIL PROTECTED]

http://tapestry.sf.net
> 
> Will the unbound properties be "set" as well? (If I have several unused
> parameters in a component)
> 
> Also, can someone give me an idea of the overhead paid for all the
> reflection/introspection going on? I don't have a good grasp on where the
> boundary between convenience and performance lies when it requires
> reflection.
> 
> 
> 
> 
>                                                                                      
>                                                         
>                     "Howard M.                                                       
>                                                         
>                     Lewis Ship"          To:     Christian 
> Hall/Technology/Equifax@Equifax                                                    
>                     <hlship@attbi        cc:     "Tapestry Developer" 
> <[EMAIL PROTECTED]>                              
>                     .com>                Subject:     Re: [Tapestry-developer] > 
>Massive change to parameters / bindings                        
>                                                                                      
>                                                         
>                     04/26/2002                                                       
>                                                         
>                     11:45 AM                                                         
>                                                         
>                                                                                      
>                                                         
>                                                                                      
>                                                         
> 
> 
> 
> 
> >
> > Just so I am clear, is this what you are saying?
> >
> > - For components one builds, each parameter must have a corresponding
> > IBinding property
> 
> No, that's what were getting away from.  Under the revised scheme, you
> would
> have a property that matches the name and **type** of the parameter.  The
> existence of the IBinding would be hidden from your code (with some
> exceptions).
> 
> > - If "standard" (non-IBinding) properties are desired, provide such
> > properties with same names as parameters, and Tapestry will populate them
> > from the IBindings
> 
> A yes ... this is to be the standard case.
> 
> > - If you want to do something special with the input (examples might be
> > useful here), you can just leave out the "standard" properties and
> > de-reference the IBinding in renderComponent
> 
> Right; if you want more control, implement the parameter as it is done
> today, by providing a fooBinding property, not a foo property.  Or, for
> less
> efficiency, provide no property and invoke getBinding() instead.
> 
> > - If you want to provide output to parameters, this is done the same way
> it
> > is done now (using IBinding).
> 
> Yes.  Thinking about the few places in Tapestry where output parameters are
> used (Foreach, form elements), the component needs precise control over
> when
> the output parameter is set ... i.e., set it, then invoke the listener.
> 
> >
> > Also, you said:
> >
> > "Rule #1 means all sorts of properties will be set."
> 
> That is, render() will invoke setter methods for all bindings that can be
> mapped to parameters before invoking renderComponent().  The current system
> allows the developer to be more frugal about which bindings are
> dereferenced.
> 
> >
> > Not sure what you meant here...just the properties that map to bindings,
> > right?
> 
> Basically, each dynamic binding that can map to a JavaBean property of the
> component will be set.  Again, the current system allows the developer more
> control.
> 
> >
> > -C
> >
> 
> 
> 
> 
> 
> 
> 
> _______________________________________________
> Tapestry-developer mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/tapestry-developer

_______________________________________________
Tapestry-developer mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/tapestry-developer

Reply via email to