From facc9c353c3b9b9b24986cbe13ca894cb641077c Mon Sep 17 00:00:00 2001 From: FakeNeth Date: Tue, 5 Apr 2016 18:24:05 -0400 Subject: Add method to check configuration path existence, ignoring defaults. --- .../bukkit/configuration/ConfigurationSection.java | 19 +++++++++++++++++++ .../java/org/bukkit/configuration/MemorySection.java | 6 +++++- 2 files changed, 24 insertions(+), 1 deletion(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/bukkit/configuration/ConfigurationSection.java b/src/main/java/org/bukkit/configuration/ConfigurationSection.java index 1bd7fb51..166f2a65 100644 --- a/src/main/java/org/bukkit/configuration/ConfigurationSection.java +++ b/src/main/java/org/bukkit/configuration/ConfigurationSection.java @@ -58,6 +58,25 @@ public interface ConfigurationSection { */ public boolean contains(String path); + /** + * Checks if this {@link ConfigurationSection} contains the given path. + *

+ * If the value for the requested path does not exist, the boolean parameter + * of true has been specified, a default value for the path exists, this + * will return true. + *

+ * If a boolean parameter of false has been specified, true will only be + * returned if there is a set value for the specified path. + * + * @param path Path to check for existence. + * @param ignoreDefault Whether or not to ignore if a default value for the + * specified path exists. + * @return True if this section contains the requested path, or if a default + * value exist and the boolean parameter for this method is true. + * @throws IllegalArgumentException Thrown when path is null. + */ + public boolean contains(String path, boolean ignoreDefault); + /** * Checks if this {@link ConfigurationSection} has a value set for the * given path. diff --git a/src/main/java/org/bukkit/configuration/MemorySection.java b/src/main/java/org/bukkit/configuration/MemorySection.java index f180bf5f..3b92c644 100644 --- a/src/main/java/org/bukkit/configuration/MemorySection.java +++ b/src/main/java/org/bukkit/configuration/MemorySection.java @@ -103,7 +103,11 @@ public class MemorySection implements ConfigurationSection { } public boolean contains(String path) { - return get(path) != null; + return contains(path, false); + } + + public boolean contains(String path, boolean ignoreDefault) { + return ((ignoreDefault) ? get(path, null) : get(path)) != null; } public boolean isSet(String path) { -- cgit v1.2.3