org_eclipse_lemminx_extensions_generators_ChildrenPropertiesTest_java
org.eclipse.lemminx.extensions.generators.ChildrenProperties
public void addChildHierarchy(List<String> tags) {
        Long count;
        Cardinality cardinality;
        String tag;
        boolean first = this.orderedTags == null;
        Map tagsCount = tags.stream().collect(Collectors.groupingBy(Function.identity(), LinkedHashMap::new, Collectors.counting()));
        LinkedList newOrderedTags = new LinkedList(tagsCount.keySet());
        for (Map.Entry<String, Cardinality> entry : this.cardinalities.entrySet()) {
            tag = entry.getKey();
            cardinality = entry.getValue();
            count = (Long)tagsCount.remove(tag);
            if (count != null) {
                cardinality.update(count);
                continue;
            }
            cardinality.setMin(0L);
        }
        for (Map.Entry<String, Cardinality> entry : tagsCount.entrySet()) {
            tag = entry.getKey();
            cardinality = this.cardinalities.get(tag);
            if (cardinality == null) {
                cardinality = new Cardinality();
                this.cardinalities.put(tag, cardinality);
            }
            count = (Long)tagsCount.get(tag);
            if (first) {
                cardinality.set(count);
                continue;
            }
            cardinality.update(count);
        }
        for (Map.Entry<String, Cardinality> entry : this.cardinalities.entrySet()) {
            tag = entry.getKey();
            cardinality = entry.getValue();
            if (cardinality.getMin() != 0L) continue;
            if (this.orderedTags != null) {
                this.orderedTags.remove(tag);
            }
            newOrderedTags.remove(tag);
        }
        if (this.sequenced && this.orderedTags != null) {
            this.sequenced = this.orderedTags.equals(newOrderedTags);
        }
        this.orderedTags = newOrderedTags;
    }
 -> java.util.List.stream(): java.util.stream.Stream -> java.util.function.Function.identity(): java.util.function.Function -> java.util.stream.Collectors.counting(): java.util.stream.Collector -> java.util.stream.Collectors.groupingBy(java.util.function.Function,java.util.function.Supplier,java.util.stream.Collector): java.util.stream.Collector -> java.util.stream.Stream.collect(java.util.stream.Collector): java.lang.Object -> java.util.Map.keySet(): java.util.Set -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Map.remove(java.lang.Object): java.lang.Object -> java.lang.Long.longValue(): long -> java.lang.Math.min(long,long): long -> java.lang.Math.max(long,long): long -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Map.remove(java.lang.Object): java.lang.Object -> java.lang.Long.longValue(): long -> java.lang.Math.min(long,long): long -> java.lang.Math.max(long,long): long -> java.util.Iterator.hasNext(): boolean -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.util.Map.put(java.lang.Object,java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.Long.longValue(): long -> java.lang.Math.min(long,long): long -> java.lang.Math.max(long,long): long -> java.util.Iterator.hasNext(): boolean -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.List.remove(java.lang.Object): boolean -> java.util.List.remove(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.List.equals(java.lang.Object): boolean
 [CALL] -> java.util.List.stream(): java.util.stream.Stream -> java.util.function.Function.identity(): java.util.function.Function -> java.util.stream.Collectors.counting(): java.util.stream.Collector -> java.util.stream.Collectors.groupingBy(java.util.function.Function,java.util.function.Supplier,java.util.stream.Collector): java.util.stream.Collector -> java.util.stream.Stream.collect(java.util.stream.Collector): java.lang.Object -> java.util.Map.keySet(): java.util.Set -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Map.remove(java.lang.Object): java.lang.Object -> java.lang.Long.longValue(): long [CALL] [CALL] [EXIT] -> java.lang.Math.min(long,long): long [CALL] [EXIT] [CALL] [EXIT] -> java.lang.Math.max(long,long): long [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object -> java.util.Map.remove(java.lang.Object): java.lang.Object -> java.lang.Long.longValue(): long [CALL] [CALL] [EXIT] -> java.lang.Math.min(long,long): long [CALL] [EXIT] [CALL] [EXIT] -> java.lang.Math.max(long,long): long [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] -> java.util.Map.put(java.lang.Object,java.lang.Object): java.lang.Object -> java.util.Map.get(java.lang.Object): java.lang.Object -> java.lang.Long.longValue(): long [CALL] [CALL] [EXIT] -> java.lang.Math.min(long,long): long [CALL] [EXIT] [CALL] [EXIT] -> java.lang.Math.max(long,long): long [CALL] [EXIT] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Map.entrySet(): java.util.Set -> java.util.Set.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Map$Entry.getKey(): java.lang.Object -> java.util.Map$Entry.getValue(): java.lang.Object [CALL] [EXIT] -> java.util.List.remove(java.lang.Object): boolean -> java.util.List.remove(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean -> java.util.List.equals(java.lang.Object): boolean [EXIT]