class ExtraColumnsMetaDataProvider implements MetaDataProvider {

    @Override
    public List<String> getKeys()
    {
        List<String> keys = New.list(myOriginal.getKeys());
        Set<String> originalKeys = New.set(keys);

        for (String key : myExtraColumns.keySet())
        {
            if (!originalKeys.contains(key))
            {
                keys.add(key);
            }
        }

        return keys;
    }

    protected  ExtraColumnsMetaDataProvider(ExtraColumnsMetaDataProvider source);
    public  ExtraColumnsMetaDataProvider(MetaDataProvider original, Map<String, Object> extraColumns);

}