1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package gov.nist.secauto.metaschema.core.model;
7   
8   import edu.umd.cs.findbugs.annotations.NonNull;
9   
10  public interface IModelElementVisitable {
11    /**
12     * A visitor callback.
13     *
14     * @param <CONTEXT>
15     *          the type of the context parameter
16     * @param <RESULT>
17     *          the type of the visitor result
18     * @param visitor
19     *          the calling visitor
20     * @param context
21     *          a parameter used to pass contextual information between visitors
22     * @return the visitor result
23     */
24    <CONTEXT, RESULT> RESULT accept(@NonNull IModelElementVisitor<CONTEXT, RESULT> visitor, CONTEXT context);
25  }