ObjectMap extends AbstractMap<String, Object> { @Override public Collection<Object> values() { return new AbstractCollection<Object>() { @Override public Iterator<Object> iterator() { return new KeyIterator<Object>() { @Override public Object makeValue(String key) { return get(key); } }; } @Override public int size() { return ObjectMap.this.size(); } }; } ObjectMap();  ObjectMap(Object object); Object getObject(); void setObject(Object object); Converter getConverter(); void setConverter(Converter converter); @Override void clear(); @Override boolean containsKey(Object key); @Override boolean containsValue(Object value); @Override Set<Map.Entry<String, Object>> entrySet(); @Override Object get(Object key); @Override boolean isEmpty(); @Override Set<String> keySet(); @Override Object put(String key, Object value); @Override void putAll(Map<? extends String, ? extends Object> map); @Override Object remove(Object key); @Override int size(); @Override Collection<Object> values();  }
@Test public void values() { Collection<Object> expect = (new HashMap<String,Object>() {{ put("field_pub", "pub field value"); put("field_priv", "priv field value"); put("field_int", new Integer(1000)); }}).values(); ObjectMap objmap = new ObjectMap(new ObjValues()); assertTrue(CollectionUtils.isEqualCollection(expect, objmap.values())); }