X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fapplication%2FFileOption.java;h=c8824de1b90861caeac9a71ec8ee8e02e3309984;hb=953de352675a4ad91fe307d816a4ea7780c94274;hp=31e66982d96719c610325e0c231fd28286388131;hpb=e5a389dce31c983bb61c82b82f58b30b8d656923;p=jSite.git diff --git a/src/de/todesbaum/jsite/application/FileOption.java b/src/de/todesbaum/jsite/application/FileOption.java index 31e6698..c8824de 100644 --- a/src/de/todesbaum/jsite/application/FileOption.java +++ b/src/de/todesbaum/jsite/application/FileOption.java @@ -1,6 +1,5 @@ /* - * jSite - a tool for uploading websites into Freenet Copyright (C) 2006 David - * Roden + * jSite - FileOption.java - Copyright © 2006–2012 David Roden * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software @@ -38,21 +37,27 @@ public class FileOption { /** The default changed name. */ private static final String DEFAULT_CHANGED_NAME = null; - /** The default container. */ - private static final String DEFAULT_CONTAINER = ""; - - /** The default edition range. */ - private static final int DEFAULT_EDITION_RANGE = 3; - - /** The default for the replace edition state. */ - private static final boolean DEFAULT_REPLACE_EDITION = false; - /** The insert state. */ private boolean insert; + /** Whether to force an insert. */ + private boolean forceInsert; + /** Whether to insert a redirect. */ private boolean insertRedirect; + /** The hash of the last insert. */ + private String lastInsertHash; + + /** The edition of the last insert. */ + private int lastInsertEdition; + + /** The filename of the last insert. */ + private String lastInsertFilename; + + /** The current hash of the file. */ + private String currentHash; + /** The custom key. */ private String customKey; @@ -65,15 +70,6 @@ public class FileOption { /** The current MIME type. */ private String mimeType; - /** The container. */ - private String container; - - /** The edition range. */ - private int editionRange; - - /** The replace edition state. */ - private boolean replaceEdition; - /** * Creates new file options. * @@ -87,9 +83,6 @@ public class FileOption { changedName = DEFAULT_CHANGED_NAME; this.defaultMimeType = defaultMimeType; mimeType = defaultMimeType; - container = DEFAULT_CONTAINER; - editionRange = DEFAULT_EDITION_RANGE; - replaceEdition = DEFAULT_REPLACE_EDITION; } /** @@ -145,6 +138,31 @@ public class FileOption { } /** + * Returns whether the insert of this file should be forced, even if its + * current hash matches the last insert hash. + * + * @return {@code true} to force the insert of this file, {@code false} + * otherwise + */ + public boolean isForceInsert() { + return forceInsert; + } + + /** + * Sets whether to force the insert of this file, even if its current hash + * matches the last insert hash. + * + * @param forceInsert + * {@code true} to force the insert of this file, {@code false} + * otherwise + * @return These file options + */ + public FileOption setForceInsert(boolean forceInsert) { + this.forceInsert = forceInsert; + return this; + } + + /** * Returns whether a redirect to a different key should be inserted. This * will only matter if {@link #isInsert()} returns {@code false}. The key * that should be redirected to still needs to be specified via @@ -173,6 +191,93 @@ public class FileOption { } /** + * Returns the hash of the file when it was last inserted + * + * @return The last hash of the file + */ + public String getLastInsertHash() { + return lastInsertHash; + } + + /** + * Sets the hash of the file when it was last inserted. + * + * @param lastInsertHash + * The last hash of the file + * @return These file options + */ + public FileOption setLastInsertHash(String lastInsertHash) { + this.lastInsertHash = lastInsertHash; + return this; + } + + /** + * Returns the last edition at which this file was inserted. + * + * @return The last insert edition of this file + */ + public int getLastInsertEdition() { + return lastInsertEdition; + } + + /** + * Sets the last insert edition of this file. + * + * @param lastInsertEdition + * The last insert edition of this file + * @return These file options + */ + public FileOption setLastInsertEdition(int lastInsertEdition) { + this.lastInsertEdition = lastInsertEdition; + return this; + } + + /** + * Returns the name of the file when it was last inserted. + * + * @return The name of the file at the last insert + */ + public String getLastInsertFilename() { + return lastInsertFilename; + } + + /** + * Sets the name of the file when it was last inserted. + * + * @param lastInsertFilename + * The name of the file at the last insert. + * @return These file options + */ + public FileOption setLastInsertFilename(String lastInsertFilename) { + this.lastInsertFilename = lastInsertFilename; + return this; + } + + /** + * Returns the current hash of the file. This value is ony a temporary value + * that is copied to {@link #getLastInsertHash()} when a project has + * finished inserting. + * + * @see Project#onSuccessfulInsert() + * @return The current hash of the file + */ + public String getCurrentHash() { + return currentHash; + } + + /** + * Sets the current hash of the file. + * + * @param currentHash + * The current hash of the file + * @return These file options + */ + public FileOption setCurrentHash(String currentHash) { + this.currentHash = currentHash; + return this; + } + + /** * Returns whether this file has a changed name. Use * {@link #getChangedName()} is this method returns {@code true}. * @@ -231,69 +336,6 @@ public class FileOption { } /** - * Returns the name of the container this file should be put in. - * - * @return The name of the container - */ - public String getContainer() { - return container; - } - - /** - * Sets the name of the container this file should be put in. - * - * @param container - * The name of the container - */ - public void setContainer(String container) { - if (container == null) { - this.container = DEFAULT_CONTAINER; - } else { - this.container = container; - } - } - - /** - * Sets whether the file should have “$[EDITION+n]” tags replaced. - * - * @param replaceEdition - * true to replace tags, false not to - * replace - */ - public void setReplaceEdition(boolean replaceEdition) { - this.replaceEdition = replaceEdition; - } - - /** - * Returns whether the file should have “$[EDITION+n]” tags replaced. - * - * @return true if tags should be replaced, false - * otherwise - */ - public boolean getReplaceEdition() { - return replaceEdition; - } - - /** - * Sets the range of editions that should be replaced. - * - * @param editionRange - * The range editions to replace - */ - public void setEditionRange(int editionRange) { - this.editionRange = editionRange; - } - - /** - * Returns the range of editions that should be replaced. - * - * @return The range of editions to replace - */ - public int getEditionRange() { - return editionRange; - } - - /** * Returns whether the options for this file have been modified, i.e. are * not at their default values. * @@ -313,15 +355,6 @@ public class FileOption { if (!defaultMimeType.equals(mimeType)) { return true; } - if (!DEFAULT_CONTAINER.equals(container)) { - return true; - } - if (replaceEdition != DEFAULT_REPLACE_EDITION) { - return true; - } - if (editionRange != DEFAULT_EDITION_RANGE) { - return true; - } if (insertRedirect != DEFAULT_INSERT_REDIRECT) { return true; }