aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaishav Gandhi <shaishgandhi@gmail.com>2019-02-04 07:06:39 -0800
committerEgor Andreevich <andreevich.egor@gmail.com>2019-02-04 10:06:39 -0500
commit53cfc840f2b860e88e8b0aecd7026901ee76399e (patch)
treec4474999a672be218705475269642872bae49b6e
parent791cb9631ab76fc07bf8825f23464ecd616acccc (diff)
downloadjavapoet-53cfc840f2b860e88e8b0aecd7026901ee76399e.tar.gz
Allow setting method name on MethodSpec.Builder (#702)
* Allow setting method name on MethodSpec.Builder * Fix indentation
-rw-r--r--src/main/java/com/squareup/javapoet/MethodSpec.java7
-rw-r--r--src/test/java/com/squareup/javapoet/MethodSpecTest.java13
2 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/com/squareup/javapoet/MethodSpec.java b/src/main/java/com/squareup/javapoet/MethodSpec.java
index 0bfdd1b..850e537 100644
--- a/src/main/java/com/squareup/javapoet/MethodSpec.java
+++ b/src/main/java/com/squareup/javapoet/MethodSpec.java
@@ -292,7 +292,7 @@ public final class MethodSpec {
}
public static final class Builder {
- private final String name;
+ private String name;
private final CodeBlock.Builder javadoc = CodeBlock.builder();
private final List<AnnotationSpec> annotations = new ArrayList<>();
@@ -306,11 +306,16 @@ public final class MethodSpec {
private CodeBlock defaultValue;
private Builder(String name) {
+ setName(name);
+ }
+
+ public Builder setName(String name) {
checkNotNull(name, "name == null");
checkArgument(name.equals(CONSTRUCTOR) || SourceVersion.isName(name),
"not a valid name: %s", name);
this.name = name;
this.returnType = name.equals(CONSTRUCTOR) ? null : TypeName.VOID;
+ return this;
}
public Builder addJavadoc(String format, Object... args) {
diff --git a/src/test/java/com/squareup/javapoet/MethodSpecTest.java b/src/test/java/com/squareup/javapoet/MethodSpecTest.java
index c6e05c6..b2c7106 100644
--- a/src/test/java/com/squareup/javapoet/MethodSpecTest.java
+++ b/src/test/java/com/squareup/javapoet/MethodSpecTest.java
@@ -37,6 +37,7 @@ import org.junit.Test;
import static com.google.common.collect.Iterables.getOnlyElement;
import static com.google.common.truth.Truth.assertThat;
+import static com.squareup.javapoet.MethodSpec.CONSTRUCTOR;
import static javax.lang.model.util.ElementFilter.methodsIn;
import static org.junit.Assert.fail;
@@ -355,4 +356,16 @@ public final class MethodSpecTest {
assertThat(e.getMessage()).isEqualTo("modifiers == null");
}
}
+
+ @Test public void modifyMethodName() {
+ MethodSpec methodSpec = MethodSpec.methodBuilder("initialMethod")
+ .build()
+ .toBuilder()
+ .setName("revisedMethod")
+ .build();
+
+ assertThat(methodSpec.toString()).isEqualTo(""
+ + "void revisedMethod() {\n"
+ + "}\n");
+ }
}