blob: 68c5cc108fc52597baf2fb3629eef4d656673da0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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();
}
}
}
|