class UpdatableInspectorList extends InspectorList<InspectorType> {

    public void update(final Collection<InspectedType> updates) {

        final ArrayList<UUIDKey> originalItems = new ArrayList<>(map.keySet());

        for (final InspectedType updatable : updates) {

            final InspectorType inspector = map.get(updatable.getUuidKey());

            if (inspector != null) {
                // Everything up to date.
                originalItems.remove(updatable.getUuidKey());
                continue;
            } else {
                final InspectorType newInspector = inspectorFactory.make(updatable);
                add(newInspector);
                map.put(updatable.getUuidKey(),
                        newInspector);
            }
        }

        // Remove left overs, they were not in updates
        for (final UUIDKey originalItem : originalItems) {
            remove(map.remove(originalItem));
        }
    }

    public  UpdatableInspectorList(final InspectorFactory<InspectorType, InspectedType> inspectorFactory,
                                  final AnalyzerConfiguration configuration);

}