X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Ftodesbaum%2Fjsite%2Fapplication%2FProject.java;h=d9146a1b06c1defdff3ef515d99bd4de601e4760;hb=f4bf696b92e9c50e52a6f536d45c65da82844d67;hp=fa0b774dccac4f49922d285a46b27277287e0f84;hpb=0e88169c3e8decfcd99f39f5ecf3a85df50c3fca;p=jSite.git diff --git a/src/main/java/de/todesbaum/jsite/application/Project.java b/src/main/java/de/todesbaum/jsite/application/Project.java index fa0b774..d9146a1 100644 --- a/src/main/java/de/todesbaum/jsite/application/Project.java +++ b/src/main/java/de/todesbaum/jsite/application/Project.java @@ -1,5 +1,5 @@ /* - * jSite - Project.java - Copyright © 2006–2012 David Roden + * jSite - Project.java - Copyright © 2006–2014 David Roden * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software @@ -24,7 +24,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; -import de.todesbaum.util.mime.DefaultMIMETypes; +import net.pterodactylus.util.io.MimeTypes; /** * Container for project information. @@ -60,6 +60,9 @@ public class Project implements Comparable { /** The edition to insert to. */ protected int edition; + /** Whether to always force inserts. */ + private boolean alwaysForceInserts; + /** Whether to ignore hidden directory. */ private boolean ignoreHiddenFiles; @@ -89,8 +92,11 @@ public class Project implements Comparable { localPath = project.localPath; indexFile = project.indexFile; lastInsertionTime = project.lastInsertionTime; + alwaysForceInserts = project.alwaysForceInserts; ignoreHiddenFiles = project.ignoreHiddenFiles; - fileOptions = new HashMap(project.fileOptions); + for (Entry fileOption : fileOptions.entrySet()) { + fileOptions.put(fileOption.getKey(), new FileOption(fileOption.getValue())); + } } /** @@ -252,6 +258,29 @@ public class Project implements Comparable { } /** + * Returns whether files for this project should always be inserted, even + * when unchanged. + * + * @return {@code true} to always force inserts on this project, + * {@code false} otherwise + */ + public boolean isAlwaysForceInsert() { + return alwaysForceInserts; + } + + /** + * Sets whether files for this project should always be inserted, even when + * unchanged. + * + * @param alwaysForceInsert + * {@code true} to always force inserts on this project, + * {@code false} otherwise + */ + public void setAlwaysForceInsert(boolean alwaysForceInsert) { + this.alwaysForceInserts = alwaysForceInsert; + } + + /** * Returns whether hidden files are ignored, i.e. not inserted. * * @return {@code true} if hidden files are not inserted, {@code false} @@ -289,7 +318,7 @@ public class Project implements Comparable { * The URI to shorten * @return The shortened URI */ - private String shortenURI(String uri) { + private static String shortenURI(String uri) { String shortUri = uri; if (shortUri.startsWith("freenet:")) { shortUri = shortUri.substring("freenet:".length()); @@ -337,7 +366,7 @@ public class Project implements Comparable { public FileOption getFileOption(String filename) { FileOption fileOption = fileOptions.get(filename); if (fileOption == null) { - fileOption = new FileOption(DefaultMIMETypes.guessMIMEType(filename)); + fileOption = new FileOption(MimeTypes.getMimeType(filename.substring(filename.lastIndexOf('.') + 1))); fileOptions.put(filename, fileOption); } return fileOption; @@ -386,6 +415,7 @@ public class Project implements Comparable { *

* Projects are compared by their name only. */ + @Override public int compareTo(Project project) { return name.compareToIgnoreCase(project.name); } @@ -432,7 +462,7 @@ public class Project implements Comparable { if ((fileOption.getCurrentHash() != null) && (fileOption.getCurrentHash().length() > 0) && (!fileOption.getCurrentHash().equals(fileOption.getLastInsertHash()) || fileOption.isForceInsert())) { fileOption.setLastInsertEdition(edition); fileOption.setLastInsertHash(fileOption.getCurrentHash()); - fileOption.setLastInsertFilename(fileOption.hasChangedName() ? fileOption.getChangedName() : fileOptionEntry.getKey()); + fileOption.setLastInsertFilename(fileOption.getChangedName().or(fileOptionEntry.getKey())); } fileOption.setForceInsert(false); }