001package org.nuxeo.theme.resources;
002
003import java.io.File;
004import java.io.IOException;
005import java.util.Arrays;
006import java.util.Comparator;
007import java.util.regex.Matcher;
008import java.util.regex.Pattern;
009
010import org.nuxeo.common.utils.FileUtils;
011
012public class BankUtils {
013
014    final static Pattern filenamePattern = Pattern.compile("^\\p{IsAlnum}+[a-z0-9_\\-\\. ]*\\p{IsAlnum}+$|^\\p{IsAlnum}$");
015
016    public static String getFileContent(File file) throws IOException {
017        if (!file.exists()) {
018            throw new IOException("File not found: " + file.getAbsolutePath());
019        }
020        return FileUtils.readFile(file);
021    }
022
023    public static String getDomId(String id) {
024        return id.replaceAll("[\\s\\.]+", "-");
025    }
026
027    public static File[] listFilesSorted(File folder) {
028        if (!folder.isDirectory()) {
029            return null;
030        }
031        File files[] = folder.listFiles();
032        Arrays.sort(files, new Comparator() {
033            @Override
034            public int compare(final Object o1, final Object o2) {
035                return new Long(((File) o1).lastModified()).compareTo(new Long(((File) o2).lastModified()));
036            }
037        });
038        return files;
039    }
040
041    public static boolean checkFilePath(String path) {
042        for (String f : path.split("/")) {
043            if ("".equals(f)) {
044                continue;
045            }
046            Matcher m = filenamePattern.matcher(f);
047            if (!m.find()) {
048                return false;
049            }
050        }
051        return true;
052    }
053}