1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package dev.metaschema.oscal.lib.profile.resolver.support;
7   
8   import java.util.Set;
9   
10  import dev.metaschema.core.metapath.item.node.IRootAssemblyNodeItem;
11  import dev.metaschema.oscal.lib.profile.resolver.support.IEntityItem.ItemType;
12  import edu.umd.cs.findbugs.annotations.NonNull;
13  
14  /**
15   * A visitor that walks a catalog visiting controls and parameters.
16   */
17  public class ControlIndexingVisitor
18      extends AbstractIndexingVisitor<IIndexer, Void> {
19  
20    public ControlIndexingVisitor(@NonNull Set<ItemType> itemTypesToIndex) {
21      super(itemTypesToIndex);
22    }
23  
24    @SuppressWarnings("null")
25    @Override
26    protected IIndexer getIndexer(IIndexer state) {
27      return state;
28    }
29  
30    @Override
31    protected Void newDefaultResult(IIndexer state) {
32      return null;
33    }
34  
35    @Override
36    protected Void aggregateResults(Void first, Void second, IIndexer state) {
37      return null;
38    }
39  
40    public void visitProfile(@NonNull IRootAssemblyNodeItem root, @NonNull IIndexer index) {
41      visitMetadata(root, index);
42      visitBackMatter(root, index);
43    }
44  }