private void sync(Collection<FileDescriptor> target, Map<String, FileDescriptor> after) {
        Map<String, FileDescriptor> before = getCache(target);
        Map<String, FileDescriptor> all = new HashMap<>();
        all.putAll(before);
        all.putAll(after);
        for (Map.Entry<String, FileDescriptor> entry : all.entrySet()) {
            String key = entry.getKey();
            FileDescriptor fileDescriptor = entry.getValue();
            boolean hasBefore = before.containsKey(key);
            boolean hasAfter = after.containsKey(key);
            if (hasBefore && !hasAfter) {
                target.remove(fileDescriptor);
            } else if (!hasBefore && hasAfter) {
                target.add(fileDescriptor);
            }
        }
    }
private void sync(Collection<FileDescriptor> target, Map<String, FileDescriptor> after) {
        Map<String, FileDescriptor> before = getCache(target);
        Map<String, FileDescriptor> all = new HashMap<>();
        all.putAll(before);
        all.putAll(after);
        for (Map.Entry<String, FileDescriptor> entry : all.entrySet()) {
            String key = entry.getKey();
            FileDescriptor fileDescriptor = entry.getValue();
            boolean hasBefore = before.containsKey(key);
            boolean hasAfter = after.containsKey(key);
            if (hasBefore && !hasAfter) {
                target.remove(fileDescriptor);
            } else if (!hasBefore && hasAfter) {
                target.add(fileDescriptor);
            }
        }
    }
private void sync ( Collection < FileDescriptor > target , Map < String , FileDescriptor > after ) { Map < String , FileDescriptor > before = getCache ( target ) ; Map < String , FileDescriptor > all = new HashMap <> ( ) ; all . putAll ( before ) ; all . putAll ( after ) ; for ( Map . Entry < String , FileDescriptor > entry : all . entrySet ( ) ) { String key = entry . getKey ( ) ; FileDescriptor fileDescriptor = entry . getValue ( ) ; boolean hasBefore = before . containsKey ( key ) ; boolean hasAfter = after . containsKey ( key ) ; if ( hasBefore && ! hasAfter ) { target . remove ( fileDescriptor ) ; } else if ( ! hasBefore && hasAfter ) { target . add ( fileDescriptor ) ; } } }
Sync the given target collection with the new state from the cache map.

@param target The target collection.
@param after  The new state to sync to.
Sync the given target collection with the new state from the cache map .