diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-07-02 23:36:30 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-07-02 23:36:30 +0200 |
| commit | 1eae252f41eab7612864fb479263dc93310d8930 (patch) | |
| tree | b10172d42668cb8b5199565c0e2eee4ac3e9c5c3 /src/main/java/moe/nea/mossbar/concepts/Scope.java | |
| download | mossbar-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.java | 27 |
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(); + } + } + +} |
