Permissions and filesystems #9
@ -5,7 +5,6 @@ import java.util.Map;
|
|||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public class Data {
|
public class Data {
|
||||||
public final Data parent;
|
|
||||||
private HashMap<DataKey<Object>, Object> data = new HashMap<>();
|
private HashMap<DataKey<Object>, Object> data = new HashMap<>();
|
||||||
|
|
||||||
public Data copy() {
|
public Data copy() {
|
||||||
@ -33,19 +32,12 @@ public class Data {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
public <T> T get(DataKey<T> key, T val) {
|
public <T> T get(DataKey<T> key, T val) {
|
||||||
for (var it = this; it != null; it = it.parent) {
|
if (data.containsKey(key)) return (T)data.get((DataKey<Object>)key);
|
||||||
if (it.data.containsKey(key)) {
|
|
||||||
return (T)it.data.get((DataKey<Object>)key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
set(key, val);
|
set(key, val);
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
public <T> T get(DataKey<T> key) {
|
public <T> T get(DataKey<T> key) {
|
||||||
for (var it = this; it != null; it = it.parent) {
|
if (data.containsKey(key)) return (T)data.get((DataKey<Object>)key);
|
||||||
if (it.data.containsKey(key)) return (T)it.data.get((DataKey<Object>)key);
|
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
public boolean has(DataKey<?> key) { return data.containsKey(key); }
|
public boolean has(DataKey<?> key) { return data.containsKey(key); }
|
||||||
@ -61,11 +53,4 @@ public class Data {
|
|||||||
public int increase(DataKey<Integer> key) {
|
public int increase(DataKey<Integer> key) {
|
||||||
return increase(key, 1, 0);
|
return increase(key, 1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Data() {
|
|
||||||
this.parent = null;
|
|
||||||
}
|
|
||||||
public Data(Data parent) {
|
|
||||||
this.parent = parent;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user