|
14 | 14 | import java.util.Optional;
|
15 | 15 |
|
16 | 16 | import javax.lang.model.element.Element;
|
| 17 | +import javax.lang.model.element.PackageElement; |
17 | 18 | import javax.tools.JavaFileObject;
|
18 | 19 |
|
19 | 20 | /** Write the source code for the bean. */
|
@@ -46,22 +47,23 @@ static void write(Element element) {
|
46 | 47 | private EventPublisherWriter(Element element) {
|
47 | 48 | final var asType = element.asType();
|
48 | 49 | this.utype = UType.parse(asType).param0();
|
49 |
| - this.packageName = APContext.elements() |
50 |
| - .getPackageOf(APContext.typeElement(utype.mainType())) |
51 |
| - .getQualifiedName() |
52 |
| - .toString() |
| 50 | + this.packageName = Optional.ofNullable(APContext.typeElement(utype.mainType())) |
| 51 | + .map(APContext.elements()::getPackageOf) |
| 52 | + .map(PackageElement::getQualifiedName) |
| 53 | + .map(Object::toString) |
| 54 | + .orElse("error.notype") |
53 | 55 | .replaceFirst("java.", "")
|
54 | 56 | + ".events";
|
55 |
| - qualifier = Optional.ofNullable(Util.named(element)).orElse(""); |
| 57 | + |
| 58 | + this.qualifier = Optional.ofNullable(Util.named(element)).orElse(""); |
56 | 59 | var className =
|
57 | 60 | packageName
|
58 | 61 | + "."
|
59 | 62 | + (qualifier.isEmpty() ? "" : "Qualified")
|
60 | 63 | + Util.shortName(utype).replace(".", "_")
|
61 | 64 | + "$Publisher";
|
62 | 65 |
|
63 |
| - originName = getUniqueClassName(className, 0); |
64 |
| - |
| 66 | + this.originName = getUniqueClassName(className, 0); |
65 | 67 | if (GENERATED_PUBLISHERS.containsKey(originName)) {
|
66 | 68 | //in super niche situations when compiling the same module, we need to tell avaje that these types already exist
|
67 | 69 | //got this when running both my eclipse compiler and then the terminal build
|
|
0 commit comments