+
+ /**
+ * Returns the temp directory to use.
+ *
+ * @return The temp directoy, or {@code null} to use the default temp
+ * directory
+ */
+ public String getTempDirectory() {
+ return getNodeValue(new String[] { "temp-directory" }, null);
+ }
+
+ /**
+ * Sets the temp directory to use.
+ *
+ * @param tempDirectory
+ * The temp directory to use, or {@code null} to use the default
+ * temp directory
+ */
+ public void setTempDirectory(String tempDirectory) {
+ if (tempDirectory != null) {
+ SimpleXML tempDirectoryNode = new SimpleXML("temp-directory");
+ tempDirectoryNode.setValue(tempDirectory);
+ rootNode.replace(tempDirectoryNode);
+ } else {
+ rootNode.remove("temp-directory");
+ }
+ }
+
+ /**
+ * Returns whether to use the “early encode“ flag for the insert.
+ *
+ * @return {@code true} to set the “early encode” flag for the insert,
+ * {@code false} otherwise
+ */
+ public boolean useEarlyEncode() {
+ return getNodeBooleanValue(new String[] { "use-early-encode" }, false);
+ }
+
+ /**
+ * Sets whether to use the “early encode“ flag for the insert.
+ *
+ * @param useEarlyEncode
+ * {@code true} to set the “early encode” flag for the insert,
+ * {@code false} otherwise
+ * @return This configuration
+ */
+ public Configuration setUseEarlyEncode(boolean useEarlyEncode) {
+ rootNode.replace("use-early-encode", String.valueOf(useEarlyEncode));
+ return this;
+ }
+
+ /**
+ * Returns the insert priority.
+ *
+ * @return The insert priority
+ */
+ public PriorityClass getPriority() {
+ return PriorityClass.valueOf(getNodeValue(new String[] { "insert-priority" }, "interactive"));
+ }
+
+ /**
+ * Sets the insert priority.
+ *
+ * @param priority
+ * The insert priority
+ * @return This configuration
+ */
+ public Configuration setPriority(PriorityClass priority) {
+ rootNode.replace("insert-priority", priority.toString());
+ return this;
+ }
+
+ /**
+ * Returns the manifest putter.
+ *
+ * @return The manifest putter
+ */
+ public ManifestPutter getManifestPutter() {
+ return ManifestPutter.valueOf(getNodeValue(new String[] { "manifest-putter" }, "simple").toUpperCase());
+ }
+
+ /**
+ * Sets the manifest putter.
+ *
+ * @param manifestPutter
+ * The manifest putter
+ * @return This configuration
+ */
+ public Configuration setManifestPutter(ManifestPutter manifestPutter) {
+ rootNode.replace("manifest-putter", manifestPutter.name().toLowerCase());
+ return this;
+ }
+