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


public class OBFormat extends OBPlugin {
  private long swigCPtr;

  protected OBFormat(long cPtr, boolean cMemoryOwn) {
    super(openbabelJNI.SWIGOBFormatUpcast(cPtr), cMemoryOwn);
    swigCPtr = cPtr;
  }

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

  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if(swigCPtr != 0 && swigCMemOwn) {
      swigCMemOwn = false;
      openbabelJNI.delete_OBFormat(swigCPtr);
    }
    swigCPtr = 0;
    super.delete();
  }

  public static OBFormat Default() {
    long cPtr = openbabelJNI.OBFormat_Default();
    return (cPtr == 0) ? null : new OBFormat(cPtr, false);
  }

  public static OBFormat FindType(String ID) {
    long cPtr = openbabelJNI.OBFormat_FindType(ID);
    return (cPtr == 0) ? null : new OBFormat(cPtr, false);
  }

  public String TypeID() {
    return openbabelJNI.OBFormat_TypeID(swigCPtr, this);
  }

  public boolean ReadMolecule(OBBase arg0, OBConversion arg1) {
    return openbabelJNI.OBFormat_ReadMolecule(swigCPtr, this, OBBase.getCPtr(arg0), arg0, OBConversion.getCPtr(arg1), arg1);
  }

  public boolean ReadChemObject(OBConversion arg0) {
    return openbabelJNI.OBFormat_ReadChemObject(swigCPtr, this, OBConversion.getCPtr(arg0), arg0);
  }

  public boolean WriteMolecule(OBBase arg0, OBConversion arg1) {
    return openbabelJNI.OBFormat_WriteMolecule(swigCPtr, this, OBBase.getCPtr(arg0), arg0, OBConversion.getCPtr(arg1), arg1);
  }

  public boolean WriteChemObject(OBConversion arg0) {
    return openbabelJNI.OBFormat_WriteChemObject(swigCPtr, this, OBConversion.getCPtr(arg0), arg0);
  }

  public String TargetClassDescription() {
    return openbabelJNI.OBFormat_TargetClassDescription(swigCPtr, this);
  }

  public SWIGTYPE_p_std__type_info GetType() {
    return new SWIGTYPE_p_std__type_info(openbabelJNI.OBFormat_GetType(swigCPtr, this), false);
  }

  public String SpecificationURL() {
    return openbabelJNI.OBFormat_SpecificationURL(swigCPtr, this);
  }

  public String GetMIMEType() {
    return openbabelJNI.OBFormat_GetMIMEType(swigCPtr, this);
  }

  public long Flags() {
    return openbabelJNI.OBFormat_Flags(swigCPtr, this);
  }

  public int SkipObjects(int arg0, OBConversion arg1) {
    return openbabelJNI.OBFormat_SkipObjects(swigCPtr, this, arg0, OBConversion.getCPtr(arg1), arg1);
  }

  public OBFormat MakeNewInstance() {
    long cPtr = openbabelJNI.OBFormat_MakeNewInstance(swigCPtr, this);
    return (cPtr == 0) ? null : new OBFormat(cPtr, false);
  }

  public int RegisterFormat(String ID, String MIME) {
    return openbabelJNI.OBFormat_RegisterFormat__SWIG_0(swigCPtr, this, ID, MIME);
  }

  public int RegisterFormat(String ID) {
    return openbabelJNI.OBFormat_RegisterFormat__SWIG_1(swigCPtr, this, ID);
  }

  public boolean Display(SWIGTYPE_p_std__string txt, String param, String ID) {
    return openbabelJNI.OBFormat_Display__SWIG_0(swigCPtr, this, SWIGTYPE_p_std__string.getCPtr(txt), param, ID);
  }

  public boolean Display(SWIGTYPE_p_std__string txt, String param) {
    return openbabelJNI.OBFormat_Display__SWIG_1(swigCPtr, this, SWIGTYPE_p_std__string.getCPtr(txt), param);
  }

  public static OBFormat FormatFromMIME(String MIME) {
    long cPtr = openbabelJNI.OBFormat_FormatFromMIME(MIME);
    return (cPtr == 0) ? null : new OBFormat(cPtr, false);
  }

}
