Skip to content

Commit 8fb2deb

Browse files
committed
generate public component
1 parent a479685 commit 8fb2deb

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

compiler/src/main/java/io/jbock/simple/processor/writing/ComponentImpl.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
import javax.annotation.processing.Generated;
2121
import javax.lang.model.element.ExecutableElement;
22+
import javax.lang.model.element.Modifier;
2223
import javax.lang.model.type.TypeMirror;
2324
import java.util.Collection;
2425
import java.util.Map;
@@ -48,6 +49,8 @@ private ComponentImpl(
4849

4950
TypeSpec generate() {
5051
TypeSpec.Builder spec = TypeSpec.classBuilder(component.generatedClass()).addSuperinterface(component.element().asType());
52+
spec.addModifiers(component.element().getModifiers().stream()
53+
.filter(m -> m == PUBLIC || m == PROTECTED).toArray(Modifier[]::new));
5154
MethodSpec.Builder constructor = MethodSpec.constructorBuilder().addModifiers(PRIVATE);
5255
for (NamedBinding namedBinding : sorted.values()) {
5356
Binding b = namedBinding.binding();
@@ -78,6 +81,8 @@ TypeSpec generate() {
7881
component.factoryElement().ifPresent(factory -> {
7982
spec.addMethod(MethodSpec.methodBuilder("factory")
8083
.addModifiers(STATIC)
84+
.addModifiers(component.element().getModifiers().stream()
85+
.filter(m -> m == PUBLIC).toArray(Modifier[]::new))
8186
.returns(TypeName.get(factory.element().asType()))
8287
.addStatement("return new $T()", factory.generatedClass())
8388
.build());
@@ -86,6 +91,8 @@ TypeSpec generate() {
8691
component.builderElement().ifPresent(builder -> {
8792
spec.addMethod(MethodSpec.methodBuilder("builder")
8893
.addModifiers(STATIC)
94+
.addModifiers(component.element().getModifiers().stream()
95+
.filter(m -> m == PUBLIC).toArray(Modifier[]::new))
8996
.returns(TypeName.get(builder.element().asType()))
9097
.addStatement("return new $T()", builder.generatedClass())
9198
.build());

compiler/src/test/java/io/jbock/simple/processor/BuilderTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ void factoryParameter() {
142142
" }",
143143
"",
144144
" @Component",
145-
" interface AComponent {",
145+
" public interface AComponent {",
146146
" A getA();",
147147
"",
148148
" @Component.Builder",
@@ -158,7 +158,7 @@ void factoryParameter() {
158158
.containsLines(
159159
"package test;",
160160
"",
161-
"final class TestClass_AComponent_Impl implements TestClass.AComponent {",
161+
"public final class TestClass_AComponent_Impl implements TestClass.AComponent {",
162162
" private final TestClass.A a;",
163163
"",
164164
" private TestClass_AComponent_Impl(String s) {",
@@ -170,7 +170,7 @@ void factoryParameter() {
170170
" return a;",
171171
" }",
172172
"",
173-
" static TestClass.AComponent.Builder builder() {",
173+
" public static TestClass.AComponent.Builder builder() {",
174174
" return new Builder_Impl();",
175175
" }",
176176
"",

0 commit comments

Comments
 (0)