<commit_before>/**
 * @file    SedNamespaces.h
 * @brief   SedNamespaces class to store level/version and namespace 
 * @author  <NAME>
 * 
 * <!--------------------------------------------------------------------------
 * This file is part of libSed.  Please visit http://sbml.org for more
 * information about Sed, and the latest version of libSed.
 *
 * Copyright (C) 2009-2013 jointly by the following organizations: 
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EBML-EBI), Hinxton, UK
 *  
 * Copyright (C) 2006-2008 by the California Institute of Technology,
 *     Pasadena, CA, USA 
 *  
 * Copyright (C) 2002-2005 jointly by the following organizations: 
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. Japan Science and Technology Agency, Japan
 * 
 * This library is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation.  A copy of the license agreement is provided
 * in the file named "LICENSE.txt" included with this software distribution
 * and also available online as http://sbml.org/software/libsbml/license.html
 * ------------------------------------------------------------------------ -->
 *
 * @class SedNamespaces
 * @ingroup Core
 * @brief Class to store Sed level, version and namespace information.
 *
 * @htmlinclude not-sbml-warning.html
 *
 * There are differences in the definitions of components between different
 * Sed Levels, as well as Versions within Levels.  For example, the
 * "sboTerm" attribute was not introduced until Level&nbsp;2
 * Version&nbsp;2, and then only on certain component classes; the Sed
 * Level&nbsp;2 Version&nbsp;3 specification moved the "sboTerm" attribute
 * to the SBase class, thereby allowing nearly all components to have SBO
 * annotations.  As a result of differences such as those, libSed needs to
 * track the Sed Level and Version of every object created.
 * 
 * The purpose of the SedNamespaces object class is to make it easier to
 * communicate Sed Level and Version data between libSed constructors and
 * other methods.  The SedNamespaces object class tracks 3-tuples
 * (triples) consisting of Sed Level, Version, and the corresponding Sed
 * XML namespace.
 *
 * The plural name (SedNamespaces) is not a mistake, because in Sed
 * Level&nbsp;3, objects may have extensions added by Level&nbsp;3 packages
 * used by a given model and therefore may have multiple namespaces
 * associated with them; however, until the introduction of Sed
 * Level&nbsp;3, the SedNamespaces object only records one Sed
 * Level/Version/namespace combination at a time.  Most constructors for
 * Sed objects in libSed take a SedNamespaces object as an argument,
 * thereby allowing the constructor to produce the proper combination of
 * attributes and other internal data structures for the given Sed Level
 * and Version.
 */

#ifndef SedNamespaces_h
#define SedNamespaces_h

#include <sbml/xml/XMLNamespaces.h>
#include <sedml/common/common.h>
#include <sedml/common/sedmlfwd.h>

#ifdef __cplusplus
namespace LIBSEDML_CPP_NAMESPACE {
  const unsigned int SEDML_DEFAULT_LEVEL   = 1;
  const unsigned int SEDML_DEFAULT_VERSION = 2;
  const char* const SEDML_XMLNS_L1   = "http://sed-ml.org/";  
  const char* const SEDML_XMLNS_L1V1   = "http://sed-ml.org/";  
  const char* const SEDML_XMLNS_L1V2   = "http://sed-ml.org/sed-ml/level1/version2";  
}
#else
static const unsigned int SEDML_DEFAULT_LEVEL   = 1;
static const unsigned int SEDML_DEFAULT_VERSION = 2;
static const char* const SEDML_XMLNS_L1   = "http://sed-ml.org/";
static const char* const SEDML_XMLNS_L1V1   = "http://sed-ml.org/";
static const char* const SEDML_XMLNS_L1V1   = "http://sed-ml.org/";
static const char* const SEDML_XMLNS_L1V2   = "http://sed-ml.org/sed-ml/level1/version2"; 
#endif

#ifdef __cplusplus

#include <string>
#include <stdexcept>

LIBSEDML_CPP_NAMESPACE_BEGIN

class LIBSEDML_EXTERN SedNamespaces
{
public:

