code: public static Layout forFile(File file) {
  		if (file == null) {
  			throw new IllegalArgumentException("File must not be null");
  		}
  		String lowerCaseFileName = file.getName().toLowerCase(Locale.ENGLISH);
  		if (lowerCaseFileName.endsWith(".jar")) {
  			return new Jar();
  		}
  		if (lowerCaseFileName.endsWith(".war")) {
  			return new War();
  		}
  		if (file.isDirectory() || lowerCaseFileName.endsWith(".zip")) {
  			return new Expanded();
  		}
  		throw new IllegalStateException("Unable to deduce layout for '" + file + "'");
  	}
docs: Return a layout for the given source file.
  @param file the source file
  @return a {@link Layout}