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 }