/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.12
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package org.sbml.libsbml;

/** 
 *  
 <p>
 * <p style='color: #777; font-style: italic'>
This class of objects is defined by libSBML only and has no direct
equivalent in terms of SBML components.  This class is not prescribed by
the SBML specifications, although it is used to implement features
defined in SBML.
</p>

 * @internal
 */

public class ISBMLExtensionNamespaces extends SBMLNamespaces {
   private long swigCPtr;

   protected ISBMLExtensionNamespaces(long cPtr, boolean cMemoryOwn)
   {
     super(libsbmlJNI.ISBMLExtensionNamespaces_SWIGUpcast(cPtr), cMemoryOwn);
     swigCPtr = cPtr;
   }

   protected static long getCPtr(ISBMLExtensionNamespaces obj)
   {
     return (obj == null) ? 0 : obj.swigCPtr;
   }

   protected static long getCPtrAndDisown (ISBMLExtensionNamespaces obj)
   {
     long ptr = 0;

     if (obj != null)
     {
       ptr             = obj.swigCPtr;
       obj.swigCMemOwn = false;
     }

     return ptr;
   }

  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        libsbmlJNI.delete_ISBMLExtensionNamespaces(swigCPtr);
      }
      swigCPtr = 0;
    }
    super.delete();
  }

  
/**
   * Returns a string representing the SBML XML namespace of this
   * object.
   <p>
   * @return a string representing the SBML namespace that reflects the
   * SBML Level and Version of this object.
   */ public
 String getURI() {
    return libsbmlJNI.ISBMLExtensionNamespaces_getURI(swigCPtr, this);
  }

  public long getPackageVersion() {
    return libsbmlJNI.ISBMLExtensionNamespaces_getPackageVersion(swigCPtr, this);
  }

  
/**
   * Returns the name of the main package for this namespace.
   <p>
   * @return the name of the main package for this namespace.
   * 'core' will be returned if this namespace is defined in the SBML 
   * core. 
   */ public
 String getPackageName() {
    return libsbmlJNI.ISBMLExtensionNamespaces_getPackageName(swigCPtr, this);
  }

  public void setPackageVersion(long pkgVersion) {
    libsbmlJNI.ISBMLExtensionNamespaces_setPackageVersion(swigCPtr, this, pkgVersion);
  }

}
