Browse Prior Art Database

Maintaining consistency between model and source code with code generator

IP.com Disclosure Number: IPCOM000191307D
Original Publication Date: 2009-Dec-29
Included in the Prior Art Database: 2009-Dec-29
Document File: 1 page(s) / 41K

Publishing Venue

IBM

Abstract

Disclosed is a mechanism for keeping consistency between model files and their generated code. The mechanism detects the changes of source code written in Java* programming language at compilation time by embedding hash code calculated by the body of a method in the code and using the annotation technology of Java*.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 65% of the total text.

Page 1 of 1

Maintaining consistency between model and source code with code generator

Figure 1 shows the mechanism of this disclosed.

a) Embedding hash code.

Annotation

HashCode A

Model File

HashCode A

public class Employee { @Generated (value=HashCode A) public void methodA {

Generated Code; ・・・
}

calculates

Method

Generated Code

Source Code Image

Generator

Compilation Error

notifies

b) Comparing hash codes.

Compiler

recognizes calls

public class Employee { @Generated (value=HashCode A) public void methodA {

Changed Code; ・・・
}

Developer

Validation Program

compares

HashCode B

Annotation

HashCode A

Method

Changed Code

Changes

calculates

Figure 1 Mechanism of detecting method changes.

The code generator can detect the changes along the following steps, embedding and comparing phase.

a) Embedding hash code.

1. The generator creates a source code image from a model file.
2. The generator calculates a hash code for each method from a method of the source code image. Though there is no constraint which algorithm should be used to calculate the hash code, it must have enough length to identify the changes.
3. The generator embeds the hash code into the source code image in form of annotation for each method.
4. The generator generates source code from the image.

b) Comparing hash codes.

1. Compiler begins to compile the generated source code.
2. Compiler r...