package org.jboss.windup.util; import java.io.File; /** * * @author <a href="mailto:ozizka@redhat.com">Ondrej Zizka</a> */ public class Checks { // --- Input validating methods. --- public static void checkFileToBeRead(File archive, String fileDesc) throws IllegalArgumentException { if (archive == null) throw new IllegalArgumentException(fileDesc + " must not be null."); if (!archive.exists()) throw new IllegalArgumentException(fileDesc + " does not exist: " + archive.getAbsolutePath()); if (archive.isDirectory()) throw new IllegalArgumentException(fileDesc + " is a directory, expected a file: " + archive.getPath()); } public static void checkDirectoryToBeFilled(File outputDir, String dirDesc) throws IllegalArgumentException { if (outputDir == null) throw new IllegalArgumentException(dirDesc + " must not be null."); if (outputDir.exists() && !outputDir.isDirectory()) throw new IllegalArgumentException(dirDesc + " is a file, expected a directory: " + outputDir.getAbsolutePath()); } public static void checkDirectoryToBeRead(File rootDir, String dirDesc) { if (rootDir == null) throw new IllegalArgumentException(dirDesc + " must not be null."); if (!rootDir.exists()) throw new IllegalArgumentException(dirDesc + " does not exist: " + rootDir.getPath()); if (!rootDir.isDirectory()) throw new IllegalArgumentException(dirDesc + " is a file, expected a directory: " + rootDir.getPath()); } /** * Throws if the given file is null, is not a file or directory, or is an empty directory. */ public static void checkFileOrDirectoryToBeRead(File fileOrDir, String fileDesc) { if (fileOrDir == null) throw new IllegalArgumentException(fileDesc + " must not be null."); if (!fileOrDir.exists()) throw new IllegalArgumentException(fileDesc + " does not exist: " + fileOrDir.getAbsolutePath()); if (!(fileOrDir.isDirectory() || fileOrDir.isFile())) throw new IllegalArgumentException(fileDesc + " must be a file or a directory: " + fileOrDir.getPath()); if (fileOrDir.isDirectory()) { if (fileOrDir.list().length == 0) throw new IllegalArgumentException(fileDesc + " is an empty directory: " + fileOrDir.getPath()); } } /** * Returns true if the iterable contains at least one item. */ public static boolean checkNotEmpty(Iterable<?> iterable) { return iterable.iterator().hasNext(); } }