+ /**
+ * 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;
+ }
+
+ /**
+ * Sets the MIME type of the file. Setting the MIME type to
+ * <code>null</code> will set the MIME type to the default MIME type.
+ *
+ * @param mimeType
+ * The MIME type of the file
+ */
+ public void setMimeType(String mimeType) {
+ if (mimeType == null) {
+ this.mimeType = defaultMimeType;
+ } else {
+ this.mimeType = mimeType;
+ }
+ }
+
+ /**
+ * Returns the MIME type of the file. If no custom MIME type has been set,
+ * the default MIME type is returned.
+ *
+ * @return The MIME type of the file
+ */
+ public String getMimeType() {
+ return mimeType;
+ }
+
+ /**
+ * Returns whether the options for this file have been modified, i.e. are
+ * not at their default values.
+ *
+ * @return <code>true</code> if the options have been modified,
+ * <code>false</code> if they are at default values
+ */