Patents by Inventor Joshua J. Bloch

Joshua J. Bloch has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7263687
    Abstract: One embodiment of the present invention provides a system that facilitates use of an object-oriented enumerated type within a computer program. During operation, the system receives source code for the computer program, wherein the source code contains a declaration for an enumerated type. This declaration specifies a fixed number of enumeration constants that comprise the enumerated type. Next, the system defines the enumerated type using a class defined within an object-oriented programming language, wherein the class includes a constant for each enumeration constant specified in the declaration. If the declaration additionally contains one or more method declarations, these methods are present on the defined class.
    Type: Grant
    Filed: September 9, 2002
    Date of Patent: August 28, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Joshua J. Bloch, Neal M. Gafter
  • Patent number: 7171657
    Abstract: One embodiment of the present invention provides a system that facilitates importing static members of a class. During operation, the system examines code associated with a compilation unit to locate a static import declaration that identifies one or more static members of the class to import. Upon finding such a static import declaration, the system records the static import declaration in a symbol table used to compile the compilation unit. This allows the names for the one or more static members of the class to appear within the compilation unit without being prefixed with a name for the class.
    Type: Grant
    Filed: September 9, 2002
    Date of Patent: January 30, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Joshua J. Bloch, Guy L. Steele
  • Patent number: 7013458
    Abstract: One embodiment of the present invention provides a system for associating metadata attributes with program elements. During operation, the system receives source code containing syntactic elements that specify metadata attributes for program elements, wherein the metadata attributes do not affect program execution. The system then parses the source code to obtain the metadata attributes. Next, the system associates the metadata attributes with corresponding program elements and determines values associated with the metadata attributes. Finally, the system incorporates the metadata attributes, including identifiers for the associated values and the associated program elements, into object code for the program, thereby allowing the metadata attributes to be accessed from the object code. Another embodiment of the present invention provides a system for accessing metadata attributes for program elements from object code through an application programming interface (API).
    Type: Grant
    Filed: September 9, 2002
    Date of Patent: March 14, 2006
    Assignee: Sun Microsystems, Inc.
    Inventors: Joshua J. Bloch, Graham Hamilton
  • Patent number: 6820261
    Abstract: In a threading mechanism, a system and method for providing automatic value inheritance when a parent thread creates a child thread. Upon thread creation, the system iterates over all of the inheritable thread-local values associated with a parent thread and initializes a child's values of these inheritable thread-local values, based on an appropriate child value method. The child's values may be a copy of the parent's values, or a predetermined function of the parent's values.
    Type: Grant
    Filed: July 14, 1999
    Date of Patent: November 16, 2004
    Assignee: Sun Microsystems, Inc.
    Inventor: Joshua J. Bloch
  • Publication number: 20040049764
    Abstract: One embodiment of the present invention provides a system that facilitates use of an object-oriented enumerated type within a computer program. During operation, the system receives source code for the computer program, wherein the source code contains a declaration for an enumerated type. This declaration specifies a fixed number of enumeration constants that comprise the enumerated type. Next, the system defines the enumerated type using a class defined within an object-oriented programming language, wherein the class includes a constant for each enumeration constant specified in the declaration. If the declaration additionally contains one or more method declarations, these methods are present on the defined class.
    Type: Application
    Filed: September 9, 2002
    Publication date: March 11, 2004
    Inventors: Joshua J. Bloch, Neal M. Gafter
  • Publication number: 20040049766
    Abstract: One embodiment of the present invention provides a system for associating metadata attributes with program elements. During operation, the system receives source code containing syntactic elements that specify metadata attributes for program elements, wherein the metadata attributes do not affect program execution. The system then parses the source code to obtain the metadata attributes. Next, the system associates the metadata attributes with corresponding program elements and determines values associated with the metadata attributes. Finally, the system incorporates the metadata attributes, including identifiers for the associated values and the associated program elements, into object code for the program, thereby allowing the metadata attributes to be accessed from the object code. Another embodiment of the present invention provides a system for accessing metadata attributes for program elements from object code through an application programming interface (API).
    Type: Application
    Filed: September 9, 2002
    Publication date: March 11, 2004
    Inventors: Joshua J. Bloch, Graham Hamilton
  • Publication number: 20040049763
    Abstract: One embodiment of the present invention provides a system that facilitates importing static members of a class. During operation, the system examines code associated with a compilation unit to locate a static import declaration that identifies one or more static members of the class to import. Upon finding such a static import declaration, the system records the static import declaration in a symbol table used to compile the compilation unit. This allows the names for the one or more static members of the class to appear within the compilation unit without being prefixed with a name for the class.
    Type: Application
    Filed: September 9, 2002
    Publication date: March 11, 2004
    Inventors: Joshua J. Bloch, Guy L. Steele