MCPcopy Create free account
hub / github.com/apache/calcite / ArrowSet

Method ArrowSet

core/src/main/java/org/apache/calcite/util/ArrowSet.java:60–79  ·  view source on GitHub ↗
(Set<Arrow> arrows)

Source from the content-addressed store, hash-verified

58 private final ImmutableMap<Integer, ImmutableSet<Arrow>> ordinalToArrows;
59
60 public ArrowSet(Set<Arrow> arrows) {
61 Set<Arrow> minimalArrows = computeMinimalDependencySet(arrows);
62 arrowSet = ImmutableList.copyOf(minimalArrows);
63 Map<ImmutableBitSet, ImmutableBitSet> detToDep = new HashMap<>();
64 Map<Integer, Set<Arrow>> ordToArrows = new HashMap<>();
65 for (Arrow arrow : minimalArrows) {
66 ImmutableBitSet determinants = arrow.getDeterminants();
67 ImmutableBitSet dependents = arrow.getDependents();
68 detToDep.merge(determinants, dependents, ImmutableBitSet::union);
69 for (int det : determinants) {
70 ordToArrows.computeIfAbsent(det, k -> new HashSet<>()).add(arrow);
71 }
72 }
73 determinantsToDependentsMap = ImmutableMap.copyOf(detToDep);
74 ImmutableMap.Builder<Integer, ImmutableSet<Arrow>> builder = ImmutableMap.builder();
75 for (Map.Entry<Integer, Set<Arrow>> entry : ordToArrows.entrySet()) {
76 builder.put(entry.getKey(), ImmutableSet.copyOf(entry.getValue()));
77 }
78 ordinalToArrows = builder.build();
79 }
80
81 //~ Methods ----------------------------------------------------------------
82

Callers

nothing calls this directly

Calls 12

getDeterminantsMethod · 0.80
getDependentsMethod · 0.80
copyOfMethod · 0.65
mergeMethod · 0.65
addMethod · 0.65
builderMethod · 0.65
getKeyMethod · 0.65
buildMethod · 0.65
entrySetMethod · 0.45
putMethod · 0.45
getValueMethod · 0.45

Tested by

no test coverage detected