- public void packDescendants(final int maxDescendants) {\r
- if (descendantOffsetCount <= maxDescendants) {\r
- final Set<EntryDescriptor> descendantOffsets = new LinkedHashSet<EntryDescriptor>();\r
- recursiveAddDescendants(descendantOffsets);\r
- assert descendantOffsets.size() <= maxDescendants;\r
- offsets.clear();\r
- offsets.addAll(descendantOffsets);\r
- children.clear();\r
- } else {\r
- for (final Node child : children.values()) {\r
- child.packDescendants(maxDescendants);\r
- }\r
- }\r
- }\r
-\r
- private void recursiveAddDescendants(final Set<EntryDescriptor> descendantOffsets) {\r
- descendantOffsets.addAll(this.offsets);\r
- for (final Node child : children.values()) {\r
- child.recursiveAddDescendants(descendantOffsets);\r
- }\r
- }\r
-\r