You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jt...@apache.org on 2019/11/21 07:13:51 UTC
[netbeans-html4j] branch master updated: Enumerate @Model
annotations first to be able to guess their package
This is an automated email from the ASF dual-hosted git repository.
jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-html4j.git
The following commit(s) were added to refs/heads/master by this push:
new bafea61 Enumerate @Model annotations first to be able to guess their package
bafea61 is described below
commit bafea61ae1607afb6be73127f1c812aa25786a54
Author: Duke Script <se...@dukescript.com>
AuthorDate: Thu Nov 21 08:13:45 2019 +0100
Enumerate @Model annotations first to be able to guess their package
---
.../netbeans/html/json/impl/ModelProcessor.java | 29 +++++++++++++++++++++-
1 file changed, 28 insertions(+), 1 deletion(-)
diff --git a/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java b/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java
index 25c0a0a..7e342d3 100644
--- a/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java
+++ b/json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java
@@ -94,11 +94,24 @@ import org.openide.util.lookup.ServiceProvider;
public final class ModelProcessor extends AbstractProcessor {
private static final Logger LOG = Logger.getLogger(ModelProcessor.class.getName());
private final Map<Element,String> models = new WeakHashMap<Element,String>();
+ private final Map<String,List<String>> packages = new HashMap<String,List<String>>();
private final Map<Element,Prprt[]> verify = new WeakHashMap<Element,Prprt[]>();
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
boolean ok = true;
for (Element e : roundEnv.getElementsAnnotatedWith(Model.class)) {
+ Model m = e.getAnnotation(Model.class);
+ if (m == null) {
+ continue;
+ }
+ List<String> pkgList = packages.get(m.className());
+ if (pkgList == null) {
+ pkgList = new ArrayList<String>();
+ packages.put(m.className(), pkgList);
+ }
+ pkgList.add(findPkgName(e));
+ }
+ for (Element e : roundEnv.getElementsAnnotatedWith(Model.class)) {
if (!processModel(e)) {
ok = false;
}
@@ -139,6 +152,7 @@ public final class ModelProcessor extends AbstractProcessor {
}
}
verify.clear();
+ packages.clear();
}
return ok;
}
@@ -1869,7 +1883,20 @@ public final class ModelProcessor extends AbstractProcessor {
if (e.getKind() == ElementKind.CLASS && tm.getKind() == TypeKind.ERROR) {
isModel[0] = true;
isEnum[0] = false;
- return e.getSimpleName().toString();
+ final String simpleName = e.getSimpleName().toString();
+ List<String> knownPackages = packages.get(simpleName);
+ if (knownPackages != null && !knownPackages.isEmpty()) {
+ String referencingPkg = findPkgName(p.e);
+ String foundPkg = null;
+ for (String pkg : knownPackages) {
+ foundPkg = pkg;
+ if (pkg.equals(referencingPkg)) {
+ return simpleName;
+ }
+ }
+ return foundPkg + '.' + simpleName;
+ }
+ return simpleName;
}
TypeMirror enm = processingEnv.getElementUtils().getTypeElement("java.lang.Enum").asType();
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists