X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fhtmlindexer%2FUtils.java;h=ab711a5ffdaf506328cec2b9c453263e18c331f3;hb=b0c6e70ecdcb0dc55eed55ded5a82edc8bdfa729;hp=b21f8e9a59e33175b9e481212b0a7a0851f27e00;hpb=50cb7085d553fdd82cd06806cd27b1675299f719;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/htmlindexer/Utils.java b/src/main/java/eu/svjatoslav/meviz/htmlindexer/Utils.java index b21f8e9..ab711a5 100755 --- a/src/main/java/eu/svjatoslav/meviz/htmlindexer/Utils.java +++ b/src/main/java/eu/svjatoslav/meviz/htmlindexer/Utils.java @@ -10,58 +10,116 @@ package eu.svjatoslav.meviz.htmlindexer; import java.awt.image.BufferedImage; +import java.io.BufferedReader; import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; import java.io.IOException; +import java.util.HashSet; import java.util.zip.CRC32; import javax.imageio.ImageIO; +import eu.svjatoslav.meviz.htmlindexer.layouts.MixedLayout; + public class Utils { - private static File lastLoadedFile; + private static File lastLoadedFile; + + private static BufferedImage lastLoadedBufferedImage; + + /** + * Load image into {@link BufferedImage} and return it. Caches last loaded + * image to speed up subsequent loading attempts. + * + * @throws ImageFormatError + * @throws IOException + */ + public static BufferedImage getBufferedImage(final File file) + throws ImageFormatError, IOException { + if (file.equals(lastLoadedFile)) + return lastLoadedBufferedImage; + + System.out.println("Loading image: " + file.getPath()); + lastLoadedBufferedImage = ImageIO.read(file); + lastLoadedFile = file; + + if (lastLoadedBufferedImage == null) + throw new ImageFormatError("File: " + file + + " is not a valid image."); + + return lastLoadedBufferedImage; + } + + public static File getLayoutIndexFile(final Layout layout, + final File directoryToIndex) { + + final String indexFilePath = directoryToIndex.getAbsolutePath() + + "/index" + layout.getFileNameSuffix() + ".html"; + + return new File(indexFilePath); + } + + public static HashSet getLayouts() { + final HashSet layouts = new HashSet(); + layouts.add(new MixedLayout()); + return layouts; + } + + public static String getStringCrcAsHex(final String input) { + + // create a new CRC-calculating object + final CRC32 crc = new CRC32(); + + // loop, calculating CRC for each byte of the string + // There is no CRC16.update(byte[]) method. + for (final byte b : input.getBytes()) + crc.update(b); + + // note use crc.value, not crc.getValue() + final String hex = Integer.toHexString((int) crc.getValue()) + .toUpperCase(); - private static BufferedImage lastLoadedBufferedImage; + // System.out.println("Input string: " + input); + // System.out.println("Result: " + hex); - /** - * Load image into {@link BufferedImage} and return it. Caches last loaded - * image to speed up subsequent loading attempts. - * - * @throws ImageFormatError - * @throws IOException - */ - public static BufferedImage getBufferedImage(final File file) throws ImageFormatError, IOException { - if (file.equals(lastLoadedFile)) { - return lastLoadedBufferedImage; - } + return hex; + } - System.out.println("Loading image: " + file.getPath()); - lastLoadedBufferedImage = ImageIO.read(file); - lastLoadedFile = file; + public static File getThumbnailsDirectory(final File directoryToIndex) { + return new File(getThumbnailsDirectoryPath(directoryToIndex)); + } - if (lastLoadedBufferedImage == null) - throw new ImageFormatError("File: " + file + " is not a valid image."); + public static String getThumbnailsDirectoryPath(final File directoryToIndex) { + return directoryToIndex.getAbsolutePath() + "/" + + Constants.THUMBNAILS_DIRECTORY_NAME + "/"; + } - return lastLoadedBufferedImage; - } + public static boolean isMevizGeneratedIndexFile(final File indexFile) + throws FileNotFoundException, IOException { - public static String getStringCrcAsHex(final String input) { + boolean isMevizFile = false; - // create a new CRC-calculating object - final CRC32 crc = new CRC32(); + final FileReader fileReader = new FileReader(indexFile); + final BufferedReader reader = new BufferedReader(fileReader); - // loop, calculating CRC for each byte of the string - // There is no CRC16.update(byte[]) method. - for (final byte b : input.getBytes()) { - crc.update(b); - } + parseFile: { + while (true) { + final String line = reader.readLine(); - // note use crc.value, not crc.getValue() - final String hex = Integer.toHexString((int) crc.getValue()).toUpperCase(); + if (line == null) + break parseFile; - // System.out.println("Input string: " + input); - // System.out.println("Result: " + hex); + if (line.contains(Constants.HTML_MAGIC_STRING)) { + isMevizFile = true; + break parseFile; + } + } + } - return hex; - } + reader.close(); + fileReader.close(); + return isMevizFile; + } }