private String qName(Name name) { if (name.getQualifier().isPresent()) { return qName(name.getQualifier().get()) + "." + name.getId(); } else { return name.getId(); } }
private String qName(Name name) { if (name.getQualifier().isPresent()) { return qName(name.getQualifier().get()) + "." + name.getId(); } else { return name.getId(); } }
private String qName(Name name) { if (name.getQualifier().isPresent()) { return qName(name.getQualifier().get()) + "." + name.getId(); } else { return name.getId(); } }
/** {@inheritDoc} */ @Override public void visit(ImportDeclaration n, ClassBuilder builder) { super.visit(n, builder); String typeName = n.getName().getIdentifier(); String packageName = n.getName().getQualifier().map(Name::asString).orElse(""); imports.put(typeName, packageName); }
private static boolean isSyntacticallyAPackageName(Node name) { // A name is syntactically classified as a PackageName in these contexts: // // 1. To the right of exports or opens in a module declaration if (whenParentIs(ModuleExportsDirective.class, name, (p, c) -> p.getName() == name)) { return true; } if (whenParentIs(ModuleOpensDirective.class, name, (p, c) -> p.getName() == name)) { return true; } // 2. To the left of the "." in a qualified PackageName if (whenParentIs(Name.class, name, (p, c) -> p.getQualifier().isPresent() && p.getQualifier().get() == name && isSyntacticallyAPackageName(p))) { return true; } return false; }
@Override public List<ResolvedFieldDeclaration> fieldsExposedToChild(Node child) { List<ResolvedFieldDeclaration> res = new LinkedList<>(); // Consider the static imports for static fields for (ImportDeclaration importDeclaration : wrappedNode.getImports()) { if (importDeclaration.isStatic()) { Name typeNameAsNode = importDeclaration.isAsterisk() ? importDeclaration.getName() : importDeclaration.getName().getQualifier().get(); String typeName = typeNameAsNode.asString(); ResolvedReferenceTypeDeclaration typeDeclaration = typeSolver.solveType(typeName); res.addAll(typeDeclaration.getAllFields().stream() .filter(f -> f.isStatic()) .filter(f -> importDeclaration.isAsterisk() || importDeclaration.getName().getIdentifier().equals(f.getName())) .collect(Collectors.toList())); } } return res; }
if (!importDecl.isAsterisk()) { String qName = importDecl.getNameAsString(); boolean defaultPackage = !importDecl.getName().getQualifier().isPresent(); boolean found = !defaultPackage && importDecl.getName().getIdentifier().equals(name); if (!found) {
if (!importDecl.isAsterisk()) { String qName = importDecl.getNameAsString(); boolean defaultPackage = !importDecl.getName().getQualifier().isPresent(); boolean found = !defaultPackage && importDecl.getName().getIdentifier().equals(name); if (!found) {
if (!importDecl.isAsterisk()) { String qName = importDecl.getNameAsString(); boolean defaultPackage = !importDecl.getName().getQualifier().isPresent(); boolean found = !defaultPackage && importDecl.getName().getIdentifier().equals(name); if (!found) {
throw new IllegalArgumentException("We cannot understand the role of a name if it has no parent"); if (whenParentIs(Name.class, name, (p, c) -> p.getQualifier().isPresent() && p.getQualifier().get() == c)) { return classifyRole(name.getParentNode().get());