+ * 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
+ * {@link #setCustomKey(String)}.
+ *
+ * @return {@code true} if a redirect should be inserted, {@code false}
+ * otherwise
+ */
+ public boolean isInsertRedirect() {
+ return insertRedirect;
+ }
+
+ /**
+ * Sets whether a redirect should be inserted. This will only matter if
+ * {@link #isInsert()} returns {@code false}, i.e. it has been
+ * {@link #setInsert(boolean)} to {@code false}. The key that should be
+ * redirected to still needs to be specified via
+ * {@link #setCustomKey(String)}.
+ *
+ * @param insertRedirect
+ * {@code true} if a redirect should be inserted, {@code false}
+ * otherwise
+ */
+ public void setInsertRedirect(boolean insertRedirect) {
+ this.insertRedirect = insertRedirect;
+ }
+
+ /**
+ * Returns whether this file has a changed name. Use
+ * {@link #getChangedName()} is this method returns {@code true}.
+ *
+ * @return {@code true} if this file has a changed name, {@code false}
+ * otherwise
+ */
+ public boolean hasChangedName() {
+ return (changedName != null) && (changedName.length() > 0);
+ }
+
+ /**
+ * Returns the changed name for this file. This method will return {@code
+ * null} or an empty {@link String} if this file should not be renamed.
+ *
+ * @return The changed name, or {@code null} if this file should not be
+ * renamed
+ */
+ public String getChangedName() {
+ return changedName;
+ }
+
+ /**
+ * Sets the changed name for this file. Setting the changed file to {@code
+ * null} or an empty {@link String} will disable renaming.
+ *
+ * @param changedName
+ * The new changed name for this file
+ */
+ public void setChangedName(String changedName) {
+ this.changedName = changedName;
+ }
+
+ /**