private Map<Integer, Object> createVersionedRepresentationsForField(final CustomField field, final CustomFieldTypeModuleDescriptor descriptor, final Issue issue) { return ImmutableMaps.collect(descriptor.getRestSerializers(), new Function<Map.Entry<Integer, CustomFieldRestSerializer>, Option<Map.Entry<Integer, Object>>>() { @Override public Option<Map.Entry<Integer, Object>> apply(final Map.Entry<Integer, CustomFieldRestSerializer> entry) { return getSafelyVersionedRepresentation(entry.getValue(), entry.getKey(), field, issue).map(new Function<JsonData, Map.Entry<Integer, Object>>() { @Override public Map.Entry<Integer, Object> apply(final JsonData jsonData) { return Maps.immutableEntry(entry.getKey(), jsonData.getData()); } }); } }); }