diff --git a/validator-generator/src/main/java/io/avaje/validation/generator/AdapterName.java b/validator-generator/src/main/java/io/avaje/validation/generator/AdapterName.java index fcc6a9b4..9c8f1165 100644 --- a/validator-generator/src/main/java/io/avaje/validation/generator/AdapterName.java +++ b/validator-generator/src/main/java/io/avaje/validation/generator/AdapterName.java @@ -1,5 +1,8 @@ package io.avaje.validation.generator; +import java.util.Optional; + +import javax.lang.model.element.Element; import javax.lang.model.element.TypeElement; final class AdapterName { @@ -24,7 +27,7 @@ final class AdapterName { this.adapterPackage = originPackage; } else { this.adapterPackage = - ProcessingContext.isImported(type) ? originPackage + ".valid" : originPackage; + ProcessingContext.isImported(type) ? importedPkg(originPackage) : originPackage; } this.fullName = adapterPackage.isBlank() @@ -51,4 +54,13 @@ String adapterPackage() { String fullName() { return fullName; } + + private static String importedPkg(String originPackage) { + return Optional.ofNullable(APContext.getProjectModuleElement()) + .filter(m -> !m.isUnnamed()) + .map(Element::getEnclosedElements) + .map(l -> l.get(0).getSimpleName().toString()) + .orElse(originPackage) + + ".valid"; + } }