2016-05-24 16:57:54 |
Shuai Li <shuai.li@cea.fr> |
languages/java/org.eclipse.papyrus.designer.languages.java.codegen.ui/src/org/eclipse/papyrus/designer/languages/java/codegen/ui/handlers/GenerateCodeHandler.java v ad5c6ab3666d64b6c3390a59c0c18b52edf626c1 languages/java/org.eclipse.papyrus.designer.languages.java.codegen/META-INF/MANIFEST.MF v ad5c6ab3666d64b6c3390a59c0c18b52edf626c1 languages/java/org.eclipse.papyrus.designer.languages.java.codegen/src/org/eclipse/papyrus/designer/languages/java/codegen/transformation/JavaMerger.java v ad5c6ab3666d64b6c3390a59c0c18b52edf626c1 languages/java/org.eclipse.papyrus.designer.languages.java.codegen/src/org/eclipse/papyrus/designer/languages/java/codegen/transformation/JavaModelElementsCreator.java v ad5c6ab3666d64b6c3390a59c0c18b52edf626c1 languages/java/org.eclipse.papyrus.designer.languages.java.codegen/src/org/eclipse/papyrus/designer/languages/java/codegen/transformation/JavaNodeId.java v ad5c6ab3666d64b6c3390a59c0c18b52edf626c1
Bug 499228 - [Codegen Java] State-based incremental (Java Merger)
- Add JavaMerger that merges two java folders - Code generator generates a tmp folder with new code, then merges with existing folder before deleting tmp folder - Comparison based on internal JDT implementation of JavaNode - Supported java elements: package declaration, import container and declaration, type, field, method - If model has no method body, merge keeps the existing method body - If model has no field initializer, merge keeps the existing field initializer - If created field has same name as existing field (but e.g. different type), the existing field is deleted - If model has no javadoc or its javadoc is contained in existing javadoc, the existing javadoc is kept - Enums are overwritten due to complexity of merging their constants, fields, and operations
Change-Id: I643da1781a4a50b6dd9e5ecebbdf4119f64593b3 Signed-off-by: Shuai Li <shuai.li@cea.fr> |