X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fmeviz%2Fhtmlindexer%2Fmetadata%2FfileTypes%2FAbstractFile.java;h=0a89b40dcad7bb3bc06d38af1876244304d64297;hb=8b0fa37543a8ccd5e37d7e16f31b449f8f5440b7;hp=566e94487b431bd951bf81538afd566aa27cc78f;hpb=99bc9002a93c8ab224934032a1a5fe0c00d5de96;p=meviz.git diff --git a/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/fileTypes/AbstractFile.java b/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/fileTypes/AbstractFile.java index 566e944..0a89b40 100644 --- a/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/fileTypes/AbstractFile.java +++ b/src/main/java/eu/svjatoslav/meviz/htmlindexer/metadata/fileTypes/AbstractFile.java @@ -1,92 +1,89 @@ package eu.svjatoslav.meviz.htmlindexer.metadata.fileTypes; +import eu.svjatoslav.commons.file.FilePathParser; + import java.io.File; -import java.io.IOException; import java.io.Serializable; -import eu.svjatoslav.commons.file.FilePathParser; - public abstract class AbstractFile implements Serializable { - private static final long serialVersionUID = -2547388204667088033L; - - /** - * File name relative to the immediate parent directory. - */ - public final String fileName; - - /** - * File length in bytes. - */ - private long fileLength; - - private transient boolean metaInfoVerified; - - public AbstractFile(final File parentDirectory, final String fileName) - throws Exception { - this.fileName = fileName; - ensureFileMetainfoIsUpToDate(parentDirectory); - } - - /** - * @return true if file metadata was updated. - */ - public boolean ensureFileMetainfoIsUpToDate(final File parentDirectory) - throws Exception { - if (!isMetainfoUpToDate(parentDirectory)) { - fileLength = getFile(parentDirectory).length(); - updateFileMetainfo(parentDirectory); - metaInfoVerified = true; - return true; - } - return false; - }; - - public boolean fileExists(final File parentDirectory) { - return getFile(parentDirectory).exists(); - } - - public File getFile(final File parentDirectory) { - return new File(parentDirectory.getAbsolutePath(), fileName); - } - - public String getFileExtension() { - return FilePathParser.getFileExtension(fileName); - } - - public long getFileLength() { - return fileLength; - } - - private boolean isMetainfoUpToDate(final java.io.File parentDirectory) - throws IOException { - - if (metaInfoVerified) - return true; - - final File file = getFile(parentDirectory); - - // first check that file exists at all - if (!file.exists()) { - System.out.println(file); - throw new RuntimeException("Picture file by name \"" + fileName - + "\" does not exist in the parent directory \"" - + parentDirectory.getAbsolutePath() + "\""); - } - - // check that file length is the same as before - if (file.length() != fileLength) - return false; - - metaInfoVerified = true; - return true; - } - - public boolean isMetaInfoVerified() { - return metaInfoVerified; - } - - protected abstract void updateFileMetainfo(final File parentDirectory) - throws Exception; + private static final long serialVersionUID = -2547388204667088033L; + + /** + * File name relative to the immediate parent directory. + */ + public final String fileName; + + /** + * File length in bytes. + */ + private long fileLength = -1; + + private transient boolean metadataVerified; + + AbstractFile(final File parentDirectory, final String fileName) + throws Exception { + this.fileName = fileName; + ensureFileMetadataIsUpToDate(parentDirectory); + } + + /** + * @return true if file metadata was updated. + */ + public boolean ensureFileMetadataIsUpToDate(final File parentDirectory) + throws Exception { + if (!isMetadataUpToDate(parentDirectory)) { + fileLength = getFile(parentDirectory).length(); + updateFileMetadata(parentDirectory); + metadataVerified = true; + return true; + } + return false; + } + + public boolean fileExists(final File parentDirectory) { + return getFile(parentDirectory).exists(); + } + + File getFile(final File parentDirectory) { + return new File(parentDirectory.getAbsolutePath(), fileName); + } + + public String getFileExtension() { + return FilePathParser.getFileExtension(fileName); + } + + public long getFileLength() { + return fileLength; + } + + private boolean isMetadataUpToDate(final java.io.File parentDirectory) { + + if (metadataVerified) + return true; + + final File file = getFile(parentDirectory); + + // first check that file exists at all + if (!file.exists()) { + System.out.println(file); + throw new RuntimeException("Picture file by name \"" + fileName + + "\" does not exist in the parent directory \"" + + parentDirectory.getAbsolutePath() + "\""); + } + + // check that file length is the same as before + if (file.length() != fileLength) + return false; + + metadataVerified = true; + return true; + } + + public boolean isMetadataVerified() { + return metadataVerified; + } + + protected abstract void updateFileMetadata(final File parentDirectory) throws Exception; }