Re: Request for Review : CR#8004015 : [2nd pass] Add interface extends and defaults for basic functional interfaces

2012-12-05 Thread Lance Andersen - Oracle
I am still wondering if we need some sort of javadoc tag for default 
implementations so that it will stand out better and allow us to be consistent 
with how we specify this across Java SE and other APIs that leverage default 
methods.

Has any thought been given to this?

Best
Lance

On Dec 5, 2012, at 12:47 AM, Mike Duigou wrote:

 Hello all;
 
 I have updated the proposed patch. The changes primarily add class and method 
 documentation regarding handling of null for the primitive specializations.
 
 http://cr.openjdk.java.net/~mduigou/8004015/1/webrev/
 http://cr.openjdk.java.net/~mduigou/8004015/1/specdiff/java/util/function/package-summary.html
 
 I've also reformatted the source for the default methods.
 
 Mike
 
 
 On Nov 26 2012, at 18:12 , Mike Duigou wrote:
 
 Hello all;
 
 In the original patch which added the basic lambda functional interfaces, 
 CR#8001634 [1], none of the interfaces extended other interfaces. The reason 
 was primarily that the javac compiler did not, at the time that 8001634 was 
 proposed, support extension methods. The compiler now supports adding of 
 method defaults so this patch improves the functional interfaces by filing 
 in the inheritance hierarchy. 
 
 Adding the parent interfaces and default methods allows each functional 
 interface to be used in more places. It is especially important for the 
 functional interfaces which support primitive types, IntSupplier, 
 IntFunction, IntUnaryOperator, IntBinaryOperator, etc. We expect that 
 eventually standard implementations of these interfaces will be provided for 
 functions like max, min, sum, etc. By extending the reference oriented 
 functional interfaces such as Function, the primitive implementations can be 
 used with the boxed primitive types along with the primitive types for which 
 they are defined.
 
 The patch to add parent interfaces and default methods can be found here:
 
 http://cr.openjdk.java.net/~mduigou/8004015/0/webrev/
 http://cr.openjdk.java.net/~mduigou/8004015/0/specdiff/java/util/function/package-summary.html
 
 Mike
 
 [1] http://hg.openjdk.java.net/jdk8/tl/jdk/rev/c2e80176a697
 


Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037
Oracle Java Engineering 
1 Network Drive 
Burlington, MA 01803
lance.ander...@oracle.com



Re: Request for Review : CR#8004015 : [2nd pass] Add interface extends and defaults for basic functional interfaces

2012-12-05 Thread Mike Duigou

On Dec 4 2012, at 22:10 , David Holmes wrote:

 Hi Mike,
 
 In multiple places:
 
 + * p/xxx ...
 
 Should that be p tag? Is it actually needed? (my javadoc is a bit rusty).

Many of these were added/changed by NetBeans styler. I then added additional 
instances. I have converted all of the p/ - p.

I have also filed a bug against NetBans styler: 
http://netbeans.org/bugzilla/show_bug.cgi?id=223342

 Aside: I don't realise you could {@inheritDoc) as a simple text insertion 
 mechanism.

I only learned of this in the last six months myself. :-)

 Just to be clear, the null-handling statements are intended to be normative 
 and apply to anyone who might provide an implementation of theses classes - 
 right?

Correct. I would prefer that they were not but it seems unavoidable.

Mike

 
 Thanks,
 David
 
 On 5/12/2012 3:47 PM, Mike Duigou wrote:
 Hello all;
 
 I have updated the proposed patch. The changes primarily add class and 
 method documentation regarding handling of null for the primitive 
 specializations.
 
 http://cr.openjdk.java.net/~mduigou/8004015/1/webrev/
 http://cr.openjdk.java.net/~mduigou/8004015/1/specdiff/java/util/function/package-summary.html
 
 I've also reformatted the source for the default methods.
 
 Mike
 
 
 On Nov 26 2012, at 18:12 , Mike Duigou wrote:
 
 Hello all;
 
 In the original patch which added the basic lambda functional interfaces, 
 CR#8001634 [1], none of the interfaces extended other interfaces. The 
 reason was primarily that the javac compiler did not, at the time that 
 8001634 was proposed, support extension methods. The compiler now supports 
 adding of method defaults so this patch improves the functional interfaces 
 by filing in the inheritance hierarchy.
 
 Adding the parent interfaces and default methods allows each functional 
 interface to be used in more places. It is especially important for the 
 functional interfaces which support primitive types, IntSupplier, 
 IntFunction, IntUnaryOperator, IntBinaryOperator, etc. We expect that 
 eventually standard implementations of these interfaces will be provided 
 for functions like max, min, sum, etc. By extending the reference oriented 
 functional interfaces such as Function, the primitive implementations can 
 be used with the boxed primitive types along with the primitive types for 
 which they are defined.
 
 The patch to add parent interfaces and default methods can be found here:
 
 http://cr.openjdk.java.net/~mduigou/8004015/0/webrev/
 http://cr.openjdk.java.net/~mduigou/8004015/0/specdiff/java/util/function/package-summary.html
 
 Mike
 
 [1] http://hg.openjdk.java.net/jdk8/tl/jdk/rev/c2e80176a697