Skip to content

Commit 0bc84bd

Browse files
committed
refactoring
1 parent 18e1edd commit 0bc84bd

File tree

5 files changed

+18
-8
lines changed

5 files changed

+18
-8
lines changed

compiler/src/main/java/io/jbock/simple/processor/binding/InjectBindingFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import java.util.stream.Collectors;
1717

1818
import static io.jbock.simple.processor.util.Printing.INDENT;
19-
import static io.jbock.simple.processor.util.Printing.elementToString;
19+
import static io.jbock.simple.processor.util.Printing.bindingElementToString;
2020
import static io.jbock.simple.processor.util.Visitors.EXECUTABLE_ELEMENT_VISITOR;
2121
import static io.jbock.simple.processor.util.Visitors.TYPE_ELEMENT_VISITOR;
2222

@@ -53,7 +53,7 @@ public Map<Key, InjectBinding> injectBindings(TypeElement typeElement) {
5353
if (previous != null) {
5454
throw new ValidationFailure("This binding clashes with:\n"
5555
+ INDENT
56-
+ elementToString(previous.element())
56+
+ bindingElementToString(previous.element())
5757
+ ".\n"
5858
+ "Consider a (different) qualifier", b.element());
5959
}

compiler/src/main/java/io/jbock/simple/processor/graph/CyclePrinter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import static io.jbock.simple.processor.util.Printing.DOUBLE_INDENT;
1414
import static io.jbock.simple.processor.util.Printing.INDENT;
15-
import static io.jbock.simple.processor.util.Printing.elementToString;
15+
import static io.jbock.simple.processor.util.Printing.bindingElementToString;
1616

1717
final class CyclePrinter {
1818

@@ -55,11 +55,11 @@ private String cycleMessage(List<Edge> cycle) {
5555
if (destination instanceof ProviderBinding) {
5656
ProviderBinding b = (ProviderBinding) destination;
5757
message.add(INDENT + edge.source().key().typeName() + " is injected at");
58-
message.add(DOUBLE_INDENT + elementToString(b.sourceBinding().element()));
58+
message.add(DOUBLE_INDENT + bindingElementToString(b.sourceBinding().element()));
5959
continue;
6060
}
6161
message.add(INDENT + edge.source().key().typeName() + " is injected at");
62-
message.add(DOUBLE_INDENT + elementToString(destination.element()));
62+
message.add(DOUBLE_INDENT + bindingElementToString(destination.element()));
6363
}
6464
return String.join("\n", message);
6565
}

compiler/src/main/java/io/jbock/simple/processor/graph/MissingBindingPrinter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
import static io.jbock.simple.processor.util.Printing.DOUBLE_INDENT;
1313
import static io.jbock.simple.processor.util.Printing.INDENT;
14-
import static io.jbock.simple.processor.util.Printing.elementToString;
14+
import static io.jbock.simple.processor.util.Printing.bindingElementToString;
1515

1616
public final class MissingBindingPrinter {
1717

@@ -47,6 +47,6 @@ private String format(DependencyRequest request, String verb) {
4747
+ verb
4848
+ " at\n"
4949
+ DOUBLE_INDENT
50-
+ elementToString(request.requestElement());
50+
+ bindingElementToString(request.requestElement());
5151
}
5252
}

compiler/src/main/java/io/jbock/simple/processor/step/InjectStep.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@
1010
import javax.annotation.processing.Messager;
1111
import javax.lang.model.element.Element;
1212
import javax.lang.model.element.ExecutableElement;
13+
import javax.lang.model.element.VariableElement;
1314
import java.util.List;
1415
import java.util.Map;
1516
import java.util.Set;
1617
import java.util.stream.Collectors;
1718

1819
import static javax.lang.model.util.ElementFilter.constructorsIn;
20+
import static javax.lang.model.util.ElementFilter.fieldsIn;
1921
import static javax.lang.model.util.ElementFilter.methodsIn;
2022

2123
public class InjectStep implements Step {
@@ -58,9 +60,17 @@ public Set<? extends Element> process(Map<String, Set<Element>> elementsByAnnota
5860
executableElementValidator.validate(method);
5961
validator.validateStaticMethod(method);
6062
}
63+
checkFields(elements);
6164
} catch (ValidationFailure f) {
6265
f.writeTo(messager);
6366
}
6467
return Set.of();
6568
}
69+
70+
private void checkFields(List<Element> elements) {
71+
List<VariableElement> fields = fieldsIn(elements);
72+
for (VariableElement field : fields) {
73+
throw new ValidationFailure("Field injection is not supported", field);
74+
}
75+
}
6676
}

compiler/src/main/java/io/jbock/simple/processor/util/Printing.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ public final class Printing {
1515
public static final String INDENT = " ";
1616
public static final String DOUBLE_INDENT = INDENT + INDENT;
1717

18-
public static String elementToString(Element element) {
18+
public static String bindingElementToString(Element element) {
1919
if (element.getKind() == ElementKind.PARAMETER) {
2020
return Visitors.PARAMETER_VISITOR.visit(element).getSimpleName().toString();
2121
}

0 commit comments

Comments
 (0)