This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 76787 - Review of a rewrite of the Java API to use generic types.
Summary: Review of a rewrite of the Java API to use generic types.
Status: RESOLVED FIXED
Alias: None
Product: java
Classification: Unclassified
Component: Classpath (show other bugs)
Version: 5.x
Hardware: All All
: P3 blocker (vote)
Assignee: apireviews
URL:
Keywords: API, API_REVIEW_FAST
Depends on:
Blocks:
 
Reported: 2006-05-24 09:59 UTC by Tomas Zezula
Modified: 2006-10-23 16:40 UTC (History)
0 users

See Also:
Issue Type: TASK
Exception Reporter:


Attachments
Diff file (44.62 KB, patch)
2006-05-24 10:00 UTC, Tomas Zezula
Details | Diff
Javadoc (217.41 KB, application/x-compressed)
2006-05-24 10:01 UTC, Tomas Zezula
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tomas Zezula 2006-05-24 09:59:09 UTC
The ClassPath API/SPI and GlobalPathRegistry was changed to use generic types.
Comment 1 Tomas Zezula 2006-05-24 10:00:24 UTC
Created attachment 30578 [details]
Diff file
Comment 2 Tomas Zezula 2006-05-24 10:01:07 UTC
Created attachment 30579 [details]
Javadoc
Comment 3 Jesse Glick 2006-05-24 17:45:49 UTC
Cool.


BTW just

this.entriesCache = Collections.emptyList();

ought to suffice AFAIK.


Can convert occurrences of

for (int i=0; i <roots.length; i++) {


findAllResources could return List<FileObject> I think. On the other hand it is
expected to be read-only so List<? extends FileObject> is also acceptable, just
a bit more verbose to type if you are assigning it to a var. Ditto
getSourceRoots. No strong opinion - Yarda?

(ClassPathImplementation.getResources is correct to return List<? extends
PathResourceImplementation> since a subclass might in fact have constructed a
list of a more specific type.)
Comment 4 Jaroslav Tulach 2006-05-25 15:02:11 UTC
The filesystems API works with <? extends FileObject> as in 
FileObject.getChildren(boolean), that is more useful for the implementor's as 
they usually have List<AbstractFolder> and there is no need to convert it. 
However in this API there is no implementor, so List<FileObject> would be 
enough and easier to type. Still I like the "immutability" of <? extends 
FileObject>, it is longer, but with a good IDE support it should not be big 
problem.
Comment 5 Tomas Zezula 2006-05-26 09:31:25 UTC
Checking in nbproject/project.properties;
/cvs/java/api/nbproject/project.properties,v  <--  project.properties
new revision: 1.10; previous revision: 1.9
done
Checking in src/org/netbeans/api/java/classpath/ClassPath.java;
/cvs/java/api/src/org/netbeans/api/java/classpath/ClassPath.java,v  <-- 
ClassPath.java
new revision: 1.35; previous revision: 1.34
done
Checking in src/org/netbeans/api/java/classpath/GlobalPathRegistry.java;
/cvs/java/api/src/org/netbeans/api/java/classpath/GlobalPathRegistry.java,v  <--
 GlobalPathRegistry.java
new revision: 1.16; previous revision: 1.15
done
Checking in src/org/netbeans/api/java/classpath/GlobalPathRegistryEvent.java;
/cvs/java/api/src/org/netbeans/api/java/classpath/GlobalPathRegistryEvent.java,v
 <--  GlobalPathRegistryEvent.java
new revision: 1.2; previous revision: 1.1
done
Checking in src/org/netbeans/api/java/queries/AccessibilityQuery.java;
/cvs/java/api/src/org/netbeans/api/java/queries/AccessibilityQuery.java,v  <-- 
AccessibilityQuery.java
new revision: 1.4; previous revision: 1.3
done
Checking in src/org/netbeans/api/java/queries/JavadocForBinaryQuery.java;
/cvs/java/api/src/org/netbeans/api/java/queries/JavadocForBinaryQuery.java,v 
<--  JavadocForBinaryQuery.java
new revision: 1.8; previous revision: 1.7
done
Checking in src/org/netbeans/api/java/queries/SourceForBinaryQuery.java;
/cvs/java/api/src/org/netbeans/api/java/queries/SourceForBinaryQuery.java,v  <--
 SourceForBinaryQuery.java
new revision: 1.9; previous revision: 1.8
done
Checking in src/org/netbeans/api/java/queries/SourceLevelQuery.java;
/cvs/java/api/src/org/netbeans/api/java/queries/SourceLevelQuery.java,v  <-- 
SourceLevelQuery.java
new revision: 1.4; previous revision: 1.3
done
Checking in src/org/netbeans/api/java/queries/UnitTestForSourceQuery.java;
/cvs/java/api/src/org/netbeans/api/java/queries/UnitTestForSourceQuery.java,v 
<--  UnitTestForSourceQuery.java
new revision: 1.8; previous revision: 1.7
done
Checking in
src/org/netbeans/modules/java/classpath/ProxyClassPathImplementation.java;
/cvs/java/api/src/org/netbeans/modules/java/classpath/ProxyClassPathImplementation.java,v
 <--  ProxyClassPathImplementation.java
new revision: 1.7; previous revision: 1.6
done
Checking in
src/org/netbeans/modules/java/classpath/SimpleClassPathImplementation.java;
/cvs/java/api/src/org/netbeans/modules/java/classpath/SimpleClassPathImplementation.java,v
 <--  SimpleClassPathImplementation.java
new revision: 1.4; previous revision: 1.3
done
Checking in src/org/netbeans/spi/java/classpath/ClassPathFactory.java;
/cvs/java/api/src/org/netbeans/spi/java/classpath/ClassPathFactory.java,v  <-- 
ClassPathFactory.java
new revision: 1.5; previous revision: 1.4
done
Checking in src/org/netbeans/spi/java/classpath/ClassPathImplementation.java;
/cvs/java/api/src/org/netbeans/spi/java/classpath/ClassPathImplementation.java,v
 <--  ClassPathImplementation.java
new revision: 1.4; previous revision: 1.3
done
Checking in src/org/netbeans/spi/java/classpath/support/ClassPathSupport.java;
/cvs/java/api/src/org/netbeans/spi/java/classpath/support/ClassPathSupport.java,v
 <--  ClassPathSupport.java
new revision: 1.9; previous revision: 1.8
done
Checking in
src/org/netbeans/spi/java/classpath/support/CompositePathResourceBase.java;
/cvs/java/api/src/org/netbeans/spi/java/classpath/support/CompositePathResourceBase.java,v
 <--  CompositePathResourceBase.java
new revision: 1.3; previous revision: 1.2
done
Checking in src/org/netbeans/spi/java/classpath/support/PathResourceBase.java;
/cvs/java/api/src/org/netbeans/spi/java/classpath/support/PathResourceBase.java,v
 <--  PathResourceBase.java
new revision: 1.3; previous revision: 1.2
done
Checking in test/unit/src/org/netbeans/api/java/classpath/ClassPathTest.java;
/cvs/java/api/test/unit/src/org/netbeans/api/java/classpath/ClassPathTest.java,v
 <--  ClassPathTest.java
new revision: 1.9; previous revision: 1.8
done
Checking in
test/unit/src/org/netbeans/api/java/classpath/GlobalPathRegistryTest.java;
/cvs/java/api/test/unit/src/org/netbeans/api/java/classpath/GlobalPathRegistryTest.java,v
 <--  GlobalPathRegistryTest.java
new revision: 1.8; previous revision: 1.7
done