Java tutorial
/* * license-updater - Copyright (c) 2012 MSF. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General * Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. * * You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ package br.msf.commons.netbeans.util; import br.msf.commons.text.EnhancedStringBuilder; import br.msf.commons.util.IOUtils; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Collection; import java.util.Enumeration; import org.apache.commons.lang.ArrayUtils; import org.netbeans.api.java.classpath.ClassPath; import org.netbeans.api.queries.FileEncodingQuery; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; /** * <p>TODO * * @author Marcius da Silva da Fonseca (sf.marcius@gmail.com) * @version 1.0 * @since license-updater-1.0 */ public abstract class FileObjectUtils { /** * Informa se o FileObject dado representa ou no um pacote vlido. */ public static boolean isValidDir(final FileObject pkg) { return pkg != null && pkg.isValid() && pkg.isFolder() && !FileUtil.toFile(pkg).isHidden(); } /** * Informa se o FileObject dado representa ou no um arquivo vlido. */ public static boolean isValidFile(final FileObject pkg) { return pkg != null && pkg.isValid() && !pkg.isFolder() && !FileUtil.toFile(pkg).isHidden(); } public static FileObject getPackageFileObject(final ClassPath classPath, final String fullPackageName) { for (FileObject root : classPath.getRoots()) { FileObject fo = getPackageFileObject(root, fullPackageName); if (fo != null) { return fo; } } return null; } public static FileObject getPackageFileObject(final FileObject classPathRoot, final String fullPackageName) { assert FileObjectUtils.isValidDir(classPathRoot); final String pkg_dir = new EnhancedStringBuilder(fullPackageName).replacePattern(".", IOUtils.DIR_SEPARATOR) .toString(); return classPathRoot.getFileObject(pkg_dir); } public static Collection<FileObject> getFiles(final FileObject rootDir, final boolean recursive, final FileType... types) { assert rootDir != null && rootDir.isFolder() && !ArrayUtils.contains(types, FileType.OTHER); Collection<FileObject> fileObjects = new ArrayList<FileObject>(); Enumeration<FileObject> entries = (Enumeration<FileObject>) rootDir.getChildren(recursive); while (entries.hasMoreElements()) { FileObject curr = entries.nextElement(); if (curr.isData()) { FileType t = FileType.parse(curr.getExt()); if (ArrayUtils.isEmpty(types) || ArrayUtils.contains(types, t)) { fileObjects.add(curr); } } } return fileObjects; } public static Charset getEncoding(final FileObject file) { return FileEncodingQuery.getEncoding(file); } }