001/* ----------------------------------------------------------------------------
002 * This file was automatically generated by SWIG (http://www.swig.org).
003 * Version 3.0.10
004 *
005 * Do not make changes to this file unless you know what you are doing--modify
006 * the SWIG interface file instead.
007 * ----------------------------------------------------------------------------- */
008
009package org.sbml.libsbml;
010
011/** 
012 * <span class="pkg-marker pkg-color-layout"><a href="group__layout.html">layout</a></span>
013
014 Extension of {@link SpeciesReference}.
015 */
016
017public class LayoutSpeciesReferencePlugin extends SBasePlugin {
018   private long swigCPtr;
019
020   protected LayoutSpeciesReferencePlugin(long cPtr, boolean cMemoryOwn)
021   {
022     super(libsbmlJNI.LayoutSpeciesReferencePlugin_SWIGUpcast(cPtr), cMemoryOwn);
023     swigCPtr = cPtr;
024   }
025
026   protected static long getCPtr(LayoutSpeciesReferencePlugin obj)
027   {
028     return (obj == null) ? 0 : obj.swigCPtr;
029   }
030
031   protected static long getCPtrAndDisown (LayoutSpeciesReferencePlugin obj)
032   {
033     long ptr = 0;
034
035     if (obj != null)
036     {
037       ptr             = obj.swigCPtr;
038       obj.swigCMemOwn = false;
039     }
040
041     return ptr;
042   }
043
044  protected void finalize() {
045    delete();
046  }
047
048  public synchronized void delete() {
049    if (swigCPtr != 0) {
050      if (swigCMemOwn) {
051        swigCMemOwn = false;
052        libsbmlJNI.delete_LayoutSpeciesReferencePlugin(swigCPtr);
053      }
054      swigCPtr = 0;
055    }
056    super.delete();
057  }
058
059  
060/**
061   * Creates a new {@link LayoutSpeciesReferencePlugin} object using the given parameters.
062   <p>
063   * <p>
064 * In the XML representation of an SBML document, XML namespaces are used to
065 * identify the origin of each XML construct used.  XML namespaces are
066 * identified by their unique resource identifiers (URIs).  The core SBML
067 * specifications stipulate the namespaces that must be used for core SBML
068 * constructs; for example, all XML elements that belong to SBML Level&nbsp;3
069 * Version&nbsp;1 Core must be placed in the XML namespace identified by the URI
070 * <code>'http://www.sbml.org/sbml/level3/version1/core'</code>.  Individual
071 * SBML Level&nbsp;3 packages define their own XML namespaces; for example,
072 * all elements belonging to the SBML Level&nbsp;3 Layout Version&nbsp;1
073 * package must be placed in the XML namespace
074 * <code>'http://www.sbml.org/sbml/level3/version1/layout/version1/'</code>.
075   <p>
076   * <p>
077 * The {@link SBMLNamespaces} object encapsulates SBML Level/Version/namespaces
078 * information.  It is used to communicate the SBML Level, Version, and (in
079 * Level&nbsp;3) packages used in addition to SBML Level&nbsp;3 Core.  A
080 * common approach to using libSBML's {@link SBMLNamespaces} facilities is to create an
081 * {@link SBMLNamespaces} object somewhere in a program once, then hand that object
082 * as needed to object constructors that accept {@link SBMLNamespaces} as arguments.
083   <p>
084   * @param uri the URI of the SBML Level&nbsp;3 package implemented by
085   * this libSBML package extension.
086   <p>
087   * @param prefix the XML namespace prefix being used for the package.
088   <p>
089   * @param layoutns the namespaces object for the package.
090   */ public
091 LayoutSpeciesReferencePlugin(String uri, String prefix, LayoutPkgNamespaces layoutns) {
092    this(libsbmlJNI.new_LayoutSpeciesReferencePlugin__SWIG_0(uri, prefix, LayoutPkgNamespaces.getCPtr(layoutns), layoutns), true);
093  }
094
095  
096/**
097   * Copy constructor. Creates a copy of this {@link SBase} object.
098   <p>
099   * @param orig the instance to copy.
100   */ public
101 LayoutSpeciesReferencePlugin(LayoutSpeciesReferencePlugin orig) {
102    this(libsbmlJNI.new_LayoutSpeciesReferencePlugin__SWIG_1(LayoutSpeciesReferencePlugin.getCPtr(orig), orig), true);
103  }
104
105  
106/**
107   * Creates and returns a deep copy of this {@link LayoutSpeciesReferencePlugin} object.
108   <p>
109   * @return a (deep) copy of this {@link LayoutSpeciesReferencePlugin} object.
110   */ public
111 SBasePlugin cloneObject() {
112    long cPtr = libsbmlJNI.LayoutSpeciesReferencePlugin_cloneObject(swigCPtr, this);
113    return (cPtr == 0) ? null : new LayoutSpeciesReferencePlugin(cPtr, true);
114  }
115
116}