From 1eae252f41eab7612864fb479263dc93310d8930 Mon Sep 17 00:00:00 2001 From: Linnea Gräf Date: Wed, 2 Jul 2025 23:36:30 +0200 Subject: init --- src/main/java/moe/nea/mossbar/concepts/Scope.java | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/moe/nea/mossbar/concepts/Scope.java (limited to 'src/main/java/moe/nea/mossbar/concepts/Scope.java') diff --git a/src/main/java/moe/nea/mossbar/concepts/Scope.java b/src/main/java/moe/nea/mossbar/concepts/Scope.java new file mode 100644 index 0000000..68c5cc1 --- /dev/null +++ b/src/main/java/moe/nea/mossbar/concepts/Scope.java @@ -0,0 +1,27 @@ +package moe.nea.mossbar.concepts; + +import java.util.ArrayList; +import java.util.List; + +public abstract class Scope implements ScopeObject { + List scopedObjects = new ArrayList<>(); + + public static Scope root() { + return new Scope() { + }; + } + + protected T bind(T scopeObject) { + scopedObjects.add(scopeObject); + return scopeObject; + } + + @Override + public void closeObject() { + for (int i = scopedObjects.size() - 1; i >= 0; i--) { + ScopeObject scopeObject = scopedObjects.get(i); + scopeObject.closeObject(); + } + } + +} -- cgit