package org.argeo.api.gcr.spi; import java.util.AbstractMap; import java.util.HashSet; import java.util.Set; import org.argeo.api.gcr.Content; public abstract class AbstractContent extends AbstractMap implements Content { @Override public Set> entrySet() { Set> result = new HashSet<>(); for (String key : keys()) { Entry entry = new Entry() { @Override public String getKey() { return key; } @Override public Object getValue() { // TODO check type return get(key, Object.class); } @Override public Object setValue(Object value) { throw new UnsupportedOperationException(); } }; result.add(entry); } return result; } protected abstract Iterable keys(); /* * UTILITIES */ protected boolean isDefaultAttrTypeRequested(Class clss) { // check whether clss is Object.class return clss.isAssignableFrom(Object.class); } }