001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package gov.nist.secauto.oscal.lib.model.metadata;
007
008import java.net.URI;
009
010import edu.umd.cs.findbugs.annotations.NonNull;
011import edu.umd.cs.findbugs.annotations.Nullable;
012
013public interface IProperty {
014  @NonNull
015  static URI normalizeNamespace(@Nullable URI namespace) {
016    URI retval = namespace;
017    if (retval == null) {
018      retval = OSCAL_NAMESPACE;
019    }
020    return retval;
021  }
022
023  @SuppressWarnings("null")
024  @NonNull
025  URI OSCAL_NAMESPACE = URI.create("http://csrc.nist.gov/ns/oscal");
026  @SuppressWarnings("null")
027  @NonNull
028  URI RMF_NAMESPACE = URI.create("http://csrc.nist.gov/ns/rmf");
029
030  @Nullable
031  String getName();
032
033  @Nullable
034  URI getNs();
035
036  boolean isNamespaceEqual(@NonNull URI namespace);
037}