Skip to content

Commit f259a19

Browse files
author
emilforslund
committed
Add multi-adders to most traits
1 parent 434b4e9 commit f259a19

File tree

11 files changed

+81
-16
lines changed

11 files changed

+81
-16
lines changed

src/main/java/com/speedment/codegen/lang/interfaces/HasAnnotationUsage.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.speedment.codegen.lang.interfaces;
1818

1919
import com.speedment.codegen.lang.models.AnnotationUsage;
20+
import java.util.Collection;
2021
import java.util.List;
2122

2223
/**
@@ -28,7 +29,13 @@ public interface HasAnnotationUsage<T extends HasAnnotationUsage<T>> {
2829

2930
@SuppressWarnings("unchecked")
3031
default T add(final AnnotationUsage annotation) {
31-
getAnnotations().add(annotation);
32+
getAnnotations().add(annotation.copy());
33+
return (T) this;
34+
}
35+
36+
@SuppressWarnings("unchecked")
37+
default T addAllAnnotations(final Collection<? extends AnnotationUsage> annotations) {
38+
annotations.forEach(this::add);
3239
return (T) this;
3340
}
3441

src/main/java/com/speedment/codegen/lang/interfaces/HasClasses.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@
2828
public interface HasClasses<T extends HasClasses<T>> {
2929

3030
@SuppressWarnings("unchecked")
31-
default T add(ClassOrInterface<?> member) {
32-
getClasses().add(member);
31+
default T add(final ClassOrInterface<?> member) {
32+
getClasses().add(member.copy());
3333
return (T) this;
3434
}
3535

3636
@SuppressWarnings("unchecked")
37-
default T addAllClasses(Collection<? extends ClassOrInterface<?>> members) {
38-
getClasses().addAll(members);
37+
default T addAllClasses(final Collection<? extends ClassOrInterface<?>> members) {
38+
members.forEach(this::add);
3939
return (T) this;
4040
}
4141

src/main/java/com/speedment/codegen/lang/interfaces/HasCode.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717
package com.speedment.codegen.lang.interfaces;
1818

19+
import java.util.Collection;
1920
import java.util.List;
2021

2122
/**
@@ -26,10 +27,16 @@
2627
public interface HasCode<T extends HasCode<T>> {
2728

2829
@SuppressWarnings("unchecked")
29-
default T add(String row) {
30+
default T add(final String row) {
3031
getCode().add(row);
3132
return (T) this;
3233
}
3334

35+
@SuppressWarnings("unchecked")
36+
default T addAllRows(final Collection<String> rows) {
37+
rows.forEach(this::add);
38+
return (T) this;
39+
}
40+
3441
List<String> getCode();
3542
}

src/main/java/com/speedment/codegen/lang/interfaces/HasConstructors.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.speedment.codegen.lang.interfaces;
1818

1919
import com.speedment.codegen.lang.models.Constructor;
20+
import java.util.Collection;
2021
import java.util.List;
2122

2223
/**
@@ -28,7 +29,13 @@ public interface HasConstructors<T extends HasConstructors<T>> {
2829

2930
@SuppressWarnings("unchecked")
3031
default T add(final Constructor constr) {
31-
getConstructors().add(constr);
32+
getConstructors().add(constr.copy());
33+
return (T) this;
34+
}
35+
36+
@SuppressWarnings("unchecked")
37+
default T addAllConstructors(final Collection<Constructor> constr) {
38+
constr.forEach(this::add);
3239
return (T) this;
3340
}
3441

src/main/java/com/speedment/codegen/lang/interfaces/HasFields.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.speedment.codegen.lang.models.Field;
2020
import java.util.Collection;
2121
import java.util.List;
22+
import java.util.stream.Stream;
2223

2324
/**
2425
*
@@ -29,13 +30,13 @@ public interface HasFields<T extends HasFields<T>> {
2930

3031
@SuppressWarnings("unchecked")
3132
default T add(final Field field) {
32-
getFields().add(field);
33+
getFields().add(field.copy());
3334
return (T) this;
3435
}
3536

3637
@SuppressWarnings("unchecked")
3738
default T addAllFields(final Collection<? extends Field> fields) {
38-
getFields().addAll(fields);
39+
fields.forEach(this::add);
3940
return (T) this;
4041
}
4142

src/main/java/com/speedment/codegen/lang/interfaces/HasGenerics.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.speedment.codegen.lang.interfaces;
1818

1919
import com.speedment.codegen.lang.models.Generic;
20+
import java.util.Collection;
2021
import java.util.List;
2122

2223
/**
@@ -28,7 +29,13 @@ public interface HasGenerics<T extends HasGenerics<T>> {
2829

2930
@SuppressWarnings("unchecked")
3031
default T add(final Generic generic) {
31-
getGenerics().add(generic);
32+
getGenerics().add(generic.copy());
33+
return (T) this;
34+
}
35+
36+
@SuppressWarnings("unchecked")
37+
default T addAllGenerics(final Collection<? extends Generic> generics) {
38+
generics.forEach(this::add);
3239
return (T) this;
3340
}
3441

src/main/java/com/speedment/codegen/lang/interfaces/HasImplements.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.speedment.codegen.lang.interfaces;
1818

1919
import com.speedment.codegen.lang.models.Type;
20+
import java.util.Collection;
2021
import java.util.List;
2122

2223
/**
@@ -28,7 +29,13 @@ public interface HasImplements<T extends HasImplements<T>> {
2829

2930
@SuppressWarnings("unchecked")
3031
default T add(final Type interf) {
31-
getInterfaces().add(interf);
32+
getInterfaces().add(interf.copy());
33+
return (T) this;
34+
}
35+
36+
@SuppressWarnings("unchecked")
37+
default T addAllImplements(final Collection<? extends Type> interf) {
38+
interf.forEach(this::add);
3239
return (T) this;
3340
}
3441

src/main/java/com/speedment/codegen/lang/interfaces/HasImports.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.speedment.codegen.lang.interfaces;
1818

1919
import com.speedment.codegen.lang.models.Import;
20+
import java.util.Collection;
2021
import java.util.List;
2122

2223
/**
@@ -28,7 +29,13 @@ public interface HasImports<T extends HasImports<T>> {
2829

2930
@SuppressWarnings("unchecked")
3031
default T add(final Import dep) {
31-
getImports().add(dep);
32+
getImports().add(dep.copy());
33+
return (T) this;
34+
}
35+
36+
@SuppressWarnings("unchecked")
37+
default T addAllImports(final Collection<? extends Import> imports) {
38+
imports.forEach(this::add);
3239
return (T) this;
3340
}
3441

src/main/java/com/speedment/codegen/lang/interfaces/HasInitalizers.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.speedment.codegen.lang.interfaces;
1818

1919
import com.speedment.codegen.lang.models.Initalizer;
20+
import java.util.Collection;
2021
import java.util.List;
2122

2223
/**
@@ -27,8 +28,14 @@
2728
public interface HasInitalizers<T extends HasInitalizers<T>> {
2829

2930
@SuppressWarnings("unchecked")
30-
default T add(final Initalizer dep) {
31-
getInitalizers().add(dep);
31+
default T add(final Initalizer initalizer) {
32+
getInitalizers().add(initalizer.copy());
33+
return (T) this;
34+
}
35+
36+
@SuppressWarnings("unchecked")
37+
default T addAllInitalizers(final Collection<? extends Initalizer> initalizers) {
38+
initalizers.forEach(this::add);
3239
return (T) this;
3340
}
3441

src/main/java/com/speedment/codegen/lang/interfaces/HasMethods.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.speedment.codegen.lang.interfaces;
1818

1919
import com.speedment.codegen.lang.models.Method;
20+
import java.util.Collection;
2021
import java.util.List;
2122

2223
/**
@@ -28,7 +29,13 @@ public interface HasMethods<T extends HasMethods<T>> {
2829

2930
@SuppressWarnings("unchecked")
3031
default T add(final Method meth) {
31-
getMethods().add(meth);
32+
getMethods().add(meth.copy());
33+
return (T) this;
34+
}
35+
36+
@SuppressWarnings("unchecked")
37+
default T addAllMethods(final Collection<? extends Method> methods) {
38+
methods.forEach(this::add);
3239
return (T) this;
3340
}
3441

0 commit comments

Comments
 (0)