X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fproject%2FProject.java;h=b80c29322396953feb3ef45d1ecc9df92da04734;hb=dc77498d76f44c218603e026b825b389865bba73;hp=4444a84536f3a2de1c76ec04f92df0fa07134e55;hpb=99ef3764897825a3154cb662b2b81f51c16fdbd2;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/project/Project.java b/src/net/pterodactylus/jsite/project/Project.java index 4444a84..b80c293 100644 --- a/src/net/pterodactylus/jsite/project/Project.java +++ b/src/net/pterodactylus/jsite/project/Project.java @@ -20,18 +20,16 @@ package net.pterodactylus.jsite.project; import java.beans.PropertyChangeListener; -import java.io.File; -import java.util.ArrayList; -import java.util.List; +import java.util.HashMap; +import java.util.Map; import net.pterodactylus.util.beans.AbstractBean; /** * Container for project information. A Project is capable of notifying * {@link PropertyChangeListener}s if any of the contained properties change. - * + * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> - * @version $Id$ */ public class Project extends AbstractBean { @@ -47,7 +45,7 @@ public class Project extends AbstractBean { /** Name of the “private key” property. */ public static final String PROPERTY_PRIVATE_KEY = "privateKey"; - /** Name of the “local path” property. */ + /** Name of the “base path” property. */ public static final String PROPERTY_BASE_PATH = "basePath"; /** Internal ID. */ @@ -68,12 +66,32 @@ public class Project extends AbstractBean { /** The base path of the project. */ private String basePath; - /** The list of files from the base path. */ - private List basePathEntries = new ArrayList(); + /** The overrides. */ + private final Map overrides = new HashMap(); + + /** + * Creates a new project. + */ + public Project() { + /* do nothing. */ + } + + /** + * Clones the given project. + * + * @param project + */ + Project(Project project) { + this.name = project.name; + this.description = project.description; + this.publicKey = project.publicKey; + this.privateKey = project.privateKey; + this.basePath = project.basePath; + } /** * Returns the internal ID. - * + * * @return The internal ID */ String getId() { @@ -82,7 +100,7 @@ public class Project extends AbstractBean { /** * Sets the internal ID. - * + * * @param id * The internal ID */ @@ -92,7 +110,7 @@ public class Project extends AbstractBean { /** * Returns the name of the project. - * + * * @return The name of the project */ public String getName() { @@ -101,7 +119,7 @@ public class Project extends AbstractBean { /** * Sets the name of the project. - * + * * @param name * The name of the project */ @@ -113,7 +131,7 @@ public class Project extends AbstractBean { /** * Returns the description of the project. - * + * * @return The description of the project */ public String getDescription() { @@ -122,7 +140,7 @@ public class Project extends AbstractBean { /** * Sets the description of the project - * + * * @param description * The description of the project */ @@ -134,7 +152,7 @@ public class Project extends AbstractBean { /** * Returns the public key of the project. - * + * * @return The public key of the project */ public String getPublicKey() { @@ -143,7 +161,7 @@ public class Project extends AbstractBean { /** * Sets the public key of the project. - * + * * @param publicKey * The public key of the project */ @@ -155,7 +173,7 @@ public class Project extends AbstractBean { /** * Returns the private key of the project. - * + * * @return The private key of the project */ public String getPrivateKey() { @@ -164,7 +182,7 @@ public class Project extends AbstractBean { /** * Sets the private key of the project. - * + * * @param privateKey * The private key of the project */ @@ -176,7 +194,7 @@ public class Project extends AbstractBean { /** * Returns the base path of the project. - * + * * @return The base path of the project */ public String getBasePath() { @@ -185,7 +203,7 @@ public class Project extends AbstractBean { /** * Sets the base path of the project. - * + * * @param basePath * The base path of the project */ @@ -196,53 +214,34 @@ public class Project extends AbstractBean { } /** - * Rescans the base path for new or changed files. - */ - public void rescanBasePath() { - List entries = new ArrayList(); - scanPath("", entries); - } - - /** - * Returns the list of files from the base path. - * - * @return The list of files from the base path - */ - public List getBasePathEntries() { - return basePathEntries; - } - - // - // PRIVATE METHODS - // - - /** - * Scans the given path relative to {@link #basePath} for files and adds - * them to the given list of entries. - * - * @param currentPath - * The current path, relative to the base path - * @param entries - * The list of entries - */ - private void scanPath(String currentPath, List entries) { - File currentDirectory = new File(basePath + File.separatorChar + currentPath); - if (!currentDirectory.isDirectory()) { - return; - } - - for (File file: currentDirectory.listFiles()) { - String fileName = currentPath + File.separatorChar + file.getName(); - if (file.isDirectory()) { - scanPath(fileName, entries); - continue; - } - PhysicalEntry entry = new PhysicalEntry(); - entry.setName(fileName); - entry.setPath(file.getPath()); - entry.setInsert(!file.isHidden()); - entries.add(entry); - } + * Adds an override for the given file. + * + * @param filePath + * The file path + * @param override + * The override for the file + */ + public void addOverride(String filePath, Override override) { + overrides.put(filePath, override); + } + + /** + * Removes the override for the given file. + * + * @param filePath + * The file path for which to remove the override + */ + public void removeOverride(String filePath) { + overrides.remove(filePath); + } + + /** + * Returns the list of {@link Override}s. + * + * @return All overrides + */ + public Map getOverrides() { + return overrides; } }