1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package gov.nist.secauto.metaschema.databind.model;
7   
8   import gov.nist.secauto.metaschema.core.model.JsonGroupAsBehavior;
9   import gov.nist.secauto.metaschema.core.model.XmlGroupAsBehavior;
10  import gov.nist.secauto.metaschema.core.qname.IEnhancedQName;
11  
12  import edu.umd.cs.findbugs.annotations.NonNull;
13  import edu.umd.cs.findbugs.annotations.Nullable;
14  
15  /**
16   * A data object to record the group as selections.
17   */
18  public interface IGroupAs {
19    @NonNull
20    IGroupAs SINGLETON_GROUP_AS = new IGroupAs() {
21      @Override
22      public IEnhancedQName getGroupAsQName() {
23        return null;
24      }
25  
26      @Override
27      public JsonGroupAsBehavior getJsonGroupAsBehavior() {
28        return JsonGroupAsBehavior.NONE;
29      }
30  
31      @Override
32      public XmlGroupAsBehavior getXmlGroupAsBehavior() {
33        return XmlGroupAsBehavior.UNGROUPED;
34      }
35    };
36  
37    @Nullable
38    IEnhancedQName getGroupAsQName();
39  
40    @NonNull
41    JsonGroupAsBehavior getJsonGroupAsBehavior();
42  
43    @NonNull
44    XmlGroupAsBehavior getXmlGroupAsBehavior();
45  }