  /**
   * Creates a new SedNamespaces object corresponding to the given Sed
   * @p level and @p version.
   *
   * SedNamespaces objects are used in libSed to communicate Sed Level
   * and Version data between constructors and other methods.  The
   * SedNamespaces object class tracks 3-tuples (triples) consisting of
   * Sed Level, Version, and the corresponding Sed XML namespace.  Most
   * constructors for Sed objects in libSed take a SedNamespaces object
   * as an argument, thereby allowing the constructor to produce the proper
   * combination of attributes and other internal data structures for the
   * given Sed Level and Version.
   *
   * The plural name (SedNamespaces) is not a mistake, because in Sed
   * Level&nbsp;3, objects may have extensions added by Level&nbsp;3
   * packages used by a given model and therefore may have multiple
   * namespaces associated with them; however, until the introduction of<commit_msg>- remove duplicated ns<commit_after>/**
 * @file    SedNamespaces.h
 * @brief   SedNamespaces class to store level/version and namespace 
 * @author  <NAME>
 * 
 * <!--------------------------------------------------------------------------
 * This file is part of libSed.  Please visit http://sbml.org for more
 * information about Sed, and the latest version of libSed.
 *
 * Copyright (C) 2009-2013 jointly by the following organizations: 
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. EMBL European Bioinformatics Institute (EBML-EBI), Hinxton, UK
 *  
 * Copyright (C) 2006-2008 by the California Institute of Technology,
 *     Pasadena, CA, USA 
 *  
 * Copyright (C) 2002-2005 jointly by the following organizations: 
 *     1. California Institute of Technology, Pasadena, CA, USA
 *     2. Japan Science and Technology Agency, Japan
 * 
 * This library is free software; you can redistribute it and/or modify it
 * under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation.  A copy of the license agreement is provided
 * in the file named "LICENSE.txt" included with this software distribution
 * and also available online as http://sbml.org/software/libsbml/license.html
 * ------------------------------------------------------------------------ -->
 *
 * @class SedNamespaces
 * @ingroup Core
 * @brief Class to store Sed level, version and namespace information.
 *
 * @htmlinclude not-sbml-warning.html
 *
 * There are differences in the definitions of components between different
 * Sed Levels, as well as Versions within Levels.  For example, the
 * "sboTerm" attribute was not introduced until Level&nbsp;2
 * Version&nbsp;2, and then only on certain component classes; the Sed
 * Level&nbsp;2 Version&nbsp;3 specification moved the "sboTerm" attribute
 * to the SBase class, thereby allowing nearly all components to have SBO
 * annotations.  As a result of differences such as those, libSed needs to
 * track the Sed Level and Version of every object created.
 * 
 * The purpose of the SedNamespaces object class is to make it easier to
 * communicate Sed Level and Version data between libSed constructors and
 * other methods.  The SedNamespaces object class tracks 3-tuples
 * (triples) consisting of Sed Level, Version, and the corresponding Sed
 * XML namespace.
 *
 * The plural name (SedNamespaces) is not a mistake, because in Sed
 * Level&nbsp;3, objects may have extensions added by Level&nbsp;3 packages
 * used by a given model and therefore may have multiple namespaces
 * associated with them; however, until the introduction of Sed
 * Level&nbsp;3, the SedNamespaces object only records one Sed
 * Level/Version/namespace combination at a time.  Most constructors for
 * Sed objects in libSed take a SedNamespaces object as an argument,
 * thereby allowing the constructor to produce the proper combination of
 * attributes and other internal data structures for the given Sed Level
 * and Version.
 */

#ifndef SedNamespaces_h
#define SedNamespaces_h

#include <sbml/xml/XMLNamespaces.h>
#include <sedml/common/common.h>
#include <sedml/common/sedmlfwd.h>

#ifdef __cplusplus
namespace LIBSEDML_CPP_NAMESPACE {
  const unsigned int SEDML_DEFAULT_LEVEL   = 1;
  const unsigned int SEDML_DEFAULT_VERSION = 2;
  const char* const SEDML_XMLNS_L1   = "http://sed-ml.org/";  
  const char* const SEDML_XMLNS_L1V1   = "http://sed-ml.org/";  
  const char* const SEDML_XMLNS_L1V2   = "http://sed-ml.org/sed-ml/level1/version2";  
}
#else
static const unsigned int SEDML_DEFAULT_LEVEL   = 1;
static const unsigned int SEDML_DEFAULT_VERSION = 2;
static const char* const SEDML_XMLNS_L1   = "http://sed-ml.org/";
static const char* const SEDML_XMLNS_L1V1   = "http://sed-ml.org/";
static const char* const SEDML_XMLNS_L1V2   = "http://sed-ml.org/sed-ml/level1/version2"; 
#endif

#ifdef __cplusplus

#include <string>
#include <stdexcept>

LIBSEDML_CPP_NAMESPACE_BEGIN

class LIBSEDML_EXTERN SedNamespaces
{
public:

  /**
   * Creates a new SedNamespaces object corresponding to the given Sed
   * @p level and @p version.
   *
   * SedNamespaces objects are used in libSed to communicate Sed Level
   * and Version data between constructors and other methods.  The
   * SedNamespaces object class tracks 3-tuples (triples) consisting of
   * Sed Level, Version, and the corresponding Sed XML namespace.  Most
   * constructors for Sed objects in libSed take a SedNamespaces object
   * as an argument, thereby allowing the constructor to produce the proper
   * combination of attributes and other internal data structures for the
   * given Sed Level and Version.
   *
   * The plural name (SedNamespaces) is not a mistake, because in Sed
   * Level&nbsp;3, objects may have extensions added by Level&nbsp;3
   * packages used by a given model and therefore may have multiple
   * namespaces associated with them; however, until the introduction of
{'fraction_non_alphanumeric': 0.09834420471650777, 'fraction_numerical': 0.011640742599096839, 'mean_word_length': 3.4670551322277006, 'pattern_counts': {'":': 0, '<': 17, '<?xml version=': 0, '>': 17, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '731074', 'n_tokens_mistral': 2816, 'n_tokens_neox': 2706, 'n_words': 1172}