Add enumeration for location of the configuration file.
[jSite.git] / src / de / todesbaum / jsite / main / Configuration.java
index a54d529..bffea23 100644 (file)
@@ -49,6 +49,27 @@ import de.todesbaum.util.xml.XML;
  */
 public class Configuration {
 
+       /**
+        * The location of the configuration directory.
+        *
+        * @author David ‘Bombe’ Roden <bombe@freenetproject.org>
+        */
+       public enum ConfigurationDirectory {
+
+               /** The configuration is in the same directory as the JAR file. */
+               NEXT_TO_JAR_FILE,
+
+               /**
+                * The configuration is in the user’s home directory. This is the
+                * pre-0.9.3 default.
+                */
+               HOME_DIRECTORY;
+
+       }
+
+       /** The configuration directory. */
+       private ConfigurationDirectory configurationDirectory = ConfigurationDirectory.HOME_DIRECTORY;
+
        /** The name of the file the configuration is stored to. */
        private String filename;
 
@@ -332,7 +353,11 @@ public class Configuration {
                                        Project project = new Project();
                                        projects.add(project);
                                        project.setDescription(projectNode.getNode("description").getValue(""));
-                                       project.setIndexFile(projectNode.getNode("index-file").getValue(""));
+                                       String indexFile = projectNode.getNode("index-file").getValue("");
+                                       if (indexFile.indexOf('/') > -1) {
+                                               indexFile = "";
+                                       }
+                                       project.setIndexFile(indexFile);
                                        project.setLastInsertionTime(Long.parseLong(projectNode.getNode("last-insertion-time").getValue("0")));
                                        project.setLocalPath(projectNode.getNode("local-path").getValue(""));
                                        project.setName(projectNode.getNode("name").getValue(""));
@@ -360,6 +385,9 @@ public class Configuration {
                                                                fileOption.setInsertRedirect(Boolean.parseBoolean(fileOptionNode.getNode("insert-redirect").getValue()));
                                                        }
                                                        fileOption.setCustomKey(fileOptionNode.getNode("custom-key").getValue(""));
+                                                       if (fileOptionNode.getNode("changed-name") != null) {
+                                                               fileOption.setChangedName(fileOptionNode.getNode("changed-name").getValue());
+                                                       }
                                                        fileOption.setMimeType(fileOptionNode.getNode("mime-type").getValue(""));
                                                        fileOption.setContainer(fileOptionNode.getNode("container").getValue());
                                                        if (fileOptionNode.getNode("replace-edition") != null) {
@@ -409,6 +437,7 @@ public class Configuration {
                                        fileOptionNode.append("insert", String.valueOf(fileOption.isInsert()));
                                        fileOptionNode.append("insert-redirect", String.valueOf(fileOption.isInsertRedirect()));
                                        fileOptionNode.append("custom-key", fileOption.getCustomKey());
+                                       fileOptionNode.append("changed-name", fileOption.getChangedName());
                                        fileOptionNode.append("mime-type", fileOption.getMimeType());
                                        fileOptionNode.append("container", fileOption.getContainer());
                                        fileOptionNode.append("replace-edition", String.valueOf(fileOption.getReplaceEdition()));