From 793ced62861d875b40001ec2683ce614e340ce88 Mon Sep 17 00:00:00 2001 From: Christoph Weitkamp Date: Fri, 10 Dec 2021 23:41:08 +0100 Subject: [PATCH] Added basic time-related classes for usage in script and ruled (#2587) Signed-off-by: Christoph Weitkamp --- .../defaultscope/DefaultScriptScopeProvider.java | 12 +++++++++++- .../scoping/ScriptImplicitlyImportedTypes.java | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/bundles/org.openhab.core.automation.module.script/src/main/java/org/openhab/core/automation/module/script/internal/defaultscope/DefaultScriptScopeProvider.java b/bundles/org.openhab.core.automation.module.script/src/main/java/org/openhab/core/automation/module/script/internal/defaultscope/DefaultScriptScopeProvider.java index a6aebedeb87..db39e0e5947 100644 --- a/bundles/org.openhab.core.automation.module.script/src/main/java/org/openhab/core/automation/module/script/internal/defaultscope/DefaultScriptScopeProvider.java +++ b/bundles/org.openhab.core.automation.module.script/src/main/java/org/openhab/core/automation/module/script/internal/defaultscope/DefaultScriptScopeProvider.java @@ -17,6 +17,10 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.time.Duration; +import java.time.ZoneId; +import java.time.ZonedDateTime; +import java.time.temporal.ChronoUnit; import java.util.Collection; import java.util.Collections; import java.util.Map; @@ -147,12 +151,18 @@ public DefaultScriptScopeProvider(final @Reference ItemRegistry itemRegistry, elements.put("PointType", PointType.class); elements.put("StringType", StringType.class); - elements.put("SIUnits", SIUnits.class); elements.put("ImperialUnits", ImperialUnits.class); elements.put("MetricPrefix", MetricPrefix.class); + elements.put("SIUnits", SIUnits.class); elements.put("Units", Units.class); elements.put("BinaryPrefix", BinaryPrefix.class); + // date time static functions + elements.put("ChronoUnit", ChronoUnit.class); + elements.put("Duration", Duration.class); + elements.put("ZoneId", ZoneId.class); + elements.put("ZonedDateTime", ZonedDateTime.class); + // services elements.put("items", new ItemRegistryDelegate(itemRegistry)); elements.put("ir", itemRegistry); diff --git a/bundles/org.openhab.core.model.script/src/org/openhab/core/model/script/scoping/ScriptImplicitlyImportedTypes.java b/bundles/org.openhab.core.model.script/src/org/openhab/core/model/script/scoping/ScriptImplicitlyImportedTypes.java index a2c0ffbae42..440214bb18f 100644 --- a/bundles/org.openhab.core.model.script/src/org/openhab/core/model/script/scoping/ScriptImplicitlyImportedTypes.java +++ b/bundles/org.openhab.core.model.script/src/org/openhab/core/model/script/scoping/ScriptImplicitlyImportedTypes.java @@ -15,7 +15,10 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.net.URLEncoder; +import java.time.Duration; +import java.time.ZoneId; import java.time.ZonedDateTime; +import java.time.temporal.ChronoUnit; import java.util.ArrayList; import java.util.List; @@ -100,6 +103,9 @@ protected List> getStaticImportClasses() { result.add(BinaryPrefix.class); // date time static functions + result.add(ChronoUnit.class); + result.add(Duration.class); + result.add(ZoneId.class); result.add(ZonedDateTime.class); result.addAll(getActionClasses());