From 1f7c725bfc7e12a53e966646bd37728cbabeaedd Mon Sep 17 00:00:00 2001 From: Sisyphus001 <74189127+Sisyphus001@users.noreply.github.com> Date: Wed, 20 Apr 2022 08:52:45 +0800 Subject: [PATCH 1/3] add iterable modifier in TypeSpec --- src/main/java/com/squareup/javapoet/TypeSpec.java | 6 ++++++ src/test/java/com/squareup/javapoet/TypeSpecTest.java | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/main/java/com/squareup/javapoet/TypeSpec.java b/src/main/java/com/squareup/javapoet/TypeSpec.java index 6cd2ea636..feda7fc77 100644 --- a/src/main/java/com/squareup/javapoet/TypeSpec.java +++ b/src/main/java/com/squareup/javapoet/TypeSpec.java @@ -473,6 +473,12 @@ public Builder addModifiers(Modifier... modifiers) { Collections.addAll(this.modifiers, modifiers); return this; } + public Builder addModifiers(Iterable modifiers){ + for (Modifier modifier : modifiers){ + this.modifiers.add(modifier); + } + return this; + } public Builder addTypeVariables(Iterable typeVariables) { checkArgument(typeVariables != null, "typeVariables == null"); diff --git a/src/test/java/com/squareup/javapoet/TypeSpecTest.java b/src/test/java/com/squareup/javapoet/TypeSpecTest.java index 759b99d2d..54ee986ec 100644 --- a/src/test/java/com/squareup/javapoet/TypeSpecTest.java +++ b/src/test/java/com/squareup/javapoet/TypeSpecTest.java @@ -2000,6 +2000,16 @@ private String toString(TypeSpec typeSpec) { } } + @Test public void nullModifiersListAdditions(){ + try { + TypeSpec.classBuilder("Taco").addModifiers((Modifier[]) null).build(); + fail(); + } catch(IllegalArgumentException expected) { + assertThat(expected.getMessage()) + .isEqualTo("modifiers contain null"); + } + } + @Test public void nullTypeVariablesAddition() { try { TypeSpec.classBuilder("Taco").addTypeVariables(null); From 17016cbcfa48ee27ed20cd9230aa1cc774ccec65 Mon Sep 17 00:00:00 2001 From: Sisyphus001 <74189127+BigJIU@users.noreply.github.com> Date: Wed, 20 Apr 2022 10:36:23 +0800 Subject: [PATCH 2/3] Update TypeSpecTest.java --- src/test/java/com/squareup/javapoet/TypeSpecTest.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/test/java/com/squareup/javapoet/TypeSpecTest.java b/src/test/java/com/squareup/javapoet/TypeSpecTest.java index 54ee986ec..d6ba79c85 100644 --- a/src/test/java/com/squareup/javapoet/TypeSpecTest.java +++ b/src/test/java/com/squareup/javapoet/TypeSpecTest.java @@ -2000,6 +2000,14 @@ private String toString(TypeSpec typeSpec) { } } + @Test public void ModifiersListAdditions(){ + Modifier[] modifiers = {Modifier.PUBLIC, Modifier.FINAL}; + TypeSpec.Builder builder = + TypeSpec.classBuilder("Taco").addModifiers(modifiers); + + assertThat(builder.build().modifiers).containsExactly(Modifier.PUBLIC, Modifier.FINAL); + } + @Test public void nullModifiersListAdditions(){ try { TypeSpec.classBuilder("Taco").addModifiers((Modifier[]) null).build(); From d467290aaf3868d2c1645af0c495019a00edf69f Mon Sep 17 00:00:00 2001 From: Sisyphus001 <74189127+BigJIU@users.noreply.github.com> Date: Sun, 29 May 2022 15:07:01 +0800 Subject: [PATCH 3/3] Add Class Description --- src/main/java/com/squareup/javapoet/TypeSpec.java | 7 +++++++ .../java/com/squareup/javapoet/TypeSpecTest.java | 12 ++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/squareup/javapoet/TypeSpec.java b/src/main/java/com/squareup/javapoet/TypeSpec.java index feda7fc77..e112fe8c4 100644 --- a/src/main/java/com/squareup/javapoet/TypeSpec.java +++ b/src/main/java/com/squareup/javapoet/TypeSpec.java @@ -473,7 +473,14 @@ public Builder addModifiers(Modifier... modifiers) { Collections.addAll(this.modifiers, modifiers); return this; } + /** + * This is addModifier version for Iterable input. + + * @return Builder + */ + //CS304 Issue link: https://github.com/square/javapoet/issues/841 public Builder addModifiers(Iterable modifiers){ + checkNotNull(modifiers, "modifiers == null"); for (Modifier modifier : modifiers){ this.modifiers.add(modifier); } diff --git a/src/test/java/com/squareup/javapoet/TypeSpecTest.java b/src/test/java/com/squareup/javapoet/TypeSpecTest.java index d6ba79c85..9d1e0aad6 100644 --- a/src/test/java/com/squareup/javapoet/TypeSpecTest.java +++ b/src/test/java/com/squareup/javapoet/TypeSpecTest.java @@ -1999,7 +1999,7 @@ private String toString(TypeSpec typeSpec) { .isEqualTo("modifiers contain null"); } } - +//CS304 (manually written) Issue link: https://github.com/square/javapoet/issues/841 @Test public void ModifiersListAdditions(){ Modifier[] modifiers = {Modifier.PUBLIC, Modifier.FINAL}; TypeSpec.Builder builder = @@ -2007,14 +2007,14 @@ private String toString(TypeSpec typeSpec) { assertThat(builder.build().modifiers).containsExactly(Modifier.PUBLIC, Modifier.FINAL); } - +//CS304 (manually written) Issue link: https://github.com/square/javapoet/issues/841 @Test public void nullModifiersListAdditions(){ try { - TypeSpec.classBuilder("Taco").addModifiers((Modifier[]) null).build(); + TypeSpec.classBuilder("Taco") + .addModifiers((Iterable) null).build(); fail(); - } catch(IllegalArgumentException expected) { - assertThat(expected.getMessage()) - .isEqualTo("modifiers contain null"); + } catch (NullPointerException e) { + assertThat(e.getMessage()).isEqualTo("modifiers == null"); } }