/** Make a package, given its fully qualified name. */ public PackageSymbol enterPackage(Name fullname) { PackageSymbol p = packages.get(fullname); if (p == null) { assert !fullname.isEmpty() : "rootPackage missing!"; p = new PackageSymbol( Convert.shortName(fullname), enterPackage(Convert.packagePart(fullname))); p.completer = this; packages.put(fullname, p); } return p; }
/** Make a package, given its fully qualified name. */ public PackageSymbol enterPackage(Name fullname) { PackageSymbol p = packages.get(fullname); if (p == null) { assert !fullname.isEmpty() : "rootPackage missing!"; p = new PackageSymbol( Convert.shortName(fullname), enterPackage(Convert.packagePart(fullname))); p.completer = this; packages.put(fullname, p); } return p; }
/** Make a package, given its fully qualified name. */ public PackageSymbol enterPackage(Name fullname) { PackageSymbol p = packages.get(fullname); if (p == null) { Assert.check(!fullname.isEmpty(), "rootPackage missing!"); p = new PackageSymbol( Convert.shortName(fullname), enterPackage(Convert.packagePart(fullname))); p.completer = thisCompleter; packages.put(fullname, p); } return p; }
/** Make a package, given its fully qualified name. */ public PackageSymbol enterPackage(Name fullname) { PackageSymbol p = packages.get(fullname); if (p == null) { Assert.check(!fullname.isEmpty(), "rootPackage missing!"); p = new PackageSymbol( Convert.shortName(fullname), enterPackage(Convert.packagePart(fullname))); p.completer = thisCompleter; packages.put(fullname, p); } return p; }
/** * Creates a new toplevel class symbol with given flat name and * given class (or source) file. * * @param flatName a fully qualified binary class name * @param classFile the class file or compilation unit defining * the class (may be {@code null}) * @return a newly created class symbol * @throws AssertionError if the class symbol already exists */ public ClassSymbol enterClass(Name flatName, JavaFileObject classFile) { ClassSymbol cs = classes.get(flatName); if (cs != null) { String msg = Log.format("%s: completer = %s; class file = %s; source file = %s", cs.fullname, cs.completer, cs.classfile, cs.sourcefile); throw new AssertionError(msg); } Name packageName = Convert.packagePart(flatName); PackageSymbol owner = packageName.isEmpty() ? syms.unnamedPackage : enterPackage(packageName); cs = defineClass(Convert.shortName(flatName), owner); cs.classfile = classFile; classes.put(flatName, cs); return cs; }
/** * Creates a new toplevel class symbol with given flat name and * given class (or source) file. * * @param flatName a fully qualified binary class name * @param classFile the class file or compilation unit defining * the class (may be {@code null}) * @return a newly created class symbol * @throws AssertionError if the class symbol already exists */ public ClassSymbol enterClass(Name flatName, JavaFileObject classFile) { ClassSymbol cs = classes.get(flatName); if (cs != null) { String msg = Log.format("%s: completer = %s; class file = %s; source file = %s", cs.fullname, cs.completer, cs.classfile, cs.sourcefile); throw new AssertionError(msg); } Name packageName = Convert.packagePart(flatName); PackageSymbol owner = packageName.isEmpty() ? syms.unnamedPackage : enterPackage(packageName); cs = defineClass(Convert.shortName(flatName), owner); cs.classfile = classFile; classes.put(flatName, cs); return cs; }
/** * Creates a new toplevel class symbol with given flat name and * given class (or source) file. * * @param flatName a fully qualified binary class name * @param classFile the class file or compilation unit defining * the class (may be {@code null}) * @return a newly created class symbol * @throws AssertionError if the class symbol already exists */ public ClassSymbol enterClass(Name flatName, JavaFileObject classFile) { ClassSymbol cs = classes.get(flatName); if (cs != null) { String msg = Log.format("%s: completer = %s; class file = %s; source file = %s", cs.fullname, cs.completer, cs.classfile, cs.sourcefile); throw new AssertionError(msg); } Name packageName = Convert.packagePart(flatName); PackageSymbol owner = packageName.isEmpty() ? syms.unnamedPackage : enterPackage(packageName); cs = defineClass(Convert.shortName(flatName), owner); cs.classfile = classFile; classes.put(flatName, cs); return cs; }
/** * Creates a new toplevel class symbol with given flat name and * given class (or source) file. * * @param flatName a fully qualified binary class name * @param classFile the class file or compilation unit defining * the class (may be {@code null}) * @return a newly created class symbol * @throws AssertionError if the class symbol already exists */ public ClassSymbol enterClass(Name flatName, JavaFileObject classFile) { ClassSymbol cs = classes.get(flatName); if (cs != null) { String msg = Log.format("%s: completer = %s; class file = %s; source file = %s", cs.fullname, cs.completer, cs.classfile, cs.sourcefile); throw new AssertionError(msg); } Name packageName = Convert.packagePart(flatName); PackageSymbol owner = packageName.isEmpty() ? syms.unnamedPackage : enterPackage(packageName); cs = defineClass(Convert.shortName(flatName), owner); cs.classfile = classFile; classes.put(flatName, cs); return cs; }
/** * Tries to complete lexically enclosing classes if c looks like a * nested class. This is similar to completeOwners but handles * the situation when a nested class is accessed directly as it is * possible with the Tree API or javax.lang.model.*. */ private void completeEnclosing(ClassSymbol c) { if (c.owner.kind == PCK) { Symbol owner = c.owner; for (Name name : Convert.enclosingCandidates(Convert.shortName(c.name))) { Symbol encl = owner.members().lookup(name).sym; if (encl == null) encl = classes.get(TypeSymbol.formFlatName(name, owner)); if (encl != null) encl.complete(); } } }
/** * Tries to complete lexically enclosing classes if c looks like a * nested class. This is similar to completeOwners but handles * the situation when a nested class is accessed directly as it is * possible with the Tree API or javax.lang.model.*. */ private void completeEnclosing(ClassSymbol c) { if (c.owner.kind == PCK) { Symbol owner = c.owner; for (Name name : Convert.enclosingCandidates(Convert.shortName(c.name))) { Symbol encl = owner.members().lookup(name).sym; if (encl == null) encl = classes.get(TypeSymbol.formFlatName(name, owner)); if (encl != null) encl.complete(); } } }
/** * Tries to complete lexically enclosing classes if c looks like a * nested class. This is similar to completeOwners but handles * the situation when a nested class is accessed directly as it is * possible with the Tree API or javax.lang.model.*. */ private void completeEnclosing(ClassSymbol c) { if (c.owner.kind == PCK) { Symbol owner = c.owner; for (Name name : Convert.enclosingCandidates(Convert.shortName(c.name))) { Symbol encl = owner.members().lookup(name).sym; if (encl == null) encl = classes.get(TypeSymbol.formFlatName(name, owner)); if (encl != null) encl.complete(); } } }
/** * Tries to complete lexically enclosing classes if c looks like a * nested class. This is similar to completeOwners but handles * the situation when a nested class is accessed directly as it is * possible with the Tree API or javax.lang.model.*. */ private void completeEnclosing(ClassSymbol c) { if (c.owner.kind == PCK) { Symbol owner = c.owner; for (Name name : Convert.enclosingCandidates(Convert.shortName(c.name))) { Symbol encl = owner.members().lookup(name).sym; if (encl == null) encl = classes.get(TypeSymbol.formFlatName(name, owner)); if (encl != null) encl.complete(); } } }
/** Enter a set of generated class files. */ private List<ClassSymbol> enterClassFiles(Map<String, JavaFileObject> classFiles) { ClassReader reader = ClassReader.instance(context); Names names = Names.instance(context); List<ClassSymbol> list = List.nil(); for (Map.Entry<String,JavaFileObject> entry : classFiles.entrySet()) { Name name = names.fromString(entry.getKey()); JavaFileObject file = entry.getValue(); if (file.getKind() != JavaFileObject.Kind.CLASS) throw new AssertionError(file); ClassSymbol cs; if (isPkgInfo(file, JavaFileObject.Kind.CLASS)) { Name packageName = Convert.packagePart(name); PackageSymbol p = reader.enterPackage(packageName); if (p.package_info == null) p.package_info = reader.enterClass(Convert.shortName(name), p); cs = p.package_info; if (cs.classfile == null) cs.classfile = file; } else cs = reader.enterClass(name, file); list = list.prepend(cs); } return list.reverse(); }
/** Enter a set of generated class files. */ private List<ClassSymbol> enterClassFiles(Map<String, JavaFileObject> classFiles) { ClassReader reader = ClassReader.instance(context); Names names = Names.instance(context); List<ClassSymbol> list = List.nil(); for (Map.Entry<String,JavaFileObject> entry : classFiles.entrySet()) { Name name = names.fromString(entry.getKey()); JavaFileObject file = entry.getValue(); if (file.getKind() != JavaFileObject.Kind.CLASS) throw new AssertionError(file); ClassSymbol cs; if (isPkgInfo(file, JavaFileObject.Kind.CLASS)) { Name packageName = Convert.packagePart(name); PackageSymbol p = reader.enterPackage(packageName); if (p.package_info == null) p.package_info = reader.enterClass(Convert.shortName(name), p); cs = p.package_info; if (cs.classfile == null) cs.classfile = file; } else cs = reader.enterClass(name, file); list = list.prepend(cs); } return list.reverse(); }
private List<ClassSymbol> enterNewClassFiles(Context currentContext) { ClassReader reader = ClassReader.instance(currentContext); Name.Table names = Name.Table.instance(currentContext); List<ClassSymbol> list = List.nil(); for (Map.Entry<String,JavaFileObject> entry : filer.getGeneratedClasses().entrySet()) { Name name = names.fromString(entry.getKey()); JavaFileObject file = entry.getValue(); if (file.getKind() != JavaFileObject.Kind.CLASS) throw new AssertionError(file); ClassSymbol cs; if (isPkgInfo(file, JavaFileObject.Kind.CLASS)) { Name packageName = Convert.packagePart(name); PackageSymbol p = reader.enterPackage(packageName); if (p.package_info == null) p.package_info = reader.enterClass(Convert.shortName(name), p); cs = p.package_info; if (cs.classfile == null) cs.classfile = file; } else cs = reader.enterClass(name, file); list = list.prepend(cs); } return list.reverse(); }
tree.name = Convert.shortName(currentClass.flatName());
tree.name = Convert.shortName(currentClass.flatName());
tree.name = Convert.shortName(currentClass.flatName());
tree.name = Convert.shortName(currentClass.flatName());
Name flatname = Convert.shortName(sym.flatName()); while (base != null && TreeInfo.symbol(base) != null &&