001/* 002 * SPDX-FileCopyrightText: none 003 * SPDX-License-Identifier: CC0-1.0 004 */ 005 006package gov.nist.secauto.oscal.lib.model.control.catalog; 007 008import gov.nist.secauto.oscal.lib.model.CatalogGroup; 009 010import java.util.List; 011 012import edu.umd.cs.findbugs.annotations.NonNull; 013 014public interface IGroupContainer extends IControlContainer { 015 016 List<CatalogGroup> getGroups(); 017 018 /** 019 * Add a new {@link CatalogGroup} item to the end of the underlying collection. 020 * 021 * @param item 022 * the item to add 023 * @return {@code true} 024 */ 025 boolean addGroup(@NonNull CatalogGroup item); 026 027 /** 028 * Remove the first matching {@link CatalogGroup} item from the underlying 029 * collection. 030 * 031 * @param item 032 * the item to remove 033 * @return {@code true} if the item was removed or {@code false} otherwise 034 */ 035 boolean removeGroup(@NonNull CatalogGroup item); 036}