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 }