package org.n3r.eql.util;
import java.util.Collection;
import java.util.Map;
import java.util.Set;
public class OgRoot implements Map<String, Object> {
private final Map map;
public OgRoot(Map<String, Object> m) {
this.map = m;
}
public boolean isNull(Object target) {
return target == null;
}
public boolean isNotNull(Object target) {
return target != null;
}
public boolean isEmpty(Object target) {
if (target == null) return true;
if (target instanceof CharSequence) return ((CharSequence) target).length() == 0;
if (target instanceof Collection) return ((Collection) target).isEmpty();
if (target instanceof Map) return ((Map) target).isEmpty();
if (target instanceof Iterable) return !((Iterable) target).iterator().hasNext();
if (target.getClass().isArray()) return ((Object[]) target).length == 0;
return false;
}
public boolean isNotEmpty(Object target) {
return !isEmpty(target);
}
public boolean isBlank(Object target) {
return isEmpty(target) || target.toString().trim().length() == 0;
}
public boolean isNotBlank(Object target) {
return !isBlank(target);
}
public boolean alike(Object object1, Object object2) {
if (object1 == object2) return true;
if (object1 == null || object2 == null) return false;
return object1.equals(object2) || object1.toString().equals(object2.toString());
}
@Override public int size() {
return map.size();
}
@Override public boolean isEmpty() {
return map.isEmpty();
}
@Override public boolean containsKey(Object key) {
return map.containsKey(key);
}
@Override public boolean containsValue(Object value) {
return map.containsValue(value);
}
@Override public Object get(Object key) {
return map.get(key);
}
@Override public Object put(String key, Object value) {
return map.put(key, value);
}
@Override public Object remove(Object key) {
return map.remove(key);
}
@Override public void putAll(Map<? extends String, ?> m) {
map.putAll(m);
}
@Override public void clear() {
map.clear();
}
@Override public Set<String> keySet() {
return map.keySet();
}
@Override public Collection<Object> values() {
return map.values();
}
@Override public Set<Entry<String, Object>> entrySet() {
return map.entrySet();
}
}