IP Library › Granted Patent US 9,547,482
Granted Patent B2
US 9,547,482 · App. 14/810,682 · Granted Jan 17, 2017

Declarative design-time experience platform for code generation

Inventors: Guy Soffer (Ra'anana, IL); Guy Blank (Tel Aviv, IL); Maxim Drabkin (Haifa, IL)
Assignee: SAP Portals Israel Ltd.
G06F8/38G06F8/36G06F8/20G06F8/70
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 9,547,482
App. No.
14/810,682
Granted
Jan 17, 2017
Kind
B2
Abstract

The disclosure generally describes methods, software, and systems, including a method for using templates to generate application code. A selection of a template is received from an application development user interface. The template includes a declarative model file describing user interface aspects for declaring customization of applications in an implementation-independent, consistent way, independent of the selected template and a target computer. A metadata file includes information describing the template. Plural template files provide specific syntax suitable for code generation. The template is provided in the user interface using at least development environment plugins. Customization inputs associated with the template are received from the user interface. The customization inputs provide parameters used in the code-generation plugins. Application code is automatically generated for a target computer based on the selected template and the received customization inputs. The generated application code includes at least the code generated from the code-generation plugins.

Claims (51)

1. A method comprising:

receiving, from an application development user interface including one or more code-generation plugins, a selection of a template from plural templates, the template including:

a declarative model file describing user interface aspects for declaring customization of applications in an implementation-independent, consistent way, independent of the selected template and a target computer for generated code;

a metadata file including information describing the template;

one or more template files providing specific syntax suitable for code generation; and

custom code hooks for user customization of the template, including containers for holding custom code provided by the user and triggers for executing the custom code when the application code is executed according to timing specified by the hooks;

providing the template in the application development user interface;

receiving, from the application development user interface, customization inputs associated with the template, the customization inputs providing parameters used in the code-generation plugins; and

automatically generating application code for the target computer based on the selected template and the received customization inputs, the generated application code including at least the code generated from the code-generation plugins.

2. The method of claim 1 , wherein the template is consistent in use with other templates of the plural templates and provides a consistent coding experience for the user.

3. The method of claim 1 , wherein the application development user interface further includes development environment plugins.

4. The method of claim 3 , wherein providing the template in the application development user interface comprises providing the template in the application development user interface using at least the development environment plugins, wherein the development environment plugins include multiple plugins for multiple interactive development environments (IDEs).

5. The method of claim 1 , wherein the metadata further includes a template identification (ID), a template name, a version, a description of what the template provides, and a category associated with the template.

6. The method of claim 1 , wherein the declarative model file includes definitions for field types selected from a group comprising a text box, a combo box, a drop-down, a check box, and a radio button.

7. The method of claim 1 , further comprising:

receiving, from a template development user interface, template information associated with the plural templates; and

storing the template information for use by the application development user interface.

8. The method of claim 1 , wherein fields in the template are mandatory or required.

9. The method of claim 1 , wherein fields in the template have default values.

10. A system comprising:

memory storing:

plural templates comprising information from which application code can be customized using parameter values provided by a software developer for a specific template;

software components comprising the application code generated using the templates;

plugins used for generating a user interface and for generating code based on the parameter values provided by the software developer; and

an application for:

receiving, from an application development user interface including one or more code-generation plugins, a selection of a template from plural templates, the template including:

a declarative model file describing user interface aspects for declaring customization of applications in an implementation-independent, consistent way, independent of the selected template and a target computer for generated code;

a metadata file including information describing the template;

one or more template files providing specific syntax suitable for code generation; and

custom code hooks for user customization of the template, including containers for holding custom code provided by the user and triggers for executing the custom code when the application code is executed according to timing specified by the hooks;

providing the template in the application development user interface;

receiving, from the application development user interface, customization inputs associated with the template, the customization inputs providing parameters used in the code-generation plugins; and

automatically generating application code for the target computer based on the selected template and the received customization inputs, the generated application code including at least the code generated from the code-generation plugins.

11. The system of claim 10 , wherein the template is consistent in use with other templates of the plural templates and provides a consistent coding experience for the user.

12. The system of claim 10 , wherein the application development user interface further includes development environment plugins.

13. The system of claim 12 , wherein providing the template in the application development user interface comprises providing the template in the application development user interface using at least the development environment plugins, wherein the development environment plugins include multiple plugins for multiple interactive development environments (IDEs).

14. The system of claim 10 , wherein the metadata further includes a template identification (ID), a template name, a version, a description of what the template provides, and a category associated with the template.

15. The system of claim 10 , wherein the declarative model file includes definitions for field types selected from a group comprising a text box, a combo box, a drop-down, a check box, and a radio button.

16. A non-transitory computer-readable media encoded with a computer program, the program comprising instructions that when executed by one or more computers cause the one or more computers to perform operations comprising:

receiving, from an application development user interface including one or more code-generation plugins, a selection of a template from plural templates, the template including:

a declarative model file describing user interface aspects for declaring customization of applications in an implementation-independent, consistent way, independent of the selected template and a target computer for generated code;

a metadata file including information describing the template;

one or more template files providing specific syntax suitable for code generation; and

custom code hooks for user customization of the template, including containers for holding custom code provided by the user and triggers for executing the custom code when the application code is executed according to timing specified by the hooks;

providing the template in the application development user interface;

receiving, from the application development user interface, customization inputs associated with the template, the customization inputs providing parameters used in the code-generation plugins; and

automatically generating application code for the target computer based on the selected template and the received customization inputs, the generated application code including at least the code generated from the code-generation plugins.

17. The non-transitory computer-readable media of claim 16 , wherein the template is consistent in use with other templates of the plural templates and provides a consistent coding experience for the user.

18. The non-transitory computer-readable media of claim 16 , wherein the application development user interface further includes development environment plugins.

19. The non-transitory computer-readable media of claim 18 , wherein providing the template in the application development user interface comprises providing the template in the application development user interface using at least the development environment plugins, wherein the development environment plugins include multiple plugins for multiple interactive development environments (IDEs).

20. The non-transitory computer-readable media of claim 16 , wherein the metadata further includes a template RIM identification (ID), a template name, a version, a description of what the template provides, and a category associated with the template.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 28, 2015
From: SOFFER, GUY; BLANK, GUY; DRABKIN, MAXIM
To: SAP PORTALS ISRAEL LTD
Reel/Frame 036194/0170 →
Continuity (2)
Provisional Application 62169741 · Jun 2, 2015
Related Publication 20160357526A1 · Dec 8, 2016