From 12ba5e47d7667d46d88bbecf24677ebe5bd47d16 Mon Sep 17 00:00:00 2001 From: Romain Date: Fri, 17 Oct 2025 16:11:27 +0200 Subject: [PATCH 1/4] transformation operations draft blog post --- astro.config.mjs | 2 +- .../2025-10-15-transformation-operations.mdx | 246 ++++++++++++++++++ .../transformation_editor.png | Bin 0 -> 274071 bytes .../uml_blogpost.drawio.svg | 4 + 4 files changed, 251 insertions(+), 1 deletion(-) create mode 100644 src/content/docs/blog/2025-10-15-transformation-operations.mdx create mode 100644 src/content/docs/blog/img/posts/2025-10-15-transformation-operations/transformation_editor.png create mode 100644 src/content/docs/blog/img/posts/2025-10-15-transformation-operations/uml_blogpost.drawio.svg diff --git a/astro.config.mjs b/astro.config.mjs index a385040..e1fee8b 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -114,7 +114,7 @@ export default defineConfig({ }, RomainDegrave: { name: "Romain Degrave", - title: "Master degree intern in software analysis", + title: "PHD student", url: "https://github.com/RomainDeg", picture: "https://avatars.githubusercontent.com/u/98580879" }, diff --git a/src/content/docs/blog/2025-10-15-transformation-operations.mdx b/src/content/docs/blog/2025-10-15-transformation-operations.mdx new file mode 100644 index 0000000..a0c6096 --- /dev/null +++ b/src/content/docs/blog/2025-10-15-transformation-operations.mdx @@ -0,0 +1,246 @@ +--- +title: "Transformation operations : tooling for code transformation tools with seamless edits" +subtitle: >- + How to use transformation operations to apply code transformations to source files +date: 2025-10-15 +background: '/img/posts/bg-posts.jpg' +authors: +- RomainDegrave +comments: true +draft: true +tags: +- transformation +--- + +import OperationsSVG from './img/posts/2025-10-15-transformation-operations/uml_blogpost.drawio.svg'; + +Automated code transformation can be a tricky thing. Not only we must, of course, ensure that our edits do not break the code and are applied on every code entity which need such an edit, but we must also think about their integration in the codebase. +The code you manipulate is going to be the code that you and your collaborators have to understand, maintain and update on a daily basis, so it is mandatory that the results of our tooling solutions can be seamlessly integrated to the input codebase. + +This blog post will present a framework to build code transformations tools which can do just that, using transformation operations. + +## Another solution for code transformation? Why? + +If you have an interest in (semi-)automated code transformation, then you might have already read the series of three blog posts discussing this very subject. The third one shows an issue in the presented tooling system, present due to the use of the FAST visitor generating source code matching the visited FAST. + +This visitor introduces two unnecessary changes to the source code when generating a FAST. First, as the comments are not represented in FAST, they are not re-generated and are lost after applying a transformation. Second, the formating of the code is made by the visitor, and therefore might not be similar to the formating used in the rest of the source code. + +The loss of comments is an obvious problem which does not need explaining, but the changes in formatting are also quite problematic. Especially in long methods (which is not the greatest practice originally, but anyway :smile:), this means removing every carriage return included for readability. For invoked methods with many parameters which could have been written on several lines, they will be rewritten on one line only, etc. +Overall, leaving the code identical with the exception of the changes needed to complete the transformation task is a much more safe outcome, and it was the motivation behind the implementation of the tools presented in this blog post. + +Another motivation was the creation of a simpler API to describe transformation logic. As you will see in the rest of this post, the transformation operations does not involve making changes to the FAST on which you want to apply transformations, contrary to the tools described in the series of blog post on code transformation. + +## Tools to import + +In order to only showcase the transformation operations here and not go over what is shown in the three blog posts on code transformation, the only repository to import in your Moose image is `FAST-Java-Tools` : + +```st +Metacello new + baseline: 'FASTJavaTools'; + repository: 'github://moosetechnology/FAST-Java-Tools:main/src'; + load +``` + +## Operations overview + +Before going through a small case study to see this system in action, let's have a quick look at the operations available and their API. + + + +This might look like a lot of information at first glance, but the system is rather simple and straightforward. +You can see a certain number of classes, each defining one type of operation to apply on a FAST tree, like deletion, replacement and insertion with different subclasses for each specific case of insertion. +Each operation can take two FASTJavaEntity as variables: first, a node on which to apply the transformation, called the `anchorNode`, and another node this time created by the user to be inserted in some way in the entity, called the `transformedNode`. These two are defined in the parent entity of every operation, the `AbstractTransformationOperation` class. To use the operations, the setters for those two variables are going to be your best friends. +You can see similar setters in the subclasses, but with different names adapted to the operation context. Those are just syntaxic sugar, also setters for the `anchorNode` or the `transformedNode`. +Additional variables are needed for insertion operations, like `selector`, taking a symbol representing the setter to use to insert your `transformedNode` into the `anchorNode`, or `insertBefore`, a boolean to decide if the inserted statement or declaration will be inserted before or after the `anchorNode` selected. +Overall, that's all you need to know! + +## Transformation scenario + +Our case study is going to be very simple, as we are simply going to create transformation operations on a small mock method created for the occasion, so no model creation or import would be needed. + +Here is the code of this mock method : + +```java +public int methodToTransform(String strParam) { + HelperClass receiver = new HelperClass(); + int callResult = receiver.doSomething(strParam); + int secondCallResult = receiver.getConstant(CONSTANT_ID); + System.out.println("I''m testing something here!!!"); + return callResult + secondCallResult; +} +``` + +Our first step is going to be creating a class, `TransformationOperationsShowcaseTool`, with a `sourceCode` method returning this method above, and a `generateFAST` method parsing it and returning the `FASTJavaMethodEntity` created : + +```st +generateFAST + + | tool | + tool := JavaSmaCCProgramNodeImporterVisitor new. + ^ (tool parseCodeMethodString: self sourceCode) + allFASTJavaMethodEntity first +``` + +This is all we need to get started! Let's now get into the heart of the subject : defining our operations of code transformation. + +## Defining operations + +As the UML diagram showed us previously, defining a transformation operation is as simple as finding the suitable `anchorNode`, and creating the necessary `transformedNode`. We will see this in the following examples. + +First thing on the agenda is a simple statement deletion, as it seems an airheaded developer forgot to remove a debug print in our method (couldn't be me!). +If I call that a "simple" operation, it is because in the case of a removal operation we only need to find the `anchorNode` which will be the FAST node to delete. + +Here's how it looks in our code : + +```St +nodeToDeleteIn: fast + + "System.out.println(""I'm testing something here!!!"");" + ^ fast statements at: 4 +``` + +```St +createDeleteOperationFor: fast + + | deleteOp | + deleteOp := DeleteOperation new. + deleteOp anchorNode: (self nodeToDeleteIn: fast). + ^ deleteOp +``` + +As you can see, fetching the information is pretty straightforward, thanks to our limited scenario in this mock method. Defining our operation once we have the necessary information is just as easy however, simply setting this node as the `anchorNode`. + +Now that we've warmed up with this first try, let's go once step above, and add a parameter to our mock method. For example, if in the fourth line we'd like to use any identifier we'd like! +One way to implement that is : + +```St +nodeToInsert + + | newNode variable | + variable := FASTJavaVariableExpression new. + variable name: 'constantID'. + + newNode := FASTJavaParameter new. + newNode + variable: variable; + type: FASTJavaIntTypeExpression new. + ^ newNode +``` + +```St +createSignatureInsertionOperationFor: fast + + | signInserOp | + signInserOp := SignatureInsertionOperation new. + signInserOp + anchorNode: fast; + transformedNode: self nodeToInsert; + selector: #addParameter:. + ^ signInserOp +``` + +This time, the `anchorNode` couldn't be easier to fetch, as it is the FAST node representing our method, the root of our FAST tree. Creating the parameter node takes a few steps, but remember that you can use the `FASTDump` view of any existing node in an inspector to see how to create similar nodes if you have doubts on how the structure goes! :smile: +Defining the operation remains simple once we have fetched and created the necessary nodes, the only new step to think about in the case of an insertion is the `selector`. As we have seen in the UML, this message takes a symbol representing the setter to use to insert your `transformedNode` into the `anchorNode`. In our case, we add a parameter here. + +Finally, let's add one more transformation, so that our parameter is actually used in the code of the method! +It will replace the parameter given in the call to `getConstant`, in the fourth line : + +```St +nodeToReplaceIn: fast + + | originalNode | + "CONSTANT_ID" + originalNode := (fast statements at: 3) declarators first expression + arguments first. + ^ originalNode +``` + +```St +replacingNode + + | newNode | + newNode := FASTJavaVariableExpression new. + newNode name: 'constantID'. + ^ newNode +``` + +```St +createReplacingOperationFor: fast + + | replaceOp | + replaceOp := ReplacingOperation new. + replaceOp + originalNode: (self nodeToReplaceIn: fast); + transformedNode: self replacingNode. + ^ replaceOp +``` + +This concludes the part about operations definition. We will now see how to use those to actually transform the code of our method since for now, nothing has been actually transformed! + +## Using our operations to transform the source code + +This step is actually as simple as using a constructor and calling a method! :smile: + +We will now use a new tool, the class `FASTJavaCodeGeneratorKeepingFormatting`. This class contains all the behaviour necessary to take those operations and apply all necessary transformations so that the source code is modified exactly as defined in your operations. + +```St +setupCompleteTransformation + + | fast operations | + fast := self generateFAST. + + operations := OrderedCollection new. + operations + add: (self createDeleteOperationFor: fast); + add: (self createSignatureInsertionOperationFor: fast); + add: (self createReplacingOperationFor: fast). + + ^ FASTJavaCodeGeneratorKeepingFormatting + onSourceCode: self sourceCode + forOperations: operations +``` + +As you can see, this tool doesn't need a Famix or FAST entity on which to apply the operations, only the source code. Since the `anchorNode` attributes of each operations hold `startPos` and `endPos` attributes that are consistent with the source code given by the FAST entity, no more information is needed. +Setting up the tool is the first step, now all that remains is using it! + +```St +applyAndViewTransformation + + | tool transformedCode | + tool := self setupCompleteTransformation. + transformedCode := tool applyCodeTransformation. + + ^ (TransformationEditor + openForOriginalText: self sourceCode + transformed: transformedCode + removedHighlights: tool removedHighlights + addedHighlights: tool addedHighlights + originalEntity: nil) fetchEditedCode +``` + +!["Transformation Editor View"](./img/posts/2025-10-15-transformation-operations/transformation_editor.PNG) + +Once the tool is setup, the most important method is `applyCodeTransformation`, which... applies the transformation! Of course, it will also return the transformed code. You can also see that the tool proposes some auxilliary output in the instanciation call of the `TransformationEditor` class (if you don't know this class, check the [third blog post](https://modularmoose.org/blog/2025-06-13-transformation-third/) on code transformation!). Once a transformation is done, the transformation tool saves up information to highlight the transformations in the `TransformationEditor` using the `addedHighlights` and `removedHighlights` messages. +Another information the tool can give is available through the `transformationPointers` method, which is quite useful in the `TransformationEditor` when the entity being transformed is a class. Using the button in the top right corner allows you to jump between entities who got a transformation, allowing you to easily verify those, even in the case of only a few transformations applied in a big class. + +## Try it yourself! + +With this, we've seen most of what transformation operations have to offer! + +Our little showcase tool allowed us to discover and manipulate those code transformation operations to create an actual transformation case. Some types of operations are not covered here, however you can find the necessary explanations and examples through the tests and class documentations. As you can see in this post, the way of using operations is also almost always the same independently of the type of the operation. + +Feel free to also try the code shown in this post in a Playground, or even to modify it to familiarize yourself with transformation operations! + +```smalltalk +tool := TransformationOperationShowcaseTool new. +tool applyAndViewTransformation +``` + +The source code written in this blog post is available on this [repository](https://github.com/RomainDeg/Moose-BlogPost-Transformation). If you followed the previous blog post series on code transformation, you may have recognized the repository! Indeed, additionally to the code shown within this blog post, you will find on this branch the version of the tool shown in the previous blog post series, but replacing the previous transformation logic with transformation operations. + +## Conclusion + +In this blog post we used transformation operations, a new transformation system allowing for easier definition and seamless edits to keep comments and indentation after applying the transformation. + +The focus was on the operations system and not on everything else that matters when doing code transformation, like the querying and search through the Famix or FAST models to find the entities to transform, or how to apply the transformation on the actual source code of our software. However, all of this was shown in the previous blog post series starting from [this post](https://modularmoose.org/blog/2024-04-01-transformation-first/). The transformation operations system integrates perfectly with the other tools for code transformation, giving you everything necessary for your transformation needs! :smile: + diff --git a/src/content/docs/blog/img/posts/2025-10-15-transformation-operations/transformation_editor.png b/src/content/docs/blog/img/posts/2025-10-15-transformation-operations/transformation_editor.png new file mode 100644 index 0000000000000000000000000000000000000000..52aa58513a48463c15377912e10e3f03347ede2d GIT binary patch literal 274071 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�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 HQU(%+}4B7GrG7%LM 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 literal 0 HcmV?d00001 diff --git a/src/content/docs/blog/img/posts/2025-10-15-transformation-operations/uml_blogpost.drawio.svg b/src/content/docs/blog/img/posts/2025-10-15-transformation-operations/uml_blogpost.drawio.svg new file mode 100644 index 0000000..ea95722 --- /dev/null +++ b/src/content/docs/blog/img/posts/2025-10-15-transformation-operations/uml_blogpost.drawio.svg @@ -0,0 +1,4 @@ + + + +
AbstractTransformationOperation
+ anchorNode : FASTJavaEntity
+ transformedNode : FASTJavaEntity
- buildNewNode : FASTJavaEntity
- getPosForSorting : int
- copyNode(FastJavaEntity) : FASTJavaEntity
+ anchorNode : FASTJavaEntity
+ anchorNode(FASTJavaEntity) : nil
+ transformedNode : FASTJavaEntity
+ transformedNode(FASTJavaEntity) : nil
DeleteOperation
 
+ nodeToDelete : FASTJavaEntity
+ nodeToDelete(FASTJavaEntity) : nil
ReplacingOperation
 
+ originalNode : FASTJavaEntity
+ originalNode(FASTJavaEntity) : nil
+ nodeToReplace : FASTJavaEntity
+ nodeToReplace(FASTJavaEntity) : nil
InsertionOperation
+ selector : ByteString
+ parentNode : FASTJavaEntity
+ parentNode(FASTJavaEntity) : nil
+ nodeToInsert : FASTJavaEntity
+ nodeToInsert(FASTJavaEntity) : nil
SignatureInsertionOperation
 
 
StatementInsertionOperation
+ insertBefore : Boolean
 
DeclarationInsertionOperation
 
 
\ No newline at end of file From c1cfacde631d8cc3b0f44f3f291af95c6483137a Mon Sep 17 00:00:00 2001 From: ClotildeToullec Date: Wed, 22 Oct 2025 10:56:53 +0200 Subject: [PATCH 2/4] Transformation operations review --- .../2025-10-15-transformation-operations.mdx | 103 +++++++++++++----- 1 file changed, 73 insertions(+), 30 deletions(-) diff --git a/src/content/docs/blog/2025-10-15-transformation-operations.mdx b/src/content/docs/blog/2025-10-15-transformation-operations.mdx index a0c6096..87e016b 100644 --- a/src/content/docs/blog/2025-10-15-transformation-operations.mdx +++ b/src/content/docs/blog/2025-10-15-transformation-operations.mdx @@ -14,21 +14,30 @@ tags: import OperationsSVG from './img/posts/2025-10-15-transformation-operations/uml_blogpost.drawio.svg'; -Automated code transformation can be a tricky thing. Not only we must, of course, ensure that our edits do not break the code and are applied on every code entity which need such an edit, but we must also think about their integration in the codebase. -The code you manipulate is going to be the code that you and your collaborators have to understand, maintain and update on a daily basis, so it is mandatory that the results of our tooling solutions can be seamlessly integrated to the input codebase. +Automated code transformation can be a tricky thing. +Not only must we ensure, of course, that our edits do not break the code and are applied to every code entity which needs such an edit, but we must also think about their integration in the codebase. +The code we manipulate is going to be the code that we and our collaborators have to understand, maintain and update on a daily basis. +It is thus mandatory that the results of our tooling solutions can be seamlessly integrated to the input codebase. This blog post will present a framework to build code transformations tools which can do just that, using transformation operations. ## Another solution for code transformation? Why? -If you have an interest in (semi-)automated code transformation, then you might have already read the series of three blog posts discussing this very subject. The third one shows an issue in the presented tooling system, present due to the use of the FAST visitor generating source code matching the visited FAST. +If you have an interest in (semi-)automated code transformation, then you might have already read the series of three blog posts discussing this very subject. +The third one shows an issue in the presented tooling system, due to the use of the FAST visitor generating source code matching the visited FAST. -This visitor introduces two unnecessary changes to the source code when generating a FAST. First, as the comments are not represented in FAST, they are not re-generated and are lost after applying a transformation. Second, the formating of the code is made by the visitor, and therefore might not be similar to the formating used in the rest of the source code. +This visitor introduces two unnecessary changes to the source code when generating a FAST: -The loss of comments is an obvious problem which does not need explaining, but the changes in formatting are also quite problematic. Especially in long methods (which is not the greatest practice originally, but anyway :smile:), this means removing every carriage return included for readability. For invoked methods with many parameters which could have been written on several lines, they will be rewritten on one line only, etc. -Overall, leaving the code identical with the exception of the changes needed to complete the transformation task is a much more safe outcome, and it was the motivation behind the implementation of the tools presented in this blog post. +- **Missing comments:** because the comments are not represented in FAST, they are not re-generated and are lost after applying a transformation. +- **Formatting heterogeneity:** because the formatting of the code is made by the visitor, it might not be similar to the formatting used in the rest of the source code. -Another motivation was the creation of a simpler API to describe transformation logic. As you will see in the rest of this post, the transformation operations does not involve making changes to the FAST on which you want to apply transformations, contrary to the tools described in the series of blog post on code transformation. +The loss of comments is an obvious problem which does not need explaining, but the changes in formatting are also quite problematic. +Especially in long methods (which is not the greatest practice originally, but anyway :smile:), this means removing every carriage return included for readability. +For invoked methods with many parameters which could have been written on several lines, they will be rewritten on one line only, etc. +Overall, leaving the code identical except for the changes needed to complete the transformation task is a much safer outcome, and it was the motivation behind the implementation of the tools presented in this blog post. + +Another motivation was the creation of a simpler API to describe transformation logic. +As you will see in the rest of this post, the transformation operations do not involve making changes to the FAST on which you want to apply transformations, contrary to the tools described in the series of blog post on code transformation. ## Tools to import @@ -49,9 +58,20 @@ Before going through a small case study to see this system in action, let's have This might look like a lot of information at first glance, but the system is rather simple and straightforward. You can see a certain number of classes, each defining one type of operation to apply on a FAST tree, like deletion, replacement and insertion with different subclasses for each specific case of insertion. -Each operation can take two FASTJavaEntity as variables: first, a node on which to apply the transformation, called the `anchorNode`, and another node this time created by the user to be inserted in some way in the entity, called the `transformedNode`. These two are defined in the parent entity of every operation, the `AbstractTransformationOperation` class. To use the operations, the setters for those two variables are going to be your best friends. -You can see similar setters in the subclasses, but with different names adapted to the operation context. Those are just syntaxic sugar, also setters for the `anchorNode` or the `transformedNode`. -Additional variables are needed for insertion operations, like `selector`, taking a symbol representing the setter to use to insert your `transformedNode` into the `anchorNode`, or `insertBefore`, a boolean to decide if the inserted statement or declaration will be inserted before or after the `anchorNode` selected. +Each operation can take two FASTJavaEntity as variables defined in the parent entity of every operation, the `AbstractTransformationOperation` class: + +- a node on which to apply the transformation, called the `anchorNode` +- another node this time created by the user to be inserted in some way in the entity, called the `transformedNode`. + +To use the operations, the setters for those two variables are going to be your best friends. +You can see similar setters in the subclasses, but with different names adapted to the operation context. +Those are just syntactic sugar, also setters for the `anchorNode` or the `transformedNode`. + +Additional variables are needed for insertion operations, like: + +- `selector`, taking a symbol representing the setter to use to insert your `transformedNode` into the `anchorNode`, or +- `insertBefore`, a boolean to decide if the inserted statement or declaration will be inserted before or after the `anchorNode` selected. + Overall, that's all you need to know! ## Transformation scenario @@ -62,11 +82,11 @@ Here is the code of this mock method : ```java public int methodToTransform(String strParam) { - HelperClass receiver = new HelperClass(); - int callResult = receiver.doSomething(strParam); - int secondCallResult = receiver.getConstant(CONSTANT_ID); - System.out.println("I''m testing something here!!!"); - return callResult + secondCallResult; + HelperClass receiver = new HelperClass(); + int callResult = receiver.doSomething(strParam); + int secondCallResult = receiver.getConstant(CONSTANT_ID); + System.out.println("I''m testing something here!!!"); + return callResult + secondCallResult; } ``` @@ -81,13 +101,17 @@ generateFAST allFASTJavaMethodEntity first ``` -This is all we need to get started! Let's now get into the heart of the subject : defining our operations of code transformation. +This is all we need to get started! +Let's now get into the heart of the subject: defining our operations of code transformation. ## Defining operations -As the UML diagram showed us previously, defining a transformation operation is as simple as finding the suitable `anchorNode`, and creating the necessary `transformedNode`. We will see this in the following examples. +As the UML diagram showed us previously, defining a transformation operation is as simple as finding the suitable `anchorNode` and creating the necessary `transformedNode`. +We will see this in the following examples. + +### Statement deletion -First thing on the agenda is a simple statement deletion, as it seems an airheaded developer forgot to remove a debug print in our method (couldn't be me!). +First thing on the agenda is a simple statement deletion, as it seems an air-headed developer forgot to remove a debug print in our method (couldn't be me!). If I call that a "simple" operation, it is because in the case of a removal operation we only need to find the `anchorNode` which will be the FAST node to delete. Here's how it looks in our code : @@ -108,9 +132,14 @@ createDeleteOperationFor: fast ^ deleteOp ``` -As you can see, fetching the information is pretty straightforward, thanks to our limited scenario in this mock method. Defining our operation once we have the necessary information is just as easy however, simply setting this node as the `anchorNode`. +As you can see, fetching the information is pretty straightforward, thanks to our limited scenario in this mock method. +Defining our operation once we have the necessary information is just as easy however, simply setting this node as the `anchorNode`. + +### Parameter insertion + +Now that we've warmed up with this first try, let's go once step above, and add a parameter to our mock method. +For example, if in the fourth line (`int secondCallResult = receiver.getConstant(CONSTANT_ID);`) we'd like to use any identifier we'd like! -Now that we've warmed up with this first try, let's go once step above, and add a parameter to our mock method. For example, if in the fourth line we'd like to use any identifier we'd like! One way to implement that is : ```St @@ -139,8 +168,11 @@ createSignatureInsertionOperationFor: fast ^ signInserOp ``` -This time, the `anchorNode` couldn't be easier to fetch, as it is the FAST node representing our method, the root of our FAST tree. Creating the parameter node takes a few steps, but remember that you can use the `FASTDump` view of any existing node in an inspector to see how to create similar nodes if you have doubts on how the structure goes! :smile: -Defining the operation remains simple once we have fetched and created the necessary nodes, the only new step to think about in the case of an insertion is the `selector`. As we have seen in the UML, this message takes a symbol representing the setter to use to insert your `transformedNode` into the `anchorNode`. In our case, we add a parameter here. +This time, the `anchorNode` couldn't be easier to fetch, as it is the FAST node representing our method, i.e. the root of our FAST tree. +Creating the parameter node takes a few steps, but remember that you can use the `FASTDump` view of any existing node in an inspector to see how to create similar nodes if you have doubts on how the structure goes! :smile: +Defining the operation remains simple once we have fetched and created the necessary nodes, the only new step to think about in the case of an insertion is the `selector`. +As we have seen in the UML, this message takes a symbol representing the setter to use to insert your `transformedNode` into the `anchorNode`. +In our case, we add a parameter here. Finally, let's add one more transformation, so that our parameter is actually used in the code of the method! It will replace the parameter given in the call to `getConstant`, in the fourth line : @@ -181,7 +213,8 @@ This concludes the part about operations definition. We will now see how to use This step is actually as simple as using a constructor and calling a method! :smile: -We will now use a new tool, the class `FASTJavaCodeGeneratorKeepingFormatting`. This class contains all the behaviour necessary to take those operations and apply all necessary transformations so that the source code is modified exactly as defined in your operations. +We will now use a new tool, the class `FASTJavaCodeGeneratorKeepingFormatting`. +This class contains all the behavior necessary to take those operations and apply all necessary transformations so that the source code is modified exactly as defined in your operations. ```St setupCompleteTransformation @@ -200,7 +233,8 @@ setupCompleteTransformation forOperations: operations ``` -As you can see, this tool doesn't need a Famix or FAST entity on which to apply the operations, only the source code. Since the `anchorNode` attributes of each operations hold `startPos` and `endPos` attributes that are consistent with the source code given by the FAST entity, no more information is needed. +As you can see, this tool doesn't need a Famix or FAST entity on which to apply the operations, only the source code. +Since the `anchorNode` attributes of each operation hold `startPos` and `endPos` attributes that are consistent with the source code given by the FAST entity, no more information is needed. Setting up the tool is the first step, now all that remains is using it! ```St @@ -220,14 +254,20 @@ applyAndViewTransformation !["Transformation Editor View"](./img/posts/2025-10-15-transformation-operations/transformation_editor.PNG) -Once the tool is setup, the most important method is `applyCodeTransformation`, which... applies the transformation! Of course, it will also return the transformed code. You can also see that the tool proposes some auxilliary output in the instanciation call of the `TransformationEditor` class (if you don't know this class, check the [third blog post](https://modularmoose.org/blog/2025-06-13-transformation-third/) on code transformation!). Once a transformation is done, the transformation tool saves up information to highlight the transformations in the `TransformationEditor` using the `addedHighlights` and `removedHighlights` messages. -Another information the tool can give is available through the `transformationPointers` method, which is quite useful in the `TransformationEditor` when the entity being transformed is a class. Using the button in the top right corner allows you to jump between entities who got a transformation, allowing you to easily verify those, even in the case of only a few transformations applied in a big class. +Once the tool is set up, the most important method is `applyCodeTransformation`, which... applies the transformation! +Of course, it will also return the transformed code. +You can also see that the tool proposes some auxiliary output in the instantiation call of the `TransformationEditor` class (if you don't know this class, check the [third blog post](https://modularmoose.org/blog/2025-06-13-transformation-third/) on code transformation!). +Once a transformation is done, the transformation tool saves up information to highlight the transformations in the `TransformationEditor` using the `addedHighlights` and `removedHighlights` messages. +Another information the tool can give is available through the `transformationPointers` method, which is quite useful in the `TransformationEditor` when the entity being transformed is a class. +Using the button in the top right corner allows you to jump between entities who got a transformation, allowing you to easily verify those, even in the case of only a few transformations applied in a big class. ## Try it yourself! With this, we've seen most of what transformation operations have to offer! -Our little showcase tool allowed us to discover and manipulate those code transformation operations to create an actual transformation case. Some types of operations are not covered here, however you can find the necessary explanations and examples through the tests and class documentations. As you can see in this post, the way of using operations is also almost always the same independently of the type of the operation. +Our little showcase tool allowed us to discover and manipulate those code transformation operations to create an actual transformation case. +Some types of operations are not covered here, however you can find the necessary explanations and examples through the tests and class documentations. +As you can see in this post, the way of using operations is also almost always the same independently of the type of the operation. Feel free to also try the code shown in this post in a Playground, or even to modify it to familiarize yourself with transformation operations! @@ -236,11 +276,14 @@ tool := TransformationOperationShowcaseTool new. tool applyAndViewTransformation ``` -The source code written in this blog post is available on this [repository](https://github.com/RomainDeg/Moose-BlogPost-Transformation). If you followed the previous blog post series on code transformation, you may have recognized the repository! Indeed, additionally to the code shown within this blog post, you will find on this branch the version of the tool shown in the previous blog post series, but replacing the previous transformation logic with transformation operations. +The source code detailed in this blog post is available on this [repository](https://github.com/RomainDeg/Moose-BlogPost-Transformation). +If you followed the previous blog post series on code transformation, you may have recognized the repository! +Indeed, additionally to the code shown within this blog post, you will find on this branch the version of the tool shown in the previous blog post series, but replacing the previous transformation logic with transformation operations. ## Conclusion In this blog post we used transformation operations, a new transformation system allowing for easier definition and seamless edits to keep comments and indentation after applying the transformation. -The focus was on the operations system and not on everything else that matters when doing code transformation, like the querying and search through the Famix or FAST models to find the entities to transform, or how to apply the transformation on the actual source code of our software. However, all of this was shown in the previous blog post series starting from [this post](https://modularmoose.org/blog/2024-04-01-transformation-first/). The transformation operations system integrates perfectly with the other tools for code transformation, giving you everything necessary for your transformation needs! :smile: - +The focus was on the operations system and not on everything else that matters when doing code transformation, like the querying and search through the Famix or FAST models to find the entities to transform, or how to apply the transformation on the actual source code of our software. +However, all of this was shown in the previous blog post series starting from [this post](https://modularmoose.org/blog/2024-04-01-transformation-first/). +The transformation operations system integrates perfectly with the other tools for code transformation, giving you everything necessary for your transformation needs! :smile: \ No newline at end of file From 4e677a1b877d3708763bd7f6de158c1a82594438 Mon Sep 17 00:00:00 2001 From: Benoit Verhaeghe Date: Wed, 22 Oct 2025 11:49:09 +0200 Subject: [PATCH 3/4] =?UTF-8?q?Correction=20de=20la=20syntaxe=20des=20bloc?= =?UTF-8?q?s=20de=20code=20en=20rempla=C3=A7ant=20"St"=20par=20"smalltalk"?= =?UTF-8?q?=20dans=20le=20billet=20de=20blog=20sur=20les=20op=C3=A9rations?= =?UTF-8?q?=20de=20transformation.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2025-10-15-transformation-operations.mdx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/content/docs/blog/2025-10-15-transformation-operations.mdx b/src/content/docs/blog/2025-10-15-transformation-operations.mdx index a0c6096..0856f40 100644 --- a/src/content/docs/blog/2025-10-15-transformation-operations.mdx +++ b/src/content/docs/blog/2025-10-15-transformation-operations.mdx @@ -34,7 +34,7 @@ Another motivation was the creation of a simpler API to describe transformation In order to only showcase the transformation operations here and not go over what is shown in the three blog posts on code transformation, the only repository to import in your Moose image is `FAST-Java-Tools` : -```st +```smalltalk Metacello new baseline: 'FASTJavaTools'; repository: 'github://moosetechnology/FAST-Java-Tools:main/src'; @@ -72,7 +72,7 @@ public int methodToTransform(String strParam) { Our first step is going to be creating a class, `TransformationOperationsShowcaseTool`, with a `sourceCode` method returning this method above, and a `generateFAST` method parsing it and returning the `FASTJavaMethodEntity` created : -```st +```smalltalk generateFAST | tool | @@ -92,14 +92,14 @@ If I call that a "simple" operation, it is because in the case of a removal oper Here's how it looks in our code : -```St +```smalltalk nodeToDeleteIn: fast "System.out.println(""I'm testing something here!!!"");" ^ fast statements at: 4 ``` -```St +```smalltalk createDeleteOperationFor: fast | deleteOp | @@ -113,7 +113,7 @@ As you can see, fetching the information is pretty straightforward, thanks to ou Now that we've warmed up with this first try, let's go once step above, and add a parameter to our mock method. For example, if in the fourth line we'd like to use any identifier we'd like! One way to implement that is : -```St +```smalltalk nodeToInsert | newNode variable | @@ -127,7 +127,7 @@ nodeToInsert ^ newNode ``` -```St +```smalltalk createSignatureInsertionOperationFor: fast | signInserOp | @@ -145,7 +145,7 @@ Defining the operation remains simple once we have fetched and created the neces Finally, let's add one more transformation, so that our parameter is actually used in the code of the method! It will replace the parameter given in the call to `getConstant`, in the fourth line : -```St +```smalltalk nodeToReplaceIn: fast | originalNode | @@ -155,7 +155,7 @@ nodeToReplaceIn: fast ^ originalNode ``` -```St +```smalltalk replacingNode | newNode | @@ -164,7 +164,7 @@ replacingNode ^ newNode ``` -```St +```smalltalk createReplacingOperationFor: fast | replaceOp | @@ -183,7 +183,7 @@ This step is actually as simple as using a constructor and calling a method! :sm We will now use a new tool, the class `FASTJavaCodeGeneratorKeepingFormatting`. This class contains all the behaviour necessary to take those operations and apply all necessary transformations so that the source code is modified exactly as defined in your operations. -```St +```smalltalk setupCompleteTransformation | fast operations | @@ -203,7 +203,7 @@ setupCompleteTransformation As you can see, this tool doesn't need a Famix or FAST entity on which to apply the operations, only the source code. Since the `anchorNode` attributes of each operations hold `startPos` and `endPos` attributes that are consistent with the source code given by the FAST entity, no more information is needed. Setting up the tool is the first step, now all that remains is using it! -```St +```smalltalk applyAndViewTransformation | tool transformedCode | From c0894316176649c6c0bb15ebcda4c7116ab8b7e3 Mon Sep 17 00:00:00 2001 From: Romain Date: Thu, 23 Oct 2025 16:19:50 +0200 Subject: [PATCH 4/4] changes suggested by clotilde --- .../blog/2025-10-15-transformation-operations.mdx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/content/docs/blog/2025-10-15-transformation-operations.mdx b/src/content/docs/blog/2025-10-15-transformation-operations.mdx index 1cd7640..f5ea23a 100644 --- a/src/content/docs/blog/2025-10-15-transformation-operations.mdx +++ b/src/content/docs/blog/2025-10-15-transformation-operations.mdx @@ -39,9 +39,9 @@ Overall, leaving the code identical except for the changes needed to complete th Another motivation was the creation of a simpler API to describe transformation logic. As you will see in the rest of this post, the transformation operations do not involve making changes to the FAST on which you want to apply transformations, contrary to the tools described in the series of blog post on code transformation. -## Tools to import +## Transformation tools repository -In order to only showcase the transformation operations here and not go over what is shown in the three blog posts on code transformation, the only repository to import in your Moose image is `FAST-Java-Tools` : +The transformation operations presented in this blog post are located on the same repository that contains the other tools implemented to be used in code transformation. To import them, use this baseline: ```smalltalk Metacello new @@ -76,7 +76,12 @@ Overall, that's all you need to know! ## Transformation scenario -Our case study is going to be very simple, as we are simply going to create transformation operations on a small mock method created for the occasion, so no model creation or import would be needed. +:::note[Following along] +From this point forward, we will code a tool to showcase the use of transformation operations. +If you want to be able to test what is presented in this post, you may start by creating a new image and import the repository given previously. From there, either implement the tool step by step using the provided code snippets or browse the complete tool available on this [repository](https://github.com/RomainDeg/Moose-BlogPost-Transformation). +::: + +Our case study is going to be very simple, as we are simply going to create transformation operations on a small mock method created for the occasion, so no model creation or import would be needed. Here is the code of this mock method : @@ -276,8 +281,8 @@ tool := TransformationOperationShowcaseTool new. tool applyAndViewTransformation ``` -The source code detailed in this blog post is available on this [repository](https://github.com/RomainDeg/Moose-BlogPost-Transformation). -If you followed the previous blog post series on code transformation, you may have recognized the repository! +If you haven't used it earlier, quick reminder that the source code detailed in this blog post is available on this [repository](https://github.com/RomainDeg/Moose-BlogPost-Transformation). +If you followed the previous blog post series on code transformation, you may have recognized the repository! Indeed, additionally to the code shown within this blog post, you will find on this branch the version of the tool shown in the previous blog post series, but replacing the previous transformation logic with transformation operations. ## Conclusion