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