Implementation for an object oriented run-time extensible item
First Claim
1. An apparatus comprising:
- (1) at least one processor;
(2) a memory coupled to the at least one processor;
(3) an object oriented run-time extensible item class residing in the memory, the extensible item class including;
at least one extension class;
at least one object oriented method that may be invoked by a client;
(4) a separate method table object residing in the memory for each extension class that is shared among instances of the extension class, and a separate method table object residing in the memory for each extensible item class that is shared among instances of the extensible item class, each method table object correlating at least one method name to a corresponding method node object;
(5) a method repository object residing in the memory, the method repository object including the method table object for each extension class and for the extensible item class.
1 Assignment
0 Petitions
Accused Products
Abstract
In an object oriented computer system, one or more run-time extensible items are defined that may be dynamically reconfigured as required to support different interfaces at run-time. The behavior associated with these interfaces is supported by one or more extensions owned by the extensible item. Each extension class has a corresponding method table that is shared among instances of the extension class and that correlates the methods defined on the extension class to method node objects that carry out the method. A method repository is a static object that is created at run-time to correlate extensions to their corresponding method tables. When a client invokes an invokeMethod( ) method on an extensible item, specifying the name of the method to be invoked, the extensible item cycles through its extensions, from newest to oldest, looking for an extension that supports the named method. Each extension examines the method repository to see if the method repository contains a method table corresponding to the extension class. If not, a method table corresponding to the extension class is created and placed in the method repository. When an extension is found that supports the named method, a method node that corresponds to the named method is returned. The method node then invokes the named method on the extension.
-
Citations
21 Claims
-
1. An apparatus comprising:
-
(1) at least one processor;
(2) a memory coupled to the at least one processor;
(3) an object oriented run-time extensible item class residing in the memory, the extensible item class including;
at least one extension class;
at least one object oriented method that may be invoked by a client;
(4) a separate method table object residing in the memory for each extension class that is shared among instances of the extension class, and a separate method table object residing in the memory for each extensible item class that is shared among instances of the extensible item class, each method table object correlating at least one method name to a corresponding method node object;
(5) a method repository object residing in the memory, the method repository object including the method table object for each extension class and for the extensible item class. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus comprising:
-
(1) at least one processor;
(2) a memory coupled to the at least one processor;
(3) a persistent object oriented run-time extensible item class residing in the memory, the extensible item class including;
at least one persistent extension class;
at least one object oriented method that may be invoked by a client;
(4) a separate transient method table object residing in the memory for each extension class that is shared among instances of the extension class, and a separate transient method table object residing in the memory for each extensible item class that is shared among instances of the extensible item class, each method table object correlating at least one method name to a corresponding method node object, each method table object being created the first time the method table object is needed;
(5) a transient method repository object that includes the method table object for each extension class and for the extensible item class, the method repository object comprising a key-value pair for the extensible item class and for each extension class, the key comprising a unique identifier for the extensible item class and for each extension class, the value comprising a method table that contains methods for the class corresponding to the unique identifier in the key-value pair; and
(6) a plurality of object oriented methods in the method repository object, each method table object, and each method node object that collectively delegate the object oriented method on the extensible item class that is invoked by a client to a corresponding method node object, the method node object invoking an appropriate method on an instance of one of the extensible item class and the at least one extension class.
-
-
8. An apparatus comprising:
-
(1) at least one processor;
(2) a memory coupled to the at least one processor;
(3) an object oriented run-time extensible item class residing in the memory, the extensible item class including;
at least one extension class;
at least one object oriented method that may be invoked by a client;
(4) a separate method table object residing in the memory for each extension class that is shared among instances of the extension class, and a separate method table object residing in the memory for each extensible item class that is shared among instances of the extensible item class, each method table object correlating at least one method name to a corresponding method node object;
(5) a method repository object residing in the memory, the method repository object including the method table object for each extension class and for the extensible item class; and
(6) means for delegating the object oriented method on the extensible item class that is invoked by a client to a corresponding method node object, the method node object invoking an appropriate method on an instance of one of the extensible item class and the at least one extension class.
-
-
9. A method for responding to the invocation of an object oriented method on a run-time extensible item class, the run-time extensible item class including at least one extension class, the method comprising the steps of:
-
instantiating at run-time a method repository that includes a method table for each extension class and a method table for the extensible item class, the method repository comprising a key-value pair for the extensible item class and for each extension class, the key comprising a unique identifier for the extensible item class and for each extension class, the value comprising a method table that contains methods for the class corresponding to the unique identifier in the key-value pair;
identifying which method table in the method repository has a method node corresponding to the invoked method; and
the method node invoking an object oriented method on an instance of one of the extensible item class and the at least one the extension class. - View Dependent Claims (10)
(A) selecting an existing instance of a selected extension class;
(B) an instance of the extensible item class passing the method name to the selected extension instance;
(C) the selected extension instance invoking an object oriented method on the method repository to determine if a method table in the method repository corresponds to the selected extension class;
(D) if the method repository does not have a method table corresponding to the selected extension class, creating the corresponding method table and storing the method table in the method repository;
(E) if the method repository has a method table corresponding to the selected extension class and the corresponding method table does not have the method node corresponding to the invoked method, selecting the next extension instance and repeating steps (B) through (F) for the newly selected extension instance;
(F) if the method repository has a method table corresponding to the selected extension class and the corresponding method table has the method node corresponding to the invoked method, identifying the method node corresponding to the invoked method.
-
-
11. A program product comprising:
-
(A) an object oriented run-time extensible item class that defines;
an object oriented extension class;
at least one object oriented method that may be invoked by a client;
(B) a method table class that defines a method table for each instance of the extension class and the extensible item class, each method table correlating at least one method name to a corresponding method node;
(C) a method repository class that correlates an instance of the method table class with each instance of the extension class and the extensible item class; and
(D) signal bearing media bearing the extensible item class, the method table class, and the method repository class. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A program product comprising:
-
(1) a persistent object oriented run-time extensible item class, the extensible item class including;
at least one persistent extension class;
at least one object oriented method that may be invoked by a client;
(2) a separate transient method table object residing in the memory for each extension class that is shared among instances of the extension class, and a separate method table object residing in the memory for each extensible item class that is shared among instances of the extensible item class, each method table object being created the first time the method table object is needed;
(3) a transient method repository object that includes the method table object for each extension class and for the extensible item class, the method repository object comprising a key-value pair for the extensible item class and for each extension class, the key comprising a unique identifier for the extensible item class and for each extension class, the value comprising a method table that contains methods for the class corresponding to the unique identifier in the key-value pair; and
(4) a plurality of object oriented methods in the method repository object, each method table object, and each method node object that collectively delegate the object oriented method on the extensible item class that is invoked by a client to a corresponding method node object, the method node object invoking an appropriate method defined on one of the extensible item class and the at least one extension class; and
(5) signal bearing media bearing the at least one extensible item class, the method table object, the method repository object, and the plurality of object oriented methods. - View Dependent Claims (20, 21)
-
Specification