aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShaishav Gandhi <shaishgandhi@gmail.com>2018-10-03 19:57:36 -0700
committerJesse Wilson <jesse@swank.ca>2018-10-03 22:57:36 -0400
commitc93bfa88c30940d4f9bda88cac322ebbb83703a6 (patch)
treee2534eee6823a54973710d38f130b8668c5acae3 /src
parent527c397d2987e44c4422412b8ab3ae5bca07db06 (diff)
downloadjavapoet-c93bfa88c30940d4f9bda88cac322ebbb83703a6.tar.gz
Check parameter Modifiers (#678)
* Check parameter modifiers for non final modifiers Signed-off-by: shaishavgandhi05 <shaishgandhi@gmail.com> * Add extra line Signed-off-by: shaishavgandhi05 <shaishgandhi@gmail.com> * Fix formatting Signed-off-by: shaishavgandhi05 <shaishgandhi@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/squareup/javapoet/ParameterSpec.java3
-rw-r--r--src/test/java/com/squareup/javapoet/ParameterSpecTest.java18
2 files changed, 20 insertions, 1 deletions
diff --git a/src/main/java/com/squareup/javapoet/ParameterSpec.java b/src/main/java/com/squareup/javapoet/ParameterSpec.java
index 63da3f2..e30cb0f 100644
--- a/src/main/java/com/squareup/javapoet/ParameterSpec.java
+++ b/src/main/java/com/squareup/javapoet/ParameterSpec.java
@@ -160,6 +160,9 @@ public final class ParameterSpec {
public Builder addModifiers(Iterable<Modifier> modifiers) {
checkNotNull(modifiers, "modifiers == null");
for (Modifier modifier : modifiers) {
+ if (!modifier.equals(Modifier.FINAL)) {
+ throw new IllegalStateException("unexpected parameter modifier: " + modifier);
+ }
this.modifiers.add(modifier);
}
return this;
diff --git a/src/test/java/com/squareup/javapoet/ParameterSpecTest.java b/src/test/java/com/squareup/javapoet/ParameterSpecTest.java
index 7ae4502..f66850b 100644
--- a/src/test/java/com/squareup/javapoet/ParameterSpecTest.java
+++ b/src/test/java/com/squareup/javapoet/ParameterSpecTest.java
@@ -15,6 +15,8 @@
*/
package com.squareup.javapoet;
+import java.util.ArrayList;
+import java.util.List;
import org.junit.Test;
import static com.google.common.truth.Truth.assertThat;
@@ -45,4 +47,18 @@ public class ParameterSpecTest {
.isEqualTo("annotationSpecs == null");
}
}
-} \ No newline at end of file
+
+ @Test public void addNonFinalModifier() {
+ List<Modifier> modifiers = new ArrayList<>();
+ modifiers.add(Modifier.FINAL);
+ modifiers.add(Modifier.PUBLIC);
+
+ try {
+ ParameterSpec.builder(int.class, "foo").addModifiers(modifiers);
+ fail();
+ } catch (Exception e) {
+ assertThat(e.getMessage())
+ .isEqualTo("unexpected parameter modifier: public");
+ }
+ }
+}