summaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/mossbar/concepts/Scope.java
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-07-02 23:36:30 +0200
committerLinnea Gräf <nea@nea.moe>2025-07-02 23:36:30 +0200
commit1eae252f41eab7612864fb479263dc93310d8930 (patch)
treeb10172d42668cb8b5199565c0e2eee4ac3e9c5c3 /src/main/java/moe/nea/mossbar/concepts/Scope.java
downloadmossbar-1eae252f41eab7612864fb479263dc93310d8930.tar.gz
mossbar-1eae252f41eab7612864fb479263dc93310d8930.tar.bz2
mossbar-1eae252f41eab7612864fb479263dc93310d8930.zip
init
Diffstat (limited to 'src/main/java/moe/nea/mossbar/concepts/Scope.java')
-rw-r--r--src/main/java/moe/nea/mossbar/concepts/Scope.java27
1 files changed, 27 insertions, 0 deletions
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<ScopeObject> scopedObjects = new ArrayList<>();
+
+ public static Scope root() {
+ return new Scope() {
+ };
+ }
+
+ protected <T extends ScopeObject> 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();
+ }
+ }
+
+}