@Override public URI toUri () { if (this.uri != null) { return this.uri; } else { return URI.create (convertPackage2Folder(this.pkgName) + NBFS_SEPARATOR_CHAR + this.nameWithoutExt); } }
@NonNull public String getPath() { String res = convertPackage2Folder(inferBinaryName()); if (!ext.isEmpty()) { final StringBuilder sb = new StringBuilder(res); sb.append('.'); //NOI18N sb.append(ext); res = sb.toString(); } return res; }
@Override public JavaFileObject getJavaFileForInput(Location l, String className, Kind kind) { if (kind == JavaFileObject.Kind.CLASS) { int dot = className.lastIndexOf('.'); String dir = dot == -1 ? "" : FileObjects.convertPackage2Folder(className.substring(0, dot)); javax.tools.FileObject fo = tx.readFileObject(l, dir, className.substring(dot + 1)); if (fo != null) { return (JavaFileObject)fo; } } return super.getJavaFileForInput(l, className, kind); }
@Override @NonNull protected Path resolvePath() { Path file = fileCache; if (file == null) { final char sep = root.getFileSystem().getSeparator().charAt(0); final StringBuilder relPath = new StringBuilder(); if (!pkgName.isEmpty()) { relPath.append(convertPackage2Folder(pkgName,sep)). append(sep); } relPath.append(nameWithoutExt). append('.'). append(ext); file = fileCache = root.resolve(relPath.toString()); } return file; }
@Override public URI toUri() { return URI.create(String.format( "%s/%s", //NOI18N FileObjects.convertPackage2Folder(getPackage()), getName())); }
@Override @NonNull protected URI resolveURI() { if (rootUri == null) { return resolvePath().toUri(); } final StringBuilder sb = new StringBuilder(). append(rootUri); if (!pkgName.isEmpty()) { sb.append(convertPackage2Folder(pkgName)). append(NBFS_SEPARATOR_CHAR); } sb.append(nameWithoutExt). append('.'). //NOI18N append(ext); return URI.create(sb.toString()); } }
@Override public String getRelativePath() { final StringBuilder sb = new StringBuilder(FileObjects.convertPackage2Folder(jfo.inferBinaryName(), '/')); //NOI18N sb.append('.'); //NOI18N sb.append(FileObjects.getExtension(jfo.toUri().getPath())); return sb.toString(); }
private static void deleteSigFiles(final URL root, final List<? extends ElementHandle<TypeElement>> toRemove) throws IOException { File cacheFolder = JavaIndex.getClassFolder(root); if (cacheFolder.exists()) { if (toRemove.size() > CLEAN_ALL_LIMIT) { //Todo: do as SlowIOTask FileObjects.deleteRecursively(cacheFolder); } else { for (ElementHandle<TypeElement> eh : toRemove) { final StringBuilder sb = new StringBuilder(FileObjects.convertPackage2Folder(eh.getBinaryName(),File.separatorChar)); sb.append('.'); //NOI18N sb.append(FileObjects.SIG); final File f = new File (cacheFolder, sb.toString()); f.delete(); } } } }
/** * Converts a package name into folder using '/' as separator character * @param packageName to be converted * @return the folder name */ public static @NonNull String convertPackage2Folder(final @NonNull String packageName ) { return convertPackage2Folder(packageName, NBFS_SEPARATOR_CHAR ); }
public void add(final File source, final String packageName, final String relativeName, final CharSequence content) { try { final Indexable indexable = this.file2indexables.get(source); assert indexable != null : "Unknown file: " + source.getAbsolutePath(); final String baseName = relativeName + '.' + FileObjects.getExtension(source.getName()); String folder = FileObjects.convertPackage2Folder(packageName); if (folder.length() > 0) { folder += '/'; } res.add(new CompileTuple( new ForwardingPrefetchableJavaFileObject( FileObjects.memoryFileObject(packageName, baseName,new URI(rootURL + folder + baseName), System.currentTimeMillis(), content)) { @Override public JavaFileObject.Kind getKind() { return JavaFileObject.Kind.SOURCE; } }, indexable,true, this.currentProvider.index())); } catch (URISyntaxException ex) { Exceptions.printStackTrace(ex); } } }
@Override protected Class<?> findClass(final String name) throws ClassNotFoundException { final StringBuilder sb = new StringBuilder(FileObjects.convertPackage2Folder(name, '/')); sb.append(JavaFileObject.Kind.CLASS.extension); Class<?> c = null;
private static Query createClassesInFileQuery (final String resourceName, final String sourceName) { if (sourceName != null) { final BooleanQuery result = new BooleanQuery(); result.add(createFQNQuery(FileObjects.convertFolder2Package(FileObjects.stripExtension(sourceName))), Occur.SHOULD); result.add(new TermQuery(new Term (DocumentUtil.FIELD_SOURCE,sourceName)),Occur.SHOULD); return result; } else { final BooleanQuery result = new BooleanQuery(); result.add(createFQNQuery(resourceName), Occur.SHOULD); result.add(new TermQuery(new Term ( DocumentUtil.FIELD_SOURCE, new StringBuilder(FileObjects.convertPackage2Folder(resourceName)).append('.').append(FileObjects.JAVA).toString())), Occur.SHOULD); return result; } }
String folderName = FileObjects.convertPackage2Folder( packageName );
@Override public JavaFileObject getJavaFileForOutput(Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException { if (!hasLocation(location)) { throw new IllegalArgumentException(String.valueOf(location)); } final File root = new File (outputRoot); final String nameStr = FileObjects.convertPackage2Folder(className, File.separatorChar) + '.' + FileObjects.SIG; final File file = new File (root, nameStr); if (FileObjects.isValidFileName(className)) { return tx.createFileObject(location, file, root, null, null); } else { LOG.log( Level.WARNING, "Invalid class name: {0} sibling: {1}", //NOI18N new Object[]{ className, sibling }); return FileObjects.nullWriteFileObject(FileObjects.fileFileObject(file, root, null, null)); } }
return Collections.emptyList(); pkgName = FileObjects.convertPackage2Folder(((PackageElement) element).getQualifiedName().toString()); pageName = PACKAGE_SUMMARY; } else { return Collections.emptyList(); pkgName = FileObjects.convertPackage2Folder(((PackageElement) e).getQualifiedName().toString()); pageName = sb.toString(); buildFragment = element != clsSym;
return null; int index = surl.lastIndexOf(FileObjects.convertPackage2Folder(binaryName)); if (index > 0) { return JavaIndex.getClassFolder(new URL(surl.substring(0, index)));
String pkgName = FileObjects.convertPackage2Folder(qualName); StringTokenizer tk = new StringTokenizer(pkgName, "/"); //NOI18N for (int i = 0; fo != null && i <= tk.countTokens(); i++) {
throw new IllegalArgumentException (); } else { String baseName = FileObjects.convertPackage2Folder(className); //Todo: Use File.separatorChar and remove below baseName = ... File activeRoot = getClassFolderForSource(sibling, baseName); if (activeRoot == null) {
String binaryName = FileObjects.getBinaryName(file, classFolder); for (String className : readRSFile(file)) { File f = new File(classFolder, FileObjects.convertPackage2Folder(className) + '.' + FileObjects.SIG); if (!binaryName.equals(className)) { if (javaContext.getFQNs().remove(className, relURLPair.second())) {
String pkgName, className = null; if (pkg) { pkgName = FileObjects.convertPackage2Folder(signature[0]); pkgName = FileObjects.convertPackage2Folder(signature[0].substring(0,index)); className = signature[0].substring(index+1);