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

package org.sbml.libsbml;

/** 
 *  
 * @internal
 */

public class SBMLExternalValidator extends SBMLValidator {
   private long swigCPtr;

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

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

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

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

     return ptr;
   }

  @SuppressWarnings("deprecation")
  protected void finalize() {
    delete();
  }

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

  
/** * @internal */ public
 SBMLExternalValidator() {
    this(libsbmlJNI.new_SBMLExternalValidator__SWIG_0(), true);
  }

  
/** * @internal */ public
 SBMLExternalValidator(SBMLExternalValidator orig) {
    this(libsbmlJNI.new_SBMLExternalValidator__SWIG_1(SBMLExternalValidator.getCPtr(orig), orig), true);
  }

  
/** * @internal */ public
 SBMLValidator cloneObject() {
    long cPtr = libsbmlJNI.SBMLExternalValidator_cloneObject(swigCPtr, this);
    return (cPtr == 0) ? null : new SBMLValidator(cPtr, true);
  }

  
/** * @internal */ public
 long validate() {
    return libsbmlJNI.SBMLExternalValidator_validate(swigCPtr, this);
  }

  
/** * @internal */ public
 String getProgram() {
    return libsbmlJNI.SBMLExternalValidator_getProgram(swigCPtr, this);
  }

  
/** * @internal */ public
 void setProgram(String program) {
    libsbmlJNI.SBMLExternalValidator_setProgram(swigCPtr, this, program);
  }

  
/** * @internal */ public
 String getOutputFileName() {
    return libsbmlJNI.SBMLExternalValidator_getOutputFileName(swigCPtr, this);
  }

  
/** * @internal */ public
 void setOutputFileName(String outputFileName) {
    libsbmlJNI.SBMLExternalValidator_setOutputFileName(swigCPtr, this, outputFileName);
  }

  
/** * @internal */ public
 String getSBMLFileName() {
    return libsbmlJNI.SBMLExternalValidator_getSBMLFileName(swigCPtr, this);
  }

  
/** * @internal */ public
 void setSBMLFileName(String sbmlFileName) {
    libsbmlJNI.SBMLExternalValidator_setSBMLFileName(swigCPtr, this, sbmlFileName);
  }

  
/** * @internal */ public
 void clearArguments() {
    libsbmlJNI.SBMLExternalValidator_clearArguments(swigCPtr, this);
  }

  
/** * @internal */ public
 void addArgument(String arg) {
    libsbmlJNI.SBMLExternalValidator_addArgument(swigCPtr, this, arg);
  }

  
/** * @internal */ public
 long getNumArguments() {
    return libsbmlJNI.SBMLExternalValidator_getNumArguments(swigCPtr, this);
  }

  
/** * @internal */ public
 String getArgument(long n) {
    return libsbmlJNI.SBMLExternalValidator_getArgument(swigCPtr, this, n);
  }

}
