Java 类javax.lang.model.util.SimpleElementVisitor9 实例源码

项目:openjdk-jdk10    文件:Utils.java   
public boolean isSpecified(Element e) {
    if (specifiedVisitor == null) {
        specifiedVisitor = new SimpleElementVisitor9<Boolean, Void>() {
            @Override
            public Boolean visitModule(ModuleElement e, Void p) {
                return configuration.getSpecifiedModuleElements().contains(e);
            }

            @Override
            public Boolean visitPackage(PackageElement e, Void p) {
                return configuration.getSpecifiedPackageElements().contains(e);
            }

            @Override
            public Boolean visitType(TypeElement e, Void p) {
                return configuration.getSpecifiedTypeElements().contains(e);
            }

            @Override
            protected Boolean defaultAction(Element e, Void p) {
                return false;
            }
        };
    }
    return specifiedVisitor.visit(e);
}
项目:openjdk9    文件:DocEnv.java   
public boolean shouldDocument(Element e) {
    if (shouldDocumentVisitor == null) {
        shouldDocumentVisitor = new SimpleElementVisitor9<Boolean, Void>() {

        @Override @DefinedBy(Api.LANGUAGE_MODEL)
        public Boolean visitType(TypeElement e, Void p) {
            return shouldDocument((ClassSymbol)e);
        }

        @Override @DefinedBy(Api.LANGUAGE_MODEL)
        public Boolean visitVariable(VariableElement e, Void p) {
            return shouldDocument((VarSymbol)e);
        }

        @Override @DefinedBy(Api.LANGUAGE_MODEL)
        public Boolean visitExecutable(ExecutableElement e, Void p) {
            return shouldDocument((MethodSymbol)e);
        }
    };
    }
    return shouldDocumentVisitor.visit(e);
}
项目:openjdk-jdk10    文件:ElementsTable.java   
/**
 * Returns true if the element is selected, by applying
 * the access filter checks. Special treatment is applied to
 * types, for a top level type the access filter applies completely,
 * however if is a nested type then it is allowed either  if
 * the enclosing is a static or the enclosing is also selected.
 *
 * @param e the element to be checked
 * @return true if the element is visible
 */
public boolean isSelected(Element e) {
    if (toolEnv.isSynthetic((Symbol) e)) {
        return false;
    }
    if (visibleElementVisitor == null) {
        visibleElementVisitor = new SimpleElementVisitor9<Boolean, Void>() {
            @Override
            public Boolean visitType(TypeElement e, Void p) {
                if (!accessFilter.checkModifier(e)) {
                    return false; // it is not allowed
                }
                Element encl = e.getEnclosingElement();

                // check if nested
                if (encl.getKind() == ElementKind.PACKAGE)
                    return true; // top-level class, allow it

                // is enclosed static
                if (encl.getModifiers().contains(Modifier.STATIC))
                    return true; // allowed

                // check the enclosing
                return visit(encl);
            }

            @Override
            protected Boolean defaultAction(Element e, Void p) {
                return accessFilter.checkModifier(e);
            }

            @Override
            public Boolean visitUnknown(Element e, Void p) {
                throw new AssertionError("unkown element: " + p);
            }
        };
    }
    return visibleElementVisitor.visit(e);
}
项目:openjdk-jdk10    文件:Utils.java   
private boolean shouldDocument(Element e) {
    if (shouldDocumentVisitor == null) {
        shouldDocumentVisitor = new SimpleElementVisitor9<Boolean, Void>() {
            private boolean hasSource(TypeElement e) {
                return configuration.docEnv.getFileKind(e) ==
                        javax.tools.JavaFileObject.Kind.SOURCE;
            }

            // handle types
            @Override
            public Boolean visitType(TypeElement e, Void p) {
                return configuration.docEnv.isSelected(e) && hasSource(e);
            }

            // handle everything else
            @Override
            protected Boolean defaultAction(Element e, Void p) {
                return configuration.docEnv.isSelected(e);
            }

            @Override
            public Boolean visitUnknown(Element e, Void p) {
                throw new AssertionError("unkown element: " + p);
            }
        };
    }
    return shouldDocumentVisitor.visit(e);
}
项目:openjdk-jdk10    文件:Utils.java   
private String getSimpleName0(Element e) {
    if (snvisitor == null) {
        snvisitor = new SimpleElementVisitor9<String, Void>() {
            @Override
            public String visitModule(ModuleElement e, Void p) {
                return e.getQualifiedName().toString();  // temp fix for 8182736
            }

            @Override
            public String visitType(TypeElement e, Void p) {
                StringBuilder sb = new StringBuilder(e.getSimpleName());
                Element enclosed = e.getEnclosingElement();
                while (enclosed != null
                        && (enclosed.getKind().isClass() || enclosed.getKind().isInterface())) {
                    sb.insert(0, enclosed.getSimpleName() + ".");
                    enclosed = enclosed.getEnclosingElement();
                }
                return sb.toString();
            }

            @Override
            public String visitExecutable(ExecutableElement e, Void p) {
                if (e.getKind() == CONSTRUCTOR || e.getKind() == STATIC_INIT) {
                    return e.getEnclosingElement().getSimpleName().toString();
                }
                return e.getSimpleName().toString();
            }

            @Override
            protected String defaultAction(Element e, Void p) {
                return e.getSimpleName().toString();
            }
        };
    }
    return snvisitor.visit(e);
}
项目:openjdk9    文件:Utils.java   
private String getSimpleName0(Element e) {
    if (snvisitor == null) {
        snvisitor = new SimpleElementVisitor9<String, Void>() {
            @Override @DefinedBy(Api.LANGUAGE_MODEL)
            public String visitType(TypeElement e, Void p) {
                StringBuilder sb = new StringBuilder(e.getSimpleName());
                Element enclosed = e.getEnclosingElement();
                while (enclosed != null
                        && (enclosed.getKind().isClass() || enclosed.getKind().isInterface())) {
                    sb.insert(0, enclosed.getSimpleName() + ".");
                    enclosed = enclosed.getEnclosingElement();
                }
                return sb.toString();
            }

            @Override @DefinedBy(Api.LANGUAGE_MODEL)
            public String visitExecutable(ExecutableElement e, Void p) {
                if (e.getKind() == CONSTRUCTOR || e.getKind() == STATIC_INIT) {
                    return e.getEnclosingElement().getSimpleName().toString();
                }
                return e.getSimpleName().toString();
            }

            @Override @DefinedBy(Api.LANGUAGE_MODEL)
            protected String defaultAction(Element e, Void p) {
                return e.getSimpleName().toString();
            }
        };
    }
    return snvisitor.visit(e);
}
项目:openjdk9    文件:DocEnv.java   
public boolean isIncluded(Element e) {
    if (e == null) {
        return false;
    }
    if (includedVisitor == null) {
        includedVisitor = new SimpleElementVisitor9<Boolean, Void>() {
            @Override @DefinedBy(Api.LANGUAGE_MODEL)
            public Boolean visitType(TypeElement e, Void p) {
                if (includedSet.contains(e)) {
                    return true;
                }
                if (shouldDocument(e)) {
                    // Class is nameable from top-level and
                    // the class and all enclosing classes
                    // pass the modifier filter.
                    PackageElement pkg = elements.getPackageOf(e);
                    if (includedSet.contains(pkg)) {
                        setIncluded(e);
                        return true;
                    }
                    Element enclosing = e.getEnclosingElement();
                    if (enclosing != null && includedSet.contains(enclosing)) {
                        setIncluded(e);
                        return true;
                    }
                }
                return false;
            }

            @Override @DefinedBy(Api.LANGUAGE_MODEL)
            public Boolean visitPackage(PackageElement e, Void p) {
                return includedSet.contains(e);
            }

            @Override @DefinedBy(Api.LANGUAGE_MODEL)
            public Boolean visitUnknown(Element e, Void p) {
                throw new AssertionError("unknown element: " + e);
            }

            @Override @DefinedBy(Api.LANGUAGE_MODEL)
            public Boolean defaultAction(Element e, Void p) {
                return visit(e.getEnclosingElement()) && shouldDocument(e);
            }
        };
    }
    return includedVisitor.visit(e);
}