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