IP Library Granted Patent US 7,499,956
Granted Patent B1
US 7,499,956 · App. 11/166,583 · Granted Mar 3, 2009

Annotation processing from source files and class files

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,499,956
App. No.
11/166,583
Granted
Mar 3, 2009
Kind
B1
Abstract

Methods for processing annotations from files are provided. The method initiates with identifying an annotation present in a source file or a class file, and identifying factories available for processing annotations. The method includes determining annotations supported by each of the available factories. Then, one of the available factories is assigned to process the annotation based on the annotation present in the source file or the class file being supported by the one of the available factories. The annotation processing tool directly accesses the class files to process the annotations. The explicitly processed class files may or may not be referenced by source files.

Claims (55)

1. A method for processing annotations present in a file, comprising method operations of:

receiving the file;

identifying an annotation present in the file;

identifying factories available for processing annotations;

determining annotations supported by each of the available factories;

arranging each of the available factories in a determined order such that conflicts between factories having different versions of a processor supporting the annotation present are resolved through the determined order; and

assigning one of the available factories to process the annotation based on the annotation present in the file being supported by the one of the available factories.

2. The method of claim 1 , wherein the file is one of a source file or a class file.

3. The method of claim 1 , wherein the method operation of receiving the file includes,

accepting a name of a class from a command line if the file is a class file.

4. The method of claim 1 , wherein the method operation of receiving the file includes,

obtaining a name of a class from an output of an annotation processor generated by one of the available factories if the file is a class file.

5. The method of claim 1 , wherein the method operation of assigning one of the available factories to process the annotation based on the annotation present in the file being supported by the one of the available factories includes,

matching the annotation present in the file with an annotation supported by one of the available factories.

6. The method of claim 5 , wherein the method operation of matching the annotation present in the file with an annotation supported by one of the available factories includes,

comparing names representing the annotation present in the file with the annotation supported by one of the available factories.

7. The method of claim 1 , further comprising:

repeating each of the method operations for a next annotation of the file.

8. The method of claim 7 , wherein the one of the available factories is recalled for the next annotation when the one of the available factories does not support the next annotation.

9. The method of claim 1 , wherein the method operation of identifying factories available for processing annotations includes, arranging the available factories in a determined order.

10. A computer readable storage medium having program instructions for providing annotation processors, comprising:

program instructions for identifying an annotation present in a file;

program instructions for identifying factories available for processing annotations;

program instructions for determining annotations supported by each of the available factories;

program instructions for arranging each of the available factories in a determined order such that conflicts between factories having different versions of a processor supporting the annotation present are resolved through the determined order; and

program instructions for assigning one of the available factories to process the annotation based on the annotation present in the file being supported by the one of the available factories.

11. The computer readable storage medium of claim 10 , wherein the file is one of a source file or a class file.

12. The computer readable storage medium of claim 10 , wherein the program instructions for assigning one of the available factories to process the annotation based on the annotation present in the file being supported by the one of the available factories includes,

program instructions for matching the annotation present in the file with an annotation supported by one of the available factories.

13. The computer readable storage medium of claim 12 , wherein the program instructions for matching the annotation present in the file with an annotation supported by one of the available factories includes,

program instructions for comparing names representing the annotation present in the file with the annotation supported by one of the available factories.

14. The computer readable storage medium of claim 10 , further comprising:

program instructions for repeating each of the method operations for a next annotation of the file.

15. The computer readable storage medium of claim 14 , wherein the one of the available factories is recalled for the next annotation when the one of the available factories does not support the next annotation.

16. The computer readable storage medium of claim 10 , wherein the program instructions for identifying factories available for processing annotations includes,

program instructions for arranging the available factories in a determined order.

17. An annotation processing tool for processing annotations present in a file, the annotation processing tool discovering annotation processors according to method operations comprising:

receiving the file;

analyzing the file to identify an annotation present in the file;

searching for available factories;

extracting supported annotations for each of the available factories;

arranging each of the available factories in a determined order such that conflicts between factories having different versions of a processor supporting the annotation present are resolved through the determined order; and

matching the annotation present in the file with one of the factories, wherein the one of the factories supports the annotation.

18. The annotation processing tool of claim 17 , where the file is one of a source file or a class file.

19. The annotation processing tool of claim 17 , wherein one of the factories generates an annotation processor that supports a corresponding supported annotation.

20. The annotation processing tool of claim 17 , further comprising:

invoking an annotation processor supporting the annotation;

determining if a next annotation is present in the file;

if the next annotation is present, then the method includes,

matching the next annotation with one of the factories; and

invoking the next annotation processor.

21. The annotation processing tool of claim 17 , wherein the receiving of the file includes,

accepting a name of a class from a command line if the file is a class file.

22. The annotation processing tool of claim 17 , wherein the receiving of the file includes,

accepting a name of a class from an output of an annotation processor generated by one of the available factories if the file is a class file.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037304/0137 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2005
From: DARCY, JOSEPH D.; SELIGMAN, SCOTT
To: SUN MICROSYSTEMS, INC.
Reel/Frame 016732/0804 →