Skip to content

Commit bd70d8a

Browse files
committed
ignore BeanField
1 parent 7b40c9a commit bd70d8a

File tree

4 files changed

+25
-0
lines changed

4 files changed

+25
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package io.avaje.http.api;
2+
3+
import static java.lang.annotation.ElementType.FIELD;
4+
import static java.lang.annotation.RetentionPolicy.SOURCE;
5+
6+
import java.lang.annotation.Retention;
7+
import java.lang.annotation.Target;
8+
9+
/** Mark a field on a BeanParam/FormParam class as not a request parameter of any kind */
10+
@Target(FIELD)
11+
@Retention(SOURCE)
12+
public @interface IgnoreBeanField {}

http-generator-core/src/main/java/io/avaje/http/generator/core/BeanParamReader.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ private void read() {
4040
}
4141

4242
private void readField(Element enclosedElement) {
43+
44+
if (IgnoreBeanFieldPrism.isPresent(enclosedElement)) {
45+
return;
46+
}
4347
FieldReader field = new FieldReader(enclosedElement, defaultParamType);
4448
fieldMap.put(field.varName(), field);
4549
}

http-generator-core/src/main/java/io/avaje/http/generator/core/package-info.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/** Generate the prisms to access annotation info */
22
@GeneratePrism(value = io.avaje.http.api.Controller.class, publicAccess = true)
33
@GeneratePrism(value = io.avaje.http.api.BeanParam.class, publicAccess = true)
4+
@GeneratePrism(value = io.avaje.http.api.IgnoreBeanField.class, publicAccess = true)
45
@GeneratePrism(value = io.avaje.http.api.QueryParam.class, publicAccess = true)
56
@GeneratePrism(value = io.avaje.http.api.Client.class, publicAccess = true)
67
@GeneratePrism(value = io.avaje.http.api.Cookie.class, publicAccess = true)

tests/test-javalin-jsonb/src/main/java/org/example/myapp/web/GetBeanForm.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99
import javax.validation.constraints.Size;
1010

1111
import io.avaje.http.api.Header;
12+
import io.avaje.http.api.IgnoreBeanField;
1213
import io.avaje.http.api.QueryParam;
1314
import io.avaje.jsonb.Json;
15+
import io.avaje.jsonb.Json.Ignore;
1416

1517
@Json
1618
@Valid
@@ -30,6 +32,12 @@ public class GetBeanForm {
3032

3133
@QueryParam private Set<ServerType> type;
3234

35+
@Ignore @IgnoreBeanField private String ignored;
36+
37+
public String getIgnored() {
38+
return ignored;
39+
}
40+
3341
public String getName() {
3442
return name;
3543
}

0 commit comments

Comments
 (0)