package com.googlecode.totallylazy; import com.googlecode.totallylazy.reflection.Fields; import java.util.AbstractMap; import java.util.Set; import static com.googlecode.totallylazy.reflection.Fields.nonSyntheticFields; import static com.googlecode.totallylazy.Pair.pair; import static com.googlecode.totallylazy.Sets.set; import static java.util.Collections.unmodifiableSet; public abstract class Record extends AbstractMap<String, Object> { @Override public Set<Entry<String, Object>> entrySet() { return unmodifiableSet(set(nonSyntheticFields(getClass()).map(f -> pair(f.getName(), Fields.get(f, Record.this))))); } }