<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>You underestimate my stubbornness. I am sure we can prove the JDK guys that they are wrong if we want to ;)<br><br>On 16 nov. 2012, at 00:10, Matt Benson &lt;<a href="mailto:mbenson@apache.org">mbenson@apache.org</a>&gt; wrote:<br><br></div><blockquote type="cite"><div>No arguments here, then.&nbsp; Good find, Gunnar!<br><br>Matt<div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Nov 15, 2012 at 4:24 PM, Gunnar Morling <span dir="ltr">&lt;<a href="mailto:gunnar@hibernate.org" target="_blank">gunnar@hibernate.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">As life goes, I just learned that there will be a common super interface of java.lang.reflect.Method and Constructor in JDK 8, called ... Executable :) [1]. In that light ExecutableDescriptor seems like the best option to me.<div>

<br></div><div>--Gunnar<br><div><br></div><div>[1]&nbsp;<a href="http://download.java.net/jdk8/docs/api/index.html?java/lang/reflect/Executable.html" target="_blank">http://download.java.net/jdk8/docs/api/index.html?java/lang/reflect/Executable.html</a></div>

</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">2012/11/12 Matt Benson <span dir="ltr">&lt;<a href="mailto:mbenson@apache.org" target="_blank">mbenson@apache.org</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br><div class="gmail_extra"><br><br><div class="gmail_quote"><div>On Mon, Nov 12, 2012 at 3:11 AM, Gunnar Morling <span dir="ltr">&lt;<a href="mailto:gunnar@hibernate.org" target="_blank">gunnar@hibernate.org</a>&gt;</span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br><div class="gmail_extra"><div class="gmail_quote"><div>2012/11/10 Matt Benson <span dir="ltr">&lt;<a href="mailto:mbenson@apache.org" target="_blank">mbenson@apache.org</a>&gt;</span><br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div><div>You mean that method that was already there in 1.0?&nbsp; :P&nbsp; Yes, that's what I was looking for.&nbsp; Thanks!<br></div></div></blockquote><div><br></div></div><div>:)</div><div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">



<div><div><br>As
 for the naming question, I was recently working with Javassist, which 
describes the abstraction of "method or constructor" as "behavior," 
which I like.&nbsp; What about that?</div></div></blockquote><div><br></div></div><div>Personally, I find "behavior" not really appealing, but it's a good idea to look what other libraries use. Based on a short search some more proposals:</div>



<div><br></div><div>BehaviorDescriptor<br></div><div>ExecutableDescriptor</div><div>CodeDescriptor</div><div>InvocableDescriptor</div><div>InvocableObjectDescriptor</div><div>MethodOrConstructorDescriptor</div><div><br></div>


</div></div></blockquote></div><div>Add "MemberDescriptor" from java.lang.reflect.Member, implemented by Method/Constructor (as well as Field :/ ).<br><br></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


<div class="gmail_extra"><div class="gmail_quote"><div></div>
<div>Alternatively we may also have only one type (MethodDescriptor) for describing methods *and* constructors. The only method which MethodDescriptor provides in addition to ConstructorDescriptor today is getName(). &nbsp;When representing constructors we could return the (binary) class name, resembling java.lang.reflect.Constructor#getName().</div>


<span><font color="#888888">
<div><br></div></font></span></div></div></blockquote></div><div>Since the descriptors are already retrieved by separate method calls, this seems reasonable enough to me.<div><div><img src="cid:"></div><span><font color="#888888">
</font></span></div><span><font color="#888888">Matt<br>&nbsp;<br></font></span></div><div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class="gmail_extra"><div class="gmail_quote"><span><font color="#888888"><div>
</div><div>--Gunnar</div></font></span><div><div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>
<div><div><img src="cid:"></div></div></div></div><img name="13b062cbebe2ffd0_13afa0082e703927_13af3e41fb0e086a_13ae7adb3d503083_:0" src="cid:"><div><div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Fri, Nov 9, 2012 at 6:08 PM, Gunnar Morling <span dir="ltr">&lt;<a href="mailto:gunnar@hibernate.org" target="_blank">gunnar@hibernate.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<p>Hi Matt,</p>
<p>On MethodDescriptor and ConstructorDescriptor there is a method List&lt;ParameterDescriptor&gt; getParameterDescriptors(). The individual parameter types can be determined via ParameterDescriptor#getElementClass(). Is that what you are after?</p>






<p>Btw. it likely makes sense to have a common super interface for MethodDescriptor and ConstructorDescriptor. There's BVAL-331 for this [1]. Suggestions for a good name are welcome, so far ExecutableDescriptor is the best we got.</p>






<p>--Gunnar</p>
<p>[1] <a href="https://hibernate.onjira.com/browse/BVAL-331" target="_blank">https://hibernate.onjira.com/browse/BVAL-331</a><br></p>
<div class="gmail_quote">Am <a href="tel:09.11.2012%2023" value="+49911201223" target="_blank">09.11.2012 23</a>:29 schrieb "Matt Benson" &lt;<a href="mailto:mbenson@apache.org" target="_blank">mbenson@apache.org</a>&gt;:<br type="attribution">





<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>
Same must apply for constructors of course.<br><br>The alternative, IMO, is that #getConstrainedMethods() and #getConstrainedConstructors() are replaced by boolean #hasConstrainedMethods() and #hasConstrainedConstructors(), respectively, as that is all the current methods are really good for.<br>







<br>Matt<br><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Nov 9, 2012 at 4:20 PM, Matt Benson <span dir="ltr">&lt;<a href="mailto:mbenson@apache.org" target="_blank">mbenson@apache.org</a>&gt;</span> wrote:<br>







<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">When calling BeanDescriptor#getConstraintsForMethod(...) a caller already knows the full signature of the method about which he is inquiring.&nbsp; With BeanDescriptor#getConstrainedMethods() this is not the case.&nbsp; Once the caller has gotten this information, the only useful things he knows are either&nbsp; (A) that no methods are constrained, or (B) one or more methods are constrained, with a particular set of names.&nbsp; He still has to call #getConstraintsForMethod(...) for every method whose name matches one returned by the gCM() call (let's not discuss how useful it may be to know the highest constrained parameter index).&nbsp; This could be cleared up very simply by adding #getParameterTypes() to MethodDescriptor, and I urge that we do so.<span><font color="#888888"><br>








<br>Matt<br>
</font></span></blockquote></div><br></div>
<br></div></div>_______________________________________________<br>
beanvalidation-dev mailing list<br>
<a href="mailto:beanvalidation-dev@lists.jboss.org" target="_blank">beanvalidation-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
<br></blockquote></div>
<br>_______________________________________________<br>
beanvalidation-dev mailing list<br>
<a href="mailto:beanvalidation-dev@lists.jboss.org" target="_blank">beanvalidation-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
beanvalidation-dev mailing list<br>
<a href="mailto:beanvalidation-dev@lists.jboss.org" target="_blank">beanvalidation-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
<br></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
beanvalidation-dev mailing list<br>
<a href="mailto:beanvalidation-dev@lists.jboss.org" target="_blank">beanvalidation-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
<br></blockquote></div></div></div><br></div>
<br>_______________________________________________<br>
beanvalidation-dev mailing list<br>
<a href="mailto:beanvalidation-dev@lists.jboss.org" target="_blank">beanvalidation-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
beanvalidation-dev mailing list<br>
<a href="mailto:beanvalidation-dev@lists.jboss.org">beanvalidation-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev" target="_blank">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a><br>
<br></blockquote></div><br></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>beanvalidation-dev mailing list</span><br><span><a href="mailto:beanvalidation-dev@lists.jboss.org">beanvalidation-dev@lists.jboss.org</a></span><br><span><a href="https://lists.jboss.org/mailman/listinfo/beanvalidation-dev">https://lists.jboss.org/mailman/listinfo/beanvalidation-dev</a></span><br></div></blockquote></body></html>