From a2afc0cccf85d1ac17e33e726affbf5d6ab153f7 Mon Sep 17 00:00:00 2001
From: Johannes Mey <johannes.mey@tu-dresden.de>
Date: Sat, 2 Mar 2019 22:15:00 +0100
Subject: [PATCH] make add/set methods return the object (adresses issue #8)

---
 src/main/jastadd/Backend.jadd | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/main/jastadd/Backend.jadd b/src/main/jastadd/Backend.jadd
index 7b3de41..e6ae314 100644
--- a/src/main/jastadd/Backend.jadd
+++ b/src/main/jastadd/Backend.jadd
@@ -176,12 +176,13 @@ aspect BackendDirectedAPI {
     generateGetOne(sb);
 
     // Set
-    sb.append(ind(1) + "public void " + toTypeDecl());
+    sb.append(ind(1) + "public " + toTypeDecl() + " " + toTypeDecl());
     sb.append(".set" + nameCapitalized() + "(" + ofTypeDecl() + " o) {\n");
     if (!optional) {
       sb.append(ind(2) + "assertNotNull(o);\n");
     }
     sb.append(ind(2) + "set" + getImplAttributeName() + "(o);\n");
+    sb.append(ind(2) + "return this;\n");
     sb.append(ind(1) + "}\n");
   }
 
@@ -324,7 +325,7 @@ aspect BackendBidirectionalAPI {
     generateGetOne(sb);
 
     // Set
-    sb.append(ind(1) + "public void " + toTypeDecl());
+    sb.append(ind(1) + "public " + toTypeDecl() + " " + toTypeDecl());
     sb.append(".set" + nameCapitalized() + "(" + ofTypeDecl() + " o) {\n");
     if (!isOpt) {
       sb.append(ind(2) + "assertNotNull(o);\n");
@@ -361,6 +362,7 @@ aspect BackendBidirectionalAPI {
       }
     }
 
+    sb.append(ind(2) + "return this;\n");
     sb.append(ind(1) + "}\n");
 
     if (isOpt) {
@@ -559,7 +561,7 @@ aspect BackendBidirectionalAPI {
     generateGetOne(sb);
 
     // Set
-    sb.append(ind(1) + "public void " + toTypeDecl() + ".set" + nameCapitalized()
+    sb.append(ind(1) + "public " + toTypeDecl() + " " + toTypeDecl() + ".set" + nameCapitalized()
       + "(" + ofTypeDecl() + " o) {\n");
     if (!isOpt) {
       sb.append(ind(2) + "assertNotNull(o);\n");
@@ -587,6 +589,7 @@ aspect BackendBidirectionalAPI {
     if (isOpt) {
       sb.append(ind(2) + "}\n");
     }
+    sb.append(ind(2) + "return this;\n");
     sb.append(ind(1) + "}\n");
 
     if (isOpt) {
-- 
GitLab