IP Library Granted Patent US 8,881,127
Granted Patent B2
US 8,881,127 · App. 13/159,836 · Granted Nov 4, 2014

Systems and methods to automatically generate classes from API source code

Inventors: Assaf Mizrachi (Nesher, IL); Elad Razy (Haifa, IL); Yinon Avraham (Kibbutz Dalia, IL); Oded Goldsmidt (Karmeil, IL); Sahar Lepa (Kiriat Yam, IL); Yoram Weizman (Kfar Vradim, IL)
Assignee: SAP AG
G06F8/30G06F11/3672G06F8/75G06F11/3624
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,881,127
App. No.
13/159,836
Granted
Nov 4, 2014
Kind
B2
Abstract

According to some embodiments, Application Programming Interface (API) source code, including command design patterns, is determined to be executed as a runtime scenario. Class may then be automatically generated as linkable building blocks in accordance with the API source code and command design patterns. For example, API command classes and associated methods may be dynamically read using reflection, and a building block class associated with each API command class may be generated. Runtime readable embedded metadata may be planted in the building block classes, at least some of the metadata being provided by the reflection. According to some embodiments, a logical sequence of the building blocks classes may be linked in accordance with the runtime scenario.

Claims (39)

1. A computer implemented method, comprising:

determining Application Programming Interface (API) source code to be executed as a runtime scenario, wherein the API source code includes command design patterns; and

automatically generating classes as a series of linkable building blocks in accordance with the API source code and command design patterns wherein an output of a first class is an input to a second class and an output of the second class is an input to a third class, wherein the first class, the second class and the third class are distinct classes, and wherein command design patterns comprise an object oriented object to encapsulate information to later call a method, wherein said automatic generation includes:

dynamically reading API command classes and associated methods using reflection;

generating a building block class associated with each API command class; and

planting runtime readable embedded metadata in the building block classes, at least some of the metadata being provided by the reflection.

2. The method of claim 1 , wherein the runtime readable embedded metadata comprises Java Annotations.

3. The method of claim 1 , further comprising:

linking a logical sequence of the building blocks classes in accordance with the runtime scenario.

4. The method of claim 3 , wherein the automatically generated building block classes are associated with at least one of: (i) an input class, (ii) an output class, or (iii) a command class.

5. The method of claim 4 , wherein a method associated with a building block class corresponds to an input class if the method name starts with “set” or “add.”

6. The method of claim 4 , wherein a method associated with a building block class corresponds to an output class if the method name starts with “get.”

7. The method of claim 3 , wherein at least one building block class is associated with at least one of: (i) a primitive input associated with user input, or (ii) a non-primitive input associated with a dynamic input of data from another building block.

8. The method of claim 7 , wherein primitive inputs are defined by a user via a graphical user interface.

9. The method of claim 3 , wherein an output of one building block class is assigned as in input to another building block class.

10. The method of claim 3 , wherein the logically linked sequence of building blocks classes is reusable for other runtime scenarios.

11. The method of claim 10 , wherein the logically linked sequence of building block classes is stored in a reusable code pool accessed by at least one of: (i) API consumers, (ii) a development team, (iii) a quality assurance team, or (iv) a software customer.

12. The method of claim 3 , wherein the linked logical sequence of building blocks classes is associated with a database storing records, and further wherein at least one building block class is associated with: (i) record retrieval, (ii) record creation, (iii) record modification, or (iv) record deletion.

13. The method of claim 3 , wherein said automatic generation is associated with a software server.

14. The method of claim 13 , wherein the linked logical sequence of building blocks classes is accessed by a user via a device communicating with the software server, the device being associated with at least one of: (i) a personal computer, (ii) a smart phone, or (iii) a web interface.

15. The method of claim 1 , wherein the runtime readable embedded metadata facilitates linking the building blocks into a logical sequence scenario.

16. The method of claim 1 , wherein the runtime readable embedded metadata facilitates linking blocks in a logical sequence in accordance with the runtime scenario.

17. A non-transitory, computer-readable medium storing program code executable by a computer to:

determine Application Programming Interface (API) source code to be executed as a runtime scenario, wherein the API source code includes command design patterns;

automatically generate classes as a series of linkable building blocks in accordance with the API source code and command design patterns wherein an output of a first class is an input to a second class and an output of the second class is an input to a third class, wherein the first class, the second class and the third class are distinct classes, and, wherein command design patterns comprise an object oriented object to encapsulate information to later call a method, wherein said automatically generating includes:

dynamically read API command classes and associated methods using reflection;

generate a building block class associated with each API command class; and

plant runtime readable embedded metadata in the building block classes, at least some of the metadata being provided by the reflection.

18. The medium of claim 17 , further storing instructions executable by the computer to:

link a logical sequence of the building blocks classes in accordance with the runtime scenario.

19. A system, comprising:

a processor;

a non-transitory, computer-readable medium storing program code executable by the processor to:

determine Application Programming Interface (API) source code to be executed as a runtime scenario, wherein the API source code includes command design patterns; and

automatically generate classes as a series of linkable building blocks in accordance with the API source code and command design patterns wherein an output of a first class is an input to a second class and an output of the second class is an input to a third class, wherein the first class, the second class and the third class are distinct classes, and, wherein command design patterns comprise an object oriented object to encapsulate information to later call a method, wherein said automatic generation includes:

dynamically reading API command classes and associated methods using reflection;

generating a building block class associated with each API command class; and

planting runtime readable embedded metadata in the building block classes, at least some of the metadata being provided by the reflection.

20. The system of claim 19 , wherein the runtime readable embedded metadata comprises Java Annotations.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 14, 2011
From: MIZRACHI, ASSAF; RAZY, ELAD; AVRAHAM, YINON; GOLDSMIDT, ODED; LEPA, SAHAR; WEIZMAN, YORAM
To: SAP AG
Reel/Frame 026440/0638 →
Continuity (1)
Related Publication 20120324432A1 · Dec 20, 2012