1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package dev.metaschema.oscal.lib.model.control.catalog;
7   
8   import java.util.List;
9   
10  import dev.metaschema.oscal.lib.model.CatalogGroup;
11  import edu.umd.cs.findbugs.annotations.NonNull;
12  
13  public interface IGroupContainer extends IControlContainer {
14  
15    List<CatalogGroup> getGroups();
16  
17    /**
18     * Add a new {@link CatalogGroup} item to the end of the underlying collection.
19     *
20     * @param item
21     *          the item to add
22     * @return {@code true}
23     */
24    boolean addGroup(@NonNull CatalogGroup item);
25  
26    /**
27     * Remove the first matching {@link CatalogGroup} item from the underlying
28     * collection.
29     *
30     * @param item
31     *          the item to remove
32     * @return {@code true} if the item was removed or {@code false} otherwise
33     */
34    boolean removeGroup(@NonNull CatalogGroup item);
35  }