From 93cebbde3b5c210388790ea4c5808c424a43d80d Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Thu, 9 Jan 2020 11:57:14 +0100 Subject: [PATCH] [New] Added ComponentConfiguration.getDataOrAbsoluteDir() --- .../configuration/ComponentConfiguration.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/li.strolch.agent/src/main/java/li/strolch/runtime/configuration/ComponentConfiguration.java b/li.strolch.agent/src/main/java/li/strolch/runtime/configuration/ComponentConfiguration.java index b6a93cddd..ee0485d6a 100644 --- a/li.strolch.agent/src/main/java/li/strolch/runtime/configuration/ComponentConfiguration.java +++ b/li.strolch.agent/src/main/java/li/strolch/runtime/configuration/ComponentConfiguration.java @@ -63,4 +63,22 @@ public class ComponentConfiguration extends AbstractionConfiguration { public File getDataFile(String key, String defValue, boolean checkExists) { return super.getDataFile(key, defValue, getRuntimeConfiguration(), checkExists); } + + public File getDataOrAbsoluteDir(String key, String defValue, boolean writeable) { + + String path = getString(key, defValue); + + // check for import directory + File pathF = new File(path); + if (!pathF.isAbsolute()) + return getDataDir(key, defValue, true); + + if (!pathF.exists() || !pathF.isDirectory() || (writeable ? !pathF.canWrite() : !pathF.canRead())) + throw new IllegalStateException("The path " + path + " for key " + key + " is not a directory or " + ( + writeable ? + "writeable" : + "readable") + "!"); + + return pathF; + } }