Add temporary force-insert flag.
[jSite.git] / src / de / todesbaum / jsite / application / FileOption.java
index 2e5830d..4eec3bf 100644 (file)
@@ -40,12 +40,18 @@ public class FileOption {
        /** 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 current hash of the file. */
        private String currentHash;
 
@@ -129,6 +135,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
@@ -178,11 +209,32 @@ public class FileOption {
        }
 
        /**
+        * 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 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#copyHashes()
+        * @see Project#onSuccessfulInsert()
         * @return The current hash of the file
         */
        public String getCurrentHash() {