The present disclosure relates to traversing and processing objects in an object graph. The method and system evaluate an object in the graph to identify one or more objects referenced by the first object. The second object is evaluated to determine whether it is present in a list or previously visited objects, and when it is not, the second object is added to a container of objects and the second object is added to the list of previously visited objects. The first object is processed and then the next object in the container is evaluated.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for processing objects while traversing an object graph, comprising: receiving an instruction to perform a processing operation comprising a processing operation target; traversing an object graph with a traversal agent, wherein the traversing comprises: receiving a first object of the object graph; receiving a data field of the first object, the data field comprising a reference list that identifies one or more objects referenced by the first object, the reference list comprising a reference to a second object of the object graph; adding the second object to a working graph container comprising the first object; adding a marker object to the working graph container after a last one of the one or more objects referenced by the reference list have been added to the working graph; adding the second object to a visited object registry; and determining that there are no more objects of the reference listing that can be added to the visited object registry; determining with an object processing agent that the first object matches the processing operation target; transferring control of the first object from the traversal agent to a visitor agent of the object processing agent; performing with a visitor agent, a first processing action corresponding to the processing operation, using a data element of the first object; transferring control of the first object to the traversal agent when the first processing action is complete; and traversing, using the traversal agent, to the second object.
2. The method of claim 1 , further comprising: evaluating the second object with the traversal agent, to identify a third object of the object graph referenced by the second object; determining with the object processing agent that the second object matches a second processing operation target; and performing with the visitor agent, a second processing action using a data element of the second object.
3. The method of claim 2 , wherein the processing operation comprises the visitor agent applying a design pattern to the data element of the first object.
4. The method of claim 1 , wherein the traversal agent halts further traversal of the object graph until an instruction to execute a second processing operation is received.
5. The method of claim 2 , wherein while evaluating the second object with the traversal agent, controlling the first object by the visitor agent.
6. The method of claim 1 , wherein the traversal agent pauses until an instruction to perform an additional processing operation is received.
7. The method of claim 5 , wherein evaluation of the second object includes obtaining properties of the second object using reflection.
8. A system, comprising: a processor; and memory storing instructions which, when executed on the processor, operate to perform a method for processing objects while traversing an object graph, the method comprising: receiving an instruction to perform a processing operation comprising a processing operation target; traversing an object with a traversal agent, wherein the traversing comprises: receiving a first object of the object graph; receiving a data field of the first object, the data field comprising a reference list that identifies one or more objects referenced by the first object, the reference list comprising a reference to a second object of the object graph; adding the second object to a working queue container comprising the first object; adding a marker object to the working queue container after a last one of the one or more objects referenced by the reference listing have been added to the working queue; adding the second object to a visited object registry; and determining that there are no more objects of the reference listing that can be added to the visited object registry; determining with an object processing agent that the first object matches the processing operation target; transferring control of the first object from the traversal agent to a visitor agent of the object processing agent; performing with the visitor agent, a first processing action corresponding to the processing operation, using a data element of the first object; transferring control of the first object to the traversal agent when the first processing action is complete; and traversing, using the traversal agent, to the second object.
9. The system of claim 8 , the method further comprising: evaluating the second object with the traversal agent, to identify a third object of the object graph referenced by the second object; determining with the object processing agent that the second object matches a second processing operation target; and performing with the visitor agent, a second processing action using a data element of the second object.
10. The system of claim 9 , wherein the processing operation comprises the visitor agent applying a design pattern to the data element of the first object.
11. The system of claim 8 , wherein the traversal halts further traversal of the object graph until an instruction to perform a second processing operation is received.
12. The system of claim 8 , wherein the traversal agent evaluates the second object while the visitor agent controls the first object.
13. The system of claim 8 , wherein the traversal agent pauses until an instruction to perform an additional processing operation is received.
14. The system of claim 9 , wherein evaluation of the first object and the second object includes obtaining properties of the first object and second object using reflection.
15. A non-transitory computer-readable medium comprising instructions which, when executed by one or more processors, performs a method for processing objects while traversing an object graph, the method comprising: receiving an instruction to perform a processing operation comprising a processing operation target; traversing an object graph with a traversal agent, wherein the traversing comprises: receiving a first object of the object graph; receiving a data field of the first object, the data field comprising a reference list that identifies one or more objects referenced by the first object, the reference list comprising a reference to a second object of the object graph; adding the second object to a working queue container comprising the first object; adding a marker object to the working queue container after a last one of the one or more objects referenced by the reference listing have been added to the working queue; adding the second object to a visited object registry; determining that there are no more objects of the reference listing that can be added to the visited object registry; and determining with an object processing agent that the first object matches the processing operation target; transferring control of the first object from the traversal agent to a visitor agent of the object processing agent; performing with the visitor agent, a first processing action corresponding to the processing operation, using a data element of the first object; transferring control of the first object to the traversal agent when the first processing action is complete; and traversing, using the traversal agent, to the second object.
16. The non-transitory computer-readable medium of claim 15 , the method further comprising: evaluating the second object with the traversal agent, to identify a third object of the object graph referenced by the second object; determining with the object processing agent that the second object matches a second processing operation target; and performing with the visitor agent, a second processing action using a data element of the second object.
17. The non-transitory computer-readable medium of claim 16 , wherein the processing operation comprises the visitor agent applying a design pattern to the data element of the first object.
18. The non-transitory computer-readable medium of claim 15 , wherein the traversal halts further traversal of the object graph until an instruction to perform a second processing operation is received.
19. The non-transitory computer-readable medium of claim 17 , wherein the traversal agent evaluates the second object while the visitor agent controls the first object.
20. The non-transitory computer-readable medium of claim 15 , wherein the traversal agent pauses until instructions to perform an additional processing operation is received.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
October 2, 2019
January 12, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.