IP Library Granted Patent US 8,655,857
Granted Patent B1
US 8,655,857 · App. 11/430,428 · Granted Feb 18, 2014

Dynamic construction of java class hierarchy based on metadata

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 8,655,857
App. No.
11/430,428
Granted
Feb 18, 2014
Kind
B1
Abstract

Integrating a new class into a class hierarchy is disclosed. A new class having a place in a class hierarchy is received. Metadata, associated with the new class, that includes the new class's place in the class hierarchy is also received. Hierarchy data associated with a previously compiled class is dynamically modified to reflect the place of the new class in the class hierarchy.

Claims (64)

1. A method of integrating a new class into a class hierarchy, comprising:

receiving a new class having an insertion point within a class hierarchy, wherein the insertion point is associated with a parent class and a child class between which the new class is to be inserted in the class hierarchy;

receiving metadata, associated with the new class, that includes the insertion point of the new class in the class hierarchy; and

using a processor to insert the new class into the class hierarchy at the insertion point without recompiling the child class, including by:

loading hierarchy data, which is associated with a previously compiled class and which does not include the new class in the class hierarchy, as an array;

locating a portion of the loaded array that is associated with identifying the parent class as the parent of the child class; and

generating modified hierarchy data that integrates the new class into the class hierarchy at the insertion point, including by modifying the located portion of the loaded array such that the new class is identified as the parent of the child class and the parent class is no longer identified as the parent of the child class.

2. A method as recited in claim 1 , wherein the class hierarchy comprises a Java class hierarchy.

3. A method as recited in claim 1 , wherein the new class comprises an implementation class configured to provide a content management functionality.

4. A method as recited in claim 1 further including instantiating an object associated with the new class.

5. A method as recited in claim 1 further including obtaining a class loader configured to dynamically modify the hierarchy data associated with the previously compiled class.

6. A method as recited in claim 1 , wherein the new class is associated with a first development entity and the previously compiled class is associated with at least a second development entity.

7. A method as recited in claim 1 , wherein receiving metadata includes obtaining metadata from a repository.

8. A method as recited in claim 1 , wherein the new class is associated with a previously compiled interface.

9. A method as recited in claim 1 , wherein a property of the parent class inherited by the new class includes a process associated with managing content.

10. A method as recited in claim 1 further comprising:

after the new class is inserted into the class hierarchy at the insertion point, receiving a second new class having a second insertion point within the class hierarchy, wherein the second insertion point is associated with a second parent class and a second child class between which the second new class is to be inserted in the class hierarchy; and

using the processor to insert the second new class into the class hierarchy at the second insertion point without recompiling the second child class, including by:

loading the hierarchy data as an array for a second time;

locating a first portion, of the array loaded for the second time, that is associated with identifying the parent class as the parent of the child class;

locating a second portion, of the array loaded for the second time, that is associated with identifying the second parent class as the parent of the second child class; and

generating second modified hierarchy data that integrates the new class and the second new class into the class hierarchy at the insertion point and the second insertion point, respectively, including by:

modifying the first located portion, of the array loaded for the second time, such that the new class is identified as the parent of the child class and the parent class is no longer identified as the parent of the child class; and

modifying the second located portion, of the array loaded for the second time, such that the second new class is identified as the parent of the second child class and the second parent class is no longer identified as the parent of the second child class.

11. A system for integrating a new class into a class hierarchy, comprising:

an interface configured to:

receive a new class having an insertion point within a class hierarchy, wherein the insertion point is associated with a parent class and a child class between which the new class is to be inserted in the class hierarchy; and

receive metadata, associated with the new class, that includes the insertion point of the new class in the class hierarchy; and

a processor configured to insert the new class into the class hierarchy at the insertion point without recompiling the child class, including by:

loading hierarchy data, which is associated with a previously compiled class and which does not include the new class in the class hierarchy, as an array;

locating a portion of the loaded array that is associated with identifying the parent class as the parent of the child class; and

generating modified hierarchy data that integrates the new class into the class hierarchy at the insertion point, including by modifying the located portion of the loaded array such that the new class is identified as the parent of the child class and the parent class is no longer identified as the parent of the child class.

12. A system as recited in claim 11 , wherein the class hierarchy comprises a Java class hierarchy.

13. A system as recited in claim 11 , wherein the new class comprises an implementation class configured to provide a content management functionality.

14. A system as recited in claim 11 , wherein the new class is associated with a first development entity and the previously compiled class is associated with at least a second development entity.

15. A system as recited in claim 11 , wherein a property of the parent class inherited by the new class includes a process associated with managing content.

16. A system as recited in claim 11 , wherein:

the interface is further configured to: after the new class is inserted into the class hierarchy at the insertion point, receive a second new class having a second insertion point within the class hierarchy, wherein the second insertion point is associated with a second parent class and a second child class between which the second new class is to be inserted in the class hierarchy; and

the processor is further configured to insert the second new class into the class hierarchy at the second insertion point without recompiling the second child class, including by:

loading the hierarchy data as an array for a second time;

locating a first portion, of the array loaded for the second time, that is associated with identifying the parent class as the parent of the child class;

locating a second portion, of the array loaded for the second time, that is associated with identifying the second parent class as the parent of the second child class; and

generating second modified hierarchy data that integrates the new class and the second new class into the class hierarchy at the insertion point and the second insertion point, respectively, including by:

modifying the first located portion, of the array loaded for the second time, such that the new class is identified as the parent of the child class and the parent class is no longer identified as the parent of the child class; and

modifying the second located portion, of the array loaded for the second time, such that the second new class is identified as the parent of the second child class and the second parent class is no longer identified as the parent of the second child class.

17. A computer program product for integrating a new class into a class hierarchy, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving a new class having an insertion point within a class hierarchy, wherein the insertion point is associated with a parent class and a child class between which the new class is to be inserted in the class hierarchy;

receiving metadata, associated with the new class, that includes the insertion point of the new class in the class hierarchy; and

inserting the new class into the class hierarchy at the insertion point without recompiling the child class, including by:

loading hierarchy data, which is associated with a previously compiled class and which does not include the new class in the class hierarchy, as an array;

generating modified hierarchy data that integrates the new class into the class hierarchy at the insertion point, including by modifying the located portion of the loaded array such that the new class is identified as the parent of the child class and the parent class is no longer identified as the parent of the child class.

18. A computer program product as recited in claim 17 , wherein the class hierarchy comprises a Java class hierarchy.

19. A computer program product as recited in claim 17 , wherein the new class comprises an implementation class configured to provide a content management functionality.

20. A computer program product as recited in claim 17 , wherein the new class is associated with a first development entity and the previously compiled class is associated with at least a second development entity.

21. A computer program product as recited in claim 17 , wherein a property of the parent class inherited by the new class includes a process associated with managing content.

22. A computer program product as recited in claim 17 further comprising computer instructions for:

after the new class is inserted into the class hierarchy at the insertion point, receiving a second new class having a second insertion point within the class hierarchy, wherein the second insertion point is associated with a second parent class and a second child class between which the second new class is to be inserted in the class hierarchy; and

inserting the second new class into the class hierarchy at the second insertion point without recompiling the second child class, including by:

loading the hierarchy data as an array for a second time;

locating a first portion, of the array loaded for the second time, that is associated with identifying the parent class as the parent of the child class;

locating a second portion, of the array loaded for the second time, that is associated with identifying the second parent class as the parent of the second child class; and

generating second modified hierarchy data that integrates the new class and the second new class into the class hierarchy at the insertion point and the second insertion point, respectively, including by:

modifying the first located portion, of the array loaded for the second time, such that the new class is identified as the parent of the child class and the parent class is no longer identified as the parent of the child class; and

modifying the second located portion, of the array loaded for the second time, such that the second new class is identified as the parent of the second child class and the second parent class is no longer identified as the parent of the second child class.

Assignments (7)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: EMC CORPORATION
To: OPEN TEXT CORPORATION
Reel/Frame 041579/0133 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC CORPORATION
Reel/Frame 041073/0443 →
PATENT RELEASE (REEL:40134/FRAME:0001) Recorded Jan 23, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: EMC CORPORATION, AS GRANTOR
Reel/Frame 041073/0136 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2006
From: OSCHEROV, ALEX; AMIEL, MEIR; SPIVAK, VICTOR; BUCCOLA, DAVID
To: EMC CORPORATION
Reel/Frame 017883/0897 →