001/* 002 * SPDX-FileCopyrightText: none 003 * SPDX-License-Identifier: CC0-1.0 004 */ 005 006package gov.nist.secauto.metaschema.databind.model; 007 008import gov.nist.secauto.metaschema.core.model.JsonGroupAsBehavior; 009import gov.nist.secauto.metaschema.core.model.XmlGroupAsBehavior; 010import gov.nist.secauto.metaschema.core.qname.IEnhancedQName; 011 012import edu.umd.cs.findbugs.annotations.NonNull; 013import edu.umd.cs.findbugs.annotations.Nullable; 014 015/** 016 * A data object to record the group as selections. 017 */ 018public interface IGroupAs { 019 @NonNull 020 IGroupAs SINGLETON_GROUP_AS = new IGroupAs() { 021 @Override 022 public IEnhancedQName getGroupAsQName() { 023 return null; 024 } 025 026 @Override 027 public JsonGroupAsBehavior getJsonGroupAsBehavior() { 028 return JsonGroupAsBehavior.NONE; 029 } 030 031 @Override 032 public XmlGroupAsBehavior getXmlGroupAsBehavior() { 033 return XmlGroupAsBehavior.UNGROUPED; 034 } 035 }; 036 037 @Nullable 038 IEnhancedQName getGroupAsQName(); 039 040 @NonNull 041 JsonGroupAsBehavior getJsonGroupAsBehavior(); 042 043 @NonNull 044 XmlGroupAsBehavior getXmlGroupAsBehavior(); 045}