001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.oscal.lib.model.control;
007
008import java.util.List;
009import java.util.function.Predicate;
010import java.util.stream.Stream;
011
012import dev.metaschema.core.datatype.markup.MarkupMultiline;
013import dev.metaschema.core.datatype.markup.flexmark.InsertAnchorExtension;
014import dev.metaschema.core.datatype.markup.flexmark.InsertAnchorExtension.InsertAnchorNode;
015import dev.metaschema.oscal.lib.model.ControlPart;
016import edu.umd.cs.findbugs.annotations.NonNull;
017
018public interface IPart {
019  MarkupMultiline getProse();
020
021  List<ControlPart> getParts();
022
023  @NonNull
024  Stream<InsertAnchorExtension.InsertAnchorNode> getInserts(@NonNull Predicate<InsertAnchorNode> filter);
025}