package org.jtwig.value;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
public class WrappedCollection implements Iterable<Map.Entry<String, Object>> {
public static WrappedCollection empty() {
return new WrappedCollection();
}
public static WrappedCollection singleton (Object value) {
WrappedCollection collection = new WrappedCollection();
collection.add("0", value);
return collection;
}
private final LinkedHashMap<String, Object> store;
public WrappedCollection() {
this.store = new LinkedHashMap<>();
}
public WrappedCollection add (String key, Object value) {
store.put(key, value);
return this;
}
@Override
public Iterator<Map.Entry<String, Object>> iterator() {
return store.entrySet().iterator();
}
public int size() {
return store.size();
}
public Collection<String> keys() {
return store.keySet();
}
public Object getValue(String key) {
if (store.containsKey(key)) {
return store.get(key);
} else {
return Undefined.UNDEFINED;
}
}
public Collection<Object> values() {
return store.values();
}
}