
/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaTrackPattern
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaTrackPattern_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaTrackPattern_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaTrackPatternObject* self = (PyoaIntAppDef_oaTrackPatternObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaTrackPattern)
    {
        PyParamoaIntAppDef_oaTrackPattern p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaTrackPattern_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaTrackPattern, Choices are:\n"
        "    (oaIntAppDef_oaTrackPattern)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaTrackPattern_tp_dealloc(PyoaIntAppDef_oaTrackPatternObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaTrackPattern_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaTrackPattern value;
    int convert_status=PyoaIntAppDef_oaTrackPattern_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[48];
    sprintf(buffer,"<oaIntAppDef_oaTrackPattern::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaTrackPattern_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaTrackPattern v1;
    PyParamoaIntAppDef_oaTrackPattern v2;
    int convert_status1=PyoaIntAppDef_oaTrackPattern_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaTrackPattern_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaTrackPattern_Convert(PyObject* ob,PyParamoaIntAppDef_oaTrackPattern* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaTrackPattern_Check(ob)) {
        result->SetData( (oaIntAppDef_oaTrackPattern**) ((PyoaIntAppDef_oaTrackPatternObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaTrackPattern Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaTrackPattern_FromoaIntAppDef_oaTrackPattern(oaIntAppDef_oaTrackPattern** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaTrackPattern* data=*value;
        PyObject* bself = PyoaIntAppDef_oaTrackPattern_Type.tp_alloc(&PyoaIntAppDef_oaTrackPattern_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaTrackPatternObject* self = (PyoaIntAppDef_oaTrackPatternObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaTrackPattern_FromoaIntAppDef_oaTrackPattern(oaIntAppDef_oaTrackPattern* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaTrackPattern_Type.tp_alloc(&PyoaIntAppDef_oaTrackPattern_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaTrackPatternObject* self = (PyoaIntAppDef_oaTrackPatternObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaTrackPattern_get_doc[] = 
"Class: oaIntAppDef_oaTrackPattern, Function: get\n"
"  Paramegers: (oaTrackPattern)\n"
"    Calls: oaInt4 get(const oaTrackPattern* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaTrackPattern,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaTrackPattern_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaTrackPattern data;
    int convert_status=PyoaIntAppDef_oaTrackPattern_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaTrackPatternObject* self=(PyoaIntAppDef_oaTrackPatternObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaTrackPattern p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaTrackPattern_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaTrackPattern_getDefault_doc[] = 
"Class: oaIntAppDef_oaTrackPattern, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaTrackPattern_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaTrackPattern data;
    int convert_status=PyoaIntAppDef_oaTrackPattern_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaTrackPatternObject* self=(PyoaIntAppDef_oaTrackPatternObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaTrackPattern_set_doc[] = 
"Class: oaIntAppDef_oaTrackPattern, Function: set\n"
"  Paramegers: (oaTrackPattern,oaInt4)\n"
"    Calls: void set(oaTrackPattern* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaTrackPattern,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaTrackPattern_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaTrackPattern data;
    int convert_status=PyoaIntAppDef_oaTrackPattern_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaTrackPatternObject* self=(PyoaIntAppDef_oaTrackPatternObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaTrackPattern p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaTrackPattern_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaTrackPattern_isNull_doc[] =
"Class: oaIntAppDef_oaTrackPattern, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaTrackPattern_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaTrackPattern data;
    int convert_status=PyoaIntAppDef_oaTrackPattern_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaTrackPattern_assign_doc[] = 
"Class: oaIntAppDef_oaTrackPattern, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaTrackPattern_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaTrackPattern data;
  int convert_status=PyoaIntAppDef_oaTrackPattern_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaTrackPattern p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaTrackPattern_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaTrackPattern_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaTrackPattern_get,METH_VARARGS,oaIntAppDef_oaTrackPattern_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaTrackPattern_getDefault,METH_VARARGS,oaIntAppDef_oaTrackPattern_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaTrackPattern_set,METH_VARARGS,oaIntAppDef_oaTrackPattern_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaTrackPattern_tp_isNull,METH_VARARGS,oaIntAppDef_oaTrackPattern_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaTrackPattern_tp_assign,METH_VARARGS,oaIntAppDef_oaTrackPattern_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaTrackPattern_doc[] = 
"Class: oaIntAppDef_oaTrackPattern\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaTrackPattern)\n"
"    Calls: (const oaIntAppDef_oaTrackPattern&)\n"
"    Signature: oaIntAppDef_oaTrackPattern||cref-oaIntAppDef_oaTrackPattern,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaTrackPattern_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaTrackPattern",
    sizeof(PyoaIntAppDef_oaTrackPatternObject),
    0,
    (destructor)oaIntAppDef_oaTrackPattern_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaTrackPattern_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaTrackPattern_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaTrackPattern_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaTrackPattern_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaTrackPattern_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaTrackPattern_static_find_doc[] = 
"Class: oaIntAppDef_oaTrackPattern, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaTrackPattern* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaTrackPattern|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaTrackPattern* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaTrackPattern|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaTrackPattern_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaTrackPatternp result= (oaIntAppDef_oaTrackPattern::find(p1.Data()));
            return PyoaIntAppDef_oaTrackPattern_FromoaIntAppDef_oaTrackPattern(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaTrackPatternp result= (oaIntAppDef_oaTrackPattern::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaTrackPattern_FromoaIntAppDef_oaTrackPattern(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaTrackPattern, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaTrackPattern_static_get_doc[] = 
"Class: oaIntAppDef_oaTrackPattern, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaTrackPattern* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaTrackPattern|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaTrackPattern* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaTrackPattern|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaTrackPattern* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaTrackPattern|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaTrackPattern* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaTrackPattern|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaTrackPattern* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaTrackPattern|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaTrackPattern* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaTrackPattern|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaTrackPattern_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaTrackPatternp result= (oaIntAppDef_oaTrackPattern::get(p1.Data()));
            return PyoaIntAppDef_oaTrackPattern_FromoaIntAppDef_oaTrackPattern(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaTrackPatternp result= (oaIntAppDef_oaTrackPattern::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaTrackPattern_FromoaIntAppDef_oaTrackPattern(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaTrackPatternp result= (oaIntAppDef_oaTrackPattern::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaTrackPattern_FromoaIntAppDef_oaTrackPattern(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaTrackPatternp result= (oaIntAppDef_oaTrackPattern::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaTrackPattern_FromoaIntAppDef_oaTrackPattern(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaTrackPatternp result= (oaIntAppDef_oaTrackPattern::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaTrackPattern_FromoaIntAppDef_oaTrackPattern(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaTrackPatternp result= (oaIntAppDef_oaTrackPattern::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaTrackPattern_FromoaIntAppDef_oaTrackPattern(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaTrackPattern, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaTrackPattern_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaTrackPattern_static_find,METH_VARARGS,oaIntAppDef_oaTrackPattern_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaTrackPattern_static_get,METH_VARARGS,oaIntAppDef_oaTrackPattern_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaTrackPattern_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaTrackPattern_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaTrackPattern\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaTrackPattern",
           (PyObject*)(&PyoaIntAppDef_oaTrackPattern_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaTrackPattern\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaTrackPattern_Type.tp_dict;
    for(method=oaIntAppDef_oaTrackPattern_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaValue
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaValue_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaValue_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaValueObject* self = (PyoaIntAppDef_oaValueObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaValue)
    {
        PyParamoaIntAppDef_oaValue p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaValue_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaValue, Choices are:\n"
        "    (oaIntAppDef_oaValue)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaValue_tp_dealloc(PyoaIntAppDef_oaValueObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaValue_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaValue value;
    int convert_status=PyoaIntAppDef_oaValue_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[41];
    sprintf(buffer,"<oaIntAppDef_oaValue::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaValue_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaValue v1;
    PyParamoaIntAppDef_oaValue v2;
    int convert_status1=PyoaIntAppDef_oaValue_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaValue_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaValue_Convert(PyObject* ob,PyParamoaIntAppDef_oaValue* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaValue_Check(ob)) {
        result->SetData( (oaIntAppDef_oaValue**) ((PyoaIntAppDef_oaValueObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaValue Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaValue_FromoaIntAppDef_oaValue(oaIntAppDef_oaValue** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaValue* data=*value;
        PyObject* bself = PyoaIntAppDef_oaValue_Type.tp_alloc(&PyoaIntAppDef_oaValue_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaValueObject* self = (PyoaIntAppDef_oaValueObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaValue_FromoaIntAppDef_oaValue(oaIntAppDef_oaValue* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaValue_Type.tp_alloc(&PyoaIntAppDef_oaValue_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaValueObject* self = (PyoaIntAppDef_oaValueObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaValue_get_doc[] = 
"Class: oaIntAppDef_oaValue, Function: get\n"
"  Paramegers: (oaValue)\n"
"    Calls: oaInt4 get(const oaValue* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaValue,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaValue_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaValue data;
    int convert_status=PyoaIntAppDef_oaValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaValueObject* self=(PyoaIntAppDef_oaValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaValue p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaValue_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaValue_getDefault_doc[] = 
"Class: oaIntAppDef_oaValue, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaValue_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaValue data;
    int convert_status=PyoaIntAppDef_oaValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaValueObject* self=(PyoaIntAppDef_oaValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaValue_set_doc[] = 
"Class: oaIntAppDef_oaValue, Function: set\n"
"  Paramegers: (oaValue,oaInt4)\n"
"    Calls: void set(oaValue* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaValue,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaValue_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaValue data;
    int convert_status=PyoaIntAppDef_oaValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaValueObject* self=(PyoaIntAppDef_oaValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaValue p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaValue_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaValue_isNull_doc[] =
"Class: oaIntAppDef_oaValue, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaValue_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaValue data;
    int convert_status=PyoaIntAppDef_oaValue_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaValue_assign_doc[] = 
"Class: oaIntAppDef_oaValue, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaValue_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaValue data;
  int convert_status=PyoaIntAppDef_oaValue_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaValue p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaValue_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaValue_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaValue_get,METH_VARARGS,oaIntAppDef_oaValue_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaValue_getDefault,METH_VARARGS,oaIntAppDef_oaValue_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaValue_set,METH_VARARGS,oaIntAppDef_oaValue_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaValue_tp_isNull,METH_VARARGS,oaIntAppDef_oaValue_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaValue_tp_assign,METH_VARARGS,oaIntAppDef_oaValue_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaValue_doc[] = 
"Class: oaIntAppDef_oaValue\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaValue)\n"
"    Calls: (const oaIntAppDef_oaValue&)\n"
"    Signature: oaIntAppDef_oaValue||cref-oaIntAppDef_oaValue,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaValue_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaValue",
    sizeof(PyoaIntAppDef_oaValueObject),
    0,
    (destructor)oaIntAppDef_oaValue_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaValue_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaValue_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaValue_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaValue_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaValue_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaValue_static_find_doc[] = 
"Class: oaIntAppDef_oaValue, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaValue* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaValue|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaValue* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaValue|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaValue_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaValuep result= (oaIntAppDef_oaValue::find(p1.Data()));
            return PyoaIntAppDef_oaValue_FromoaIntAppDef_oaValue(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaValuep result= (oaIntAppDef_oaValue::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaValue_FromoaIntAppDef_oaValue(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaValue, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaValue_static_get_doc[] = 
"Class: oaIntAppDef_oaValue, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaValue* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaValue|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaValue* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaValue|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaValue* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaValue|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaValue* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaValue|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaValue* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaValue|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaValue* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaValue|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaValue_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaValuep result= (oaIntAppDef_oaValue::get(p1.Data()));
            return PyoaIntAppDef_oaValue_FromoaIntAppDef_oaValue(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaValuep result= (oaIntAppDef_oaValue::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaValue_FromoaIntAppDef_oaValue(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaValuep result= (oaIntAppDef_oaValue::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaValue_FromoaIntAppDef_oaValue(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaValuep result= (oaIntAppDef_oaValue::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaValue_FromoaIntAppDef_oaValue(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaValuep result= (oaIntAppDef_oaValue::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaValue_FromoaIntAppDef_oaValue(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaValuep result= (oaIntAppDef_oaValue::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaValue_FromoaIntAppDef_oaValue(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaValue, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaValue_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaValue_static_find,METH_VARARGS,oaIntAppDef_oaValue_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaValue_static_get,METH_VARARGS,oaIntAppDef_oaValue_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaValue_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaValue_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaValue\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaValue",
           (PyObject*)(&PyoaIntAppDef_oaValue_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaValue\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaValue_Type.tp_dict;
    for(method=oaIntAppDef_oaValue_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaVectorInstDef
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaVectorInstDef_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaVectorInstDef_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaVectorInstDefObject* self = (PyoaIntAppDef_oaVectorInstDefObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaVectorInstDef)
    {
        PyParamoaIntAppDef_oaVectorInstDef p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaVectorInstDef_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaVectorInstDef, Choices are:\n"
        "    (oaIntAppDef_oaVectorInstDef)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaVectorInstDef_tp_dealloc(PyoaIntAppDef_oaVectorInstDefObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaVectorInstDef_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaVectorInstDef value;
    int convert_status=PyoaIntAppDef_oaVectorInstDef_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[49];
    sprintf(buffer,"<oaIntAppDef_oaVectorInstDef::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaVectorInstDef_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaVectorInstDef v1;
    PyParamoaIntAppDef_oaVectorInstDef v2;
    int convert_status1=PyoaIntAppDef_oaVectorInstDef_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaVectorInstDef_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaVectorInstDef_Convert(PyObject* ob,PyParamoaIntAppDef_oaVectorInstDef* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaVectorInstDef_Check(ob)) {
        result->SetData( (oaIntAppDef_oaVectorInstDef**) ((PyoaIntAppDef_oaVectorInstDefObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaVectorInstDef Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaVectorInstDef_FromoaIntAppDef_oaVectorInstDef(oaIntAppDef_oaVectorInstDef** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaVectorInstDef* data=*value;
        PyObject* bself = PyoaIntAppDef_oaVectorInstDef_Type.tp_alloc(&PyoaIntAppDef_oaVectorInstDef_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaVectorInstDefObject* self = (PyoaIntAppDef_oaVectorInstDefObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaVectorInstDef_FromoaIntAppDef_oaVectorInstDef(oaIntAppDef_oaVectorInstDef* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaVectorInstDef_Type.tp_alloc(&PyoaIntAppDef_oaVectorInstDef_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaVectorInstDefObject* self = (PyoaIntAppDef_oaVectorInstDefObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaVectorInstDef_get_doc[] = 
"Class: oaIntAppDef_oaVectorInstDef, Function: get\n"
"  Paramegers: (oaVectorInstDef)\n"
"    Calls: oaInt4 get(const oaVectorInstDef* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaVectorInstDef,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaVectorInstDef_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaVectorInstDef data;
    int convert_status=PyoaIntAppDef_oaVectorInstDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaVectorInstDefObject* self=(PyoaIntAppDef_oaVectorInstDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaVectorInstDef p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaVectorInstDef_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaVectorInstDef_getDefault_doc[] = 
"Class: oaIntAppDef_oaVectorInstDef, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaVectorInstDef_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaVectorInstDef data;
    int convert_status=PyoaIntAppDef_oaVectorInstDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaVectorInstDefObject* self=(PyoaIntAppDef_oaVectorInstDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaVectorInstDef_set_doc[] = 
"Class: oaIntAppDef_oaVectorInstDef, Function: set\n"
"  Paramegers: (oaVectorInstDef,oaInt4)\n"
"    Calls: void set(oaVectorInstDef* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaVectorInstDef,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaVectorInstDef_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaVectorInstDef data;
    int convert_status=PyoaIntAppDef_oaVectorInstDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaVectorInstDefObject* self=(PyoaIntAppDef_oaVectorInstDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaVectorInstDef p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaVectorInstDef_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaVectorInstDef_isNull_doc[] =
"Class: oaIntAppDef_oaVectorInstDef, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaVectorInstDef_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaVectorInstDef data;
    int convert_status=PyoaIntAppDef_oaVectorInstDef_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaVectorInstDef_assign_doc[] = 
"Class: oaIntAppDef_oaVectorInstDef, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaVectorInstDef_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaVectorInstDef data;
  int convert_status=PyoaIntAppDef_oaVectorInstDef_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaVectorInstDef p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaVectorInstDef_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaVectorInstDef_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaVectorInstDef_get,METH_VARARGS,oaIntAppDef_oaVectorInstDef_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaVectorInstDef_getDefault,METH_VARARGS,oaIntAppDef_oaVectorInstDef_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaVectorInstDef_set,METH_VARARGS,oaIntAppDef_oaVectorInstDef_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaVectorInstDef_tp_isNull,METH_VARARGS,oaIntAppDef_oaVectorInstDef_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaVectorInstDef_tp_assign,METH_VARARGS,oaIntAppDef_oaVectorInstDef_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaVectorInstDef_doc[] = 
"Class: oaIntAppDef_oaVectorInstDef\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaVectorInstDef)\n"
"    Calls: (const oaIntAppDef_oaVectorInstDef&)\n"
"    Signature: oaIntAppDef_oaVectorInstDef||cref-oaIntAppDef_oaVectorInstDef,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaVectorInstDef_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaVectorInstDef",
    sizeof(PyoaIntAppDef_oaVectorInstDefObject),
    0,
    (destructor)oaIntAppDef_oaVectorInstDef_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaVectorInstDef_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaVectorInstDef_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaVectorInstDef_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaVectorInstDef_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaVectorInstDef_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaVectorInstDef_static_find_doc[] = 
"Class: oaIntAppDef_oaVectorInstDef, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaVectorInstDef* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaVectorInstDef|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaVectorInstDef* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaVectorInstDef|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaVectorInstDef_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaVectorInstDefp result= (oaIntAppDef_oaVectorInstDef::find(p1.Data()));
            return PyoaIntAppDef_oaVectorInstDef_FromoaIntAppDef_oaVectorInstDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaVectorInstDefp result= (oaIntAppDef_oaVectorInstDef::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaVectorInstDef_FromoaIntAppDef_oaVectorInstDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaVectorInstDef, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaVectorInstDef_static_get_doc[] = 
"Class: oaIntAppDef_oaVectorInstDef, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaVectorInstDef* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaVectorInstDef|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaVectorInstDef* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaVectorInstDef|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaVectorInstDef* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaVectorInstDef|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaVectorInstDef* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaVectorInstDef|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaVectorInstDef* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaVectorInstDef|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaVectorInstDef* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaVectorInstDef|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaVectorInstDef_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaVectorInstDefp result= (oaIntAppDef_oaVectorInstDef::get(p1.Data()));
            return PyoaIntAppDef_oaVectorInstDef_FromoaIntAppDef_oaVectorInstDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaVectorInstDefp result= (oaIntAppDef_oaVectorInstDef::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaVectorInstDef_FromoaIntAppDef_oaVectorInstDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaVectorInstDefp result= (oaIntAppDef_oaVectorInstDef::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaVectorInstDef_FromoaIntAppDef_oaVectorInstDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaVectorInstDefp result= (oaIntAppDef_oaVectorInstDef::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaVectorInstDef_FromoaIntAppDef_oaVectorInstDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaVectorInstDefp result= (oaIntAppDef_oaVectorInstDef::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaVectorInstDef_FromoaIntAppDef_oaVectorInstDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaVectorInstDefp result= (oaIntAppDef_oaVectorInstDef::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaVectorInstDef_FromoaIntAppDef_oaVectorInstDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaVectorInstDef, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaVectorInstDef_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaVectorInstDef_static_find,METH_VARARGS,oaIntAppDef_oaVectorInstDef_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaVectorInstDef_static_get,METH_VARARGS,oaIntAppDef_oaVectorInstDef_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaVectorInstDef_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaVectorInstDef_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaVectorInstDef\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaVectorInstDef",
           (PyObject*)(&PyoaIntAppDef_oaVectorInstDef_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaVectorInstDef\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaVectorInstDef_Type.tp_dict;
    for(method=oaIntAppDef_oaVectorInstDef_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaVia
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaVia_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaVia_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaViaObject* self = (PyoaIntAppDef_oaViaObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaVia)
    {
        PyParamoaIntAppDef_oaVia p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaVia_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaVia, Choices are:\n"
        "    (oaIntAppDef_oaVia)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaVia_tp_dealloc(PyoaIntAppDef_oaViaObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaVia_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaVia value;
    int convert_status=PyoaIntAppDef_oaVia_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[39];
    sprintf(buffer,"<oaIntAppDef_oaVia::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaVia_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaVia v1;
    PyParamoaIntAppDef_oaVia v2;
    int convert_status1=PyoaIntAppDef_oaVia_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaVia_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaVia_Convert(PyObject* ob,PyParamoaIntAppDef_oaVia* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaVia_Check(ob)) {
        result->SetData( (oaIntAppDef_oaVia**) ((PyoaIntAppDef_oaViaObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaVia Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaVia_FromoaIntAppDef_oaVia(oaIntAppDef_oaVia** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaVia* data=*value;
        PyObject* bself = PyoaIntAppDef_oaVia_Type.tp_alloc(&PyoaIntAppDef_oaVia_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaViaObject* self = (PyoaIntAppDef_oaViaObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaVia_FromoaIntAppDef_oaVia(oaIntAppDef_oaVia* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaVia_Type.tp_alloc(&PyoaIntAppDef_oaVia_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaViaObject* self = (PyoaIntAppDef_oaViaObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaVia_get_doc[] = 
"Class: oaIntAppDef_oaVia, Function: get\n"
"  Paramegers: (oaVia)\n"
"    Calls: oaInt4 get(const oaVia* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaVia,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaVia_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaVia data;
    int convert_status=PyoaIntAppDef_oaVia_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaObject* self=(PyoaIntAppDef_oaViaObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaVia p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaVia_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaVia_getDefault_doc[] = 
"Class: oaIntAppDef_oaVia, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaVia_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaVia data;
    int convert_status=PyoaIntAppDef_oaVia_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaObject* self=(PyoaIntAppDef_oaViaObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaVia_set_doc[] = 
"Class: oaIntAppDef_oaVia, Function: set\n"
"  Paramegers: (oaVia,oaInt4)\n"
"    Calls: void set(oaVia* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaVia,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaVia_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaVia data;
    int convert_status=PyoaIntAppDef_oaVia_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaObject* self=(PyoaIntAppDef_oaViaObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaVia p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaVia_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaVia_isNull_doc[] =
"Class: oaIntAppDef_oaVia, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaVia_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaVia data;
    int convert_status=PyoaIntAppDef_oaVia_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaVia_assign_doc[] = 
"Class: oaIntAppDef_oaVia, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaVia_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaVia data;
  int convert_status=PyoaIntAppDef_oaVia_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaVia p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaVia_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaVia_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaVia_get,METH_VARARGS,oaIntAppDef_oaVia_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaVia_getDefault,METH_VARARGS,oaIntAppDef_oaVia_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaVia_set,METH_VARARGS,oaIntAppDef_oaVia_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaVia_tp_isNull,METH_VARARGS,oaIntAppDef_oaVia_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaVia_tp_assign,METH_VARARGS,oaIntAppDef_oaVia_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaVia_doc[] = 
"Class: oaIntAppDef_oaVia\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaVia)\n"
"    Calls: (const oaIntAppDef_oaVia&)\n"
"    Signature: oaIntAppDef_oaVia||cref-oaIntAppDef_oaVia,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaVia_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaVia",
    sizeof(PyoaIntAppDef_oaViaObject),
    0,
    (destructor)oaIntAppDef_oaVia_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaVia_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaVia_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaVia_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaVia_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaVia_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaVia_static_find_doc[] = 
"Class: oaIntAppDef_oaVia, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaVia* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaVia|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaVia* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaVia|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaVia_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaViap result= (oaIntAppDef_oaVia::find(p1.Data()));
            return PyoaIntAppDef_oaVia_FromoaIntAppDef_oaVia(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViap result= (oaIntAppDef_oaVia::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaVia_FromoaIntAppDef_oaVia(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaVia, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaVia_static_get_doc[] = 
"Class: oaIntAppDef_oaVia, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaVia* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaVia|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaVia* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaVia|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaVia* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaVia|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaVia* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaVia|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaVia* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaVia|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaVia* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaVia|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaVia_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaViap result= (oaIntAppDef_oaVia::get(p1.Data()));
            return PyoaIntAppDef_oaVia_FromoaIntAppDef_oaVia(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaViap result= (oaIntAppDef_oaVia::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaVia_FromoaIntAppDef_oaVia(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaViap result= (oaIntAppDef_oaVia::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaVia_FromoaIntAppDef_oaVia(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViap result= (oaIntAppDef_oaVia::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaVia_FromoaIntAppDef_oaVia(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViap result= (oaIntAppDef_oaVia::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaVia_FromoaIntAppDef_oaVia(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViap result= (oaIntAppDef_oaVia::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaVia_FromoaIntAppDef_oaVia(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaVia, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaVia_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaVia_static_find,METH_VARARGS,oaIntAppDef_oaVia_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaVia_static_get,METH_VARARGS,oaIntAppDef_oaVia_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaVia_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaVia_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaVia\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaVia",
           (PyObject*)(&PyoaIntAppDef_oaVia_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaVia\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaVia_Type.tp_dict;
    for(method=oaIntAppDef_oaVia_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaViaDef
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaViaDef_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaViaDef_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaViaDefObject* self = (PyoaIntAppDef_oaViaDefObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaViaDef)
    {
        PyParamoaIntAppDef_oaViaDef p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaViaDef_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaViaDef, Choices are:\n"
        "    (oaIntAppDef_oaViaDef)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaViaDef_tp_dealloc(PyoaIntAppDef_oaViaDefObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaViaDef_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaViaDef value;
    int convert_status=PyoaIntAppDef_oaViaDef_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[42];
    sprintf(buffer,"<oaIntAppDef_oaViaDef::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaViaDef_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaViaDef v1;
    PyParamoaIntAppDef_oaViaDef v2;
    int convert_status1=PyoaIntAppDef_oaViaDef_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaViaDef_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaViaDef_Convert(PyObject* ob,PyParamoaIntAppDef_oaViaDef* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaViaDef_Check(ob)) {
        result->SetData( (oaIntAppDef_oaViaDef**) ((PyoaIntAppDef_oaViaDefObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaViaDef Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaViaDef_FromoaIntAppDef_oaViaDef(oaIntAppDef_oaViaDef** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaViaDef* data=*value;
        PyObject* bself = PyoaIntAppDef_oaViaDef_Type.tp_alloc(&PyoaIntAppDef_oaViaDef_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaViaDefObject* self = (PyoaIntAppDef_oaViaDefObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaViaDef_FromoaIntAppDef_oaViaDef(oaIntAppDef_oaViaDef* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaViaDef_Type.tp_alloc(&PyoaIntAppDef_oaViaDef_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaViaDefObject* self = (PyoaIntAppDef_oaViaDefObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaDef_get_doc[] = 
"Class: oaIntAppDef_oaViaDef, Function: get\n"
"  Paramegers: (oaViaDef)\n"
"    Calls: oaInt4 get(const oaViaDef* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaViaDef,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaViaDef_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaViaDef data;
    int convert_status=PyoaIntAppDef_oaViaDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaDefObject* self=(PyoaIntAppDef_oaViaDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaViaDef p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaViaDef_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaDef_getDefault_doc[] = 
"Class: oaIntAppDef_oaViaDef, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaViaDef_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaViaDef data;
    int convert_status=PyoaIntAppDef_oaViaDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaDefObject* self=(PyoaIntAppDef_oaViaDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaDef_set_doc[] = 
"Class: oaIntAppDef_oaViaDef, Function: set\n"
"  Paramegers: (oaViaDef,oaInt4)\n"
"    Calls: void set(oaViaDef* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaViaDef,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaViaDef_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaViaDef data;
    int convert_status=PyoaIntAppDef_oaViaDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaDefObject* self=(PyoaIntAppDef_oaViaDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaViaDef p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaViaDef_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaDef_isNull_doc[] =
"Class: oaIntAppDef_oaViaDef, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaViaDef_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaViaDef data;
    int convert_status=PyoaIntAppDef_oaViaDef_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaViaDef_assign_doc[] = 
"Class: oaIntAppDef_oaViaDef, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaViaDef_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaViaDef data;
  int convert_status=PyoaIntAppDef_oaViaDef_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaViaDef p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaViaDef_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaViaDef_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaViaDef_get,METH_VARARGS,oaIntAppDef_oaViaDef_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaViaDef_getDefault,METH_VARARGS,oaIntAppDef_oaViaDef_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaViaDef_set,METH_VARARGS,oaIntAppDef_oaViaDef_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaViaDef_tp_isNull,METH_VARARGS,oaIntAppDef_oaViaDef_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaViaDef_tp_assign,METH_VARARGS,oaIntAppDef_oaViaDef_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaDef_doc[] = 
"Class: oaIntAppDef_oaViaDef\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaViaDef)\n"
"    Calls: (const oaIntAppDef_oaViaDef&)\n"
"    Signature: oaIntAppDef_oaViaDef||cref-oaIntAppDef_oaViaDef,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaViaDef_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaViaDef",
    sizeof(PyoaIntAppDef_oaViaDefObject),
    0,
    (destructor)oaIntAppDef_oaViaDef_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaViaDef_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaViaDef_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaViaDef_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaViaDef_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaViaDef_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaDef_static_find_doc[] = 
"Class: oaIntAppDef_oaViaDef, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaViaDef* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaViaDef|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaViaDef* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaViaDef|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaViaDef_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaViaDefp result= (oaIntAppDef_oaViaDef::find(p1.Data()));
            return PyoaIntAppDef_oaViaDef_FromoaIntAppDef_oaViaDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaDefp result= (oaIntAppDef_oaViaDef::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaViaDef_FromoaIntAppDef_oaViaDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaViaDef, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaDef_static_get_doc[] = 
"Class: oaIntAppDef_oaViaDef, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaViaDef* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaDef|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaViaDef* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaDef|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaViaDef* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaDef|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaViaDef* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaDef|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaViaDef* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaDef|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaViaDef* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaDef|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaViaDef_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaViaDefp result= (oaIntAppDef_oaViaDef::get(p1.Data()));
            return PyoaIntAppDef_oaViaDef_FromoaIntAppDef_oaViaDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaViaDefp result= (oaIntAppDef_oaViaDef::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaViaDef_FromoaIntAppDef_oaViaDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaViaDefp result= (oaIntAppDef_oaViaDef::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaViaDef_FromoaIntAppDef_oaViaDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaDefp result= (oaIntAppDef_oaViaDef::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaViaDef_FromoaIntAppDef_oaViaDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaDefp result= (oaIntAppDef_oaViaDef::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaViaDef_FromoaIntAppDef_oaViaDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaDefp result= (oaIntAppDef_oaViaDef::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaViaDef_FromoaIntAppDef_oaViaDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaViaDef, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaViaDef_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaViaDef_static_find,METH_VARARGS,oaIntAppDef_oaViaDef_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaViaDef_static_get,METH_VARARGS,oaIntAppDef_oaViaDef_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaViaDef_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaViaDef_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaViaDef\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaViaDef",
           (PyObject*)(&PyoaIntAppDef_oaViaDef_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaViaDef\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaViaDef_Type.tp_dict;
    for(method=oaIntAppDef_oaViaDef_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaViaHeader
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaViaHeader_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaViaHeader_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaViaHeaderObject* self = (PyoaIntAppDef_oaViaHeaderObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaViaHeader)
    {
        PyParamoaIntAppDef_oaViaHeader p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaViaHeader_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaViaHeader, Choices are:\n"
        "    (oaIntAppDef_oaViaHeader)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaViaHeader_tp_dealloc(PyoaIntAppDef_oaViaHeaderObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaViaHeader_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaViaHeader value;
    int convert_status=PyoaIntAppDef_oaViaHeader_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[45];
    sprintf(buffer,"<oaIntAppDef_oaViaHeader::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaViaHeader_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaViaHeader v1;
    PyParamoaIntAppDef_oaViaHeader v2;
    int convert_status1=PyoaIntAppDef_oaViaHeader_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaViaHeader_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaViaHeader_Convert(PyObject* ob,PyParamoaIntAppDef_oaViaHeader* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaViaHeader_Check(ob)) {
        result->SetData( (oaIntAppDef_oaViaHeader**) ((PyoaIntAppDef_oaViaHeaderObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaViaHeader Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaViaHeader_FromoaIntAppDef_oaViaHeader(oaIntAppDef_oaViaHeader** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaViaHeader* data=*value;
        PyObject* bself = PyoaIntAppDef_oaViaHeader_Type.tp_alloc(&PyoaIntAppDef_oaViaHeader_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaViaHeaderObject* self = (PyoaIntAppDef_oaViaHeaderObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaViaHeader_FromoaIntAppDef_oaViaHeader(oaIntAppDef_oaViaHeader* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaViaHeader_Type.tp_alloc(&PyoaIntAppDef_oaViaHeader_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaViaHeaderObject* self = (PyoaIntAppDef_oaViaHeaderObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaHeader_get_doc[] = 
"Class: oaIntAppDef_oaViaHeader, Function: get\n"
"  Paramegers: (oaViaHeader)\n"
"    Calls: oaInt4 get(const oaViaHeader* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaViaHeader,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaViaHeader_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaViaHeader data;
    int convert_status=PyoaIntAppDef_oaViaHeader_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaHeaderObject* self=(PyoaIntAppDef_oaViaHeaderObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaViaHeader p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaViaHeader_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaHeader_getDefault_doc[] = 
"Class: oaIntAppDef_oaViaHeader, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaViaHeader_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaViaHeader data;
    int convert_status=PyoaIntAppDef_oaViaHeader_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaHeaderObject* self=(PyoaIntAppDef_oaViaHeaderObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaHeader_set_doc[] = 
"Class: oaIntAppDef_oaViaHeader, Function: set\n"
"  Paramegers: (oaViaHeader,oaInt4)\n"
"    Calls: void set(oaViaHeader* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaViaHeader,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaViaHeader_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaViaHeader data;
    int convert_status=PyoaIntAppDef_oaViaHeader_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaHeaderObject* self=(PyoaIntAppDef_oaViaHeaderObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaViaHeader p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaViaHeader_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaHeader_isNull_doc[] =
"Class: oaIntAppDef_oaViaHeader, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaViaHeader_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaViaHeader data;
    int convert_status=PyoaIntAppDef_oaViaHeader_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaViaHeader_assign_doc[] = 
"Class: oaIntAppDef_oaViaHeader, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaViaHeader_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaViaHeader data;
  int convert_status=PyoaIntAppDef_oaViaHeader_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaViaHeader p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaViaHeader_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaViaHeader_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaViaHeader_get,METH_VARARGS,oaIntAppDef_oaViaHeader_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaViaHeader_getDefault,METH_VARARGS,oaIntAppDef_oaViaHeader_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaViaHeader_set,METH_VARARGS,oaIntAppDef_oaViaHeader_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaViaHeader_tp_isNull,METH_VARARGS,oaIntAppDef_oaViaHeader_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaViaHeader_tp_assign,METH_VARARGS,oaIntAppDef_oaViaHeader_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaHeader_doc[] = 
"Class: oaIntAppDef_oaViaHeader\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaViaHeader)\n"
"    Calls: (const oaIntAppDef_oaViaHeader&)\n"
"    Signature: oaIntAppDef_oaViaHeader||cref-oaIntAppDef_oaViaHeader,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaViaHeader_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaViaHeader",
    sizeof(PyoaIntAppDef_oaViaHeaderObject),
    0,
    (destructor)oaIntAppDef_oaViaHeader_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaViaHeader_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaViaHeader_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaViaHeader_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaViaHeader_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaViaHeader_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaHeader_static_find_doc[] = 
"Class: oaIntAppDef_oaViaHeader, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaViaHeader* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaViaHeader|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaViaHeader* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaViaHeader|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaViaHeader_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaViaHeaderp result= (oaIntAppDef_oaViaHeader::find(p1.Data()));
            return PyoaIntAppDef_oaViaHeader_FromoaIntAppDef_oaViaHeader(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaHeaderp result= (oaIntAppDef_oaViaHeader::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaViaHeader_FromoaIntAppDef_oaViaHeader(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaViaHeader, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaHeader_static_get_doc[] = 
"Class: oaIntAppDef_oaViaHeader, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaViaHeader* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaHeader|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaViaHeader* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaHeader|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaViaHeader* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaHeader|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaViaHeader* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaHeader|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaViaHeader* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaHeader|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaViaHeader* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaHeader|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaViaHeader_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaViaHeaderp result= (oaIntAppDef_oaViaHeader::get(p1.Data()));
            return PyoaIntAppDef_oaViaHeader_FromoaIntAppDef_oaViaHeader(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaViaHeaderp result= (oaIntAppDef_oaViaHeader::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaViaHeader_FromoaIntAppDef_oaViaHeader(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaViaHeaderp result= (oaIntAppDef_oaViaHeader::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaViaHeader_FromoaIntAppDef_oaViaHeader(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaHeaderp result= (oaIntAppDef_oaViaHeader::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaViaHeader_FromoaIntAppDef_oaViaHeader(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaHeaderp result= (oaIntAppDef_oaViaHeader::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaViaHeader_FromoaIntAppDef_oaViaHeader(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaHeaderp result= (oaIntAppDef_oaViaHeader::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaViaHeader_FromoaIntAppDef_oaViaHeader(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaViaHeader, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaViaHeader_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaViaHeader_static_find,METH_VARARGS,oaIntAppDef_oaViaHeader_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaViaHeader_static_get,METH_VARARGS,oaIntAppDef_oaViaHeader_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaViaHeader_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaViaHeader_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaViaHeader\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaViaHeader",
           (PyObject*)(&PyoaIntAppDef_oaViaHeader_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaViaHeader\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaViaHeader_Type.tp_dict;
    for(method=oaIntAppDef_oaViaHeader_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaViaSpec
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaViaSpec_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaViaSpec_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaViaSpecObject* self = (PyoaIntAppDef_oaViaSpecObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaViaSpec)
    {
        PyParamoaIntAppDef_oaViaSpec p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaViaSpec_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaViaSpec, Choices are:\n"
        "    (oaIntAppDef_oaViaSpec)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaViaSpec_tp_dealloc(PyoaIntAppDef_oaViaSpecObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaViaSpec_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaViaSpec value;
    int convert_status=PyoaIntAppDef_oaViaSpec_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[43];
    sprintf(buffer,"<oaIntAppDef_oaViaSpec::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaViaSpec_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaViaSpec v1;
    PyParamoaIntAppDef_oaViaSpec v2;
    int convert_status1=PyoaIntAppDef_oaViaSpec_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaViaSpec_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaViaSpec_Convert(PyObject* ob,PyParamoaIntAppDef_oaViaSpec* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaViaSpec_Check(ob)) {
        result->SetData( (oaIntAppDef_oaViaSpec**) ((PyoaIntAppDef_oaViaSpecObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaViaSpec Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaViaSpec_FromoaIntAppDef_oaViaSpec(oaIntAppDef_oaViaSpec** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaViaSpec* data=*value;
        PyObject* bself = PyoaIntAppDef_oaViaSpec_Type.tp_alloc(&PyoaIntAppDef_oaViaSpec_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaViaSpecObject* self = (PyoaIntAppDef_oaViaSpecObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaViaSpec_FromoaIntAppDef_oaViaSpec(oaIntAppDef_oaViaSpec* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaViaSpec_Type.tp_alloc(&PyoaIntAppDef_oaViaSpec_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaViaSpecObject* self = (PyoaIntAppDef_oaViaSpecObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaSpec_get_doc[] = 
"Class: oaIntAppDef_oaViaSpec, Function: get\n"
"  Paramegers: (oaViaSpec)\n"
"    Calls: oaInt4 get(const oaViaSpec* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaViaSpec,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaViaSpec_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaViaSpec data;
    int convert_status=PyoaIntAppDef_oaViaSpec_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaSpecObject* self=(PyoaIntAppDef_oaViaSpecObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaViaSpec p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaViaSpec_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaSpec_getDefault_doc[] = 
"Class: oaIntAppDef_oaViaSpec, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaViaSpec_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaViaSpec data;
    int convert_status=PyoaIntAppDef_oaViaSpec_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaSpecObject* self=(PyoaIntAppDef_oaViaSpecObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaSpec_set_doc[] = 
"Class: oaIntAppDef_oaViaSpec, Function: set\n"
"  Paramegers: (oaViaSpec,oaInt4)\n"
"    Calls: void set(oaViaSpec* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaViaSpec,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaViaSpec_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaViaSpec data;
    int convert_status=PyoaIntAppDef_oaViaSpec_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViaSpecObject* self=(PyoaIntAppDef_oaViaSpecObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaViaSpec p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaViaSpec_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaSpec_isNull_doc[] =
"Class: oaIntAppDef_oaViaSpec, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaViaSpec_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaViaSpec data;
    int convert_status=PyoaIntAppDef_oaViaSpec_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaViaSpec_assign_doc[] = 
"Class: oaIntAppDef_oaViaSpec, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaViaSpec_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaViaSpec data;
  int convert_status=PyoaIntAppDef_oaViaSpec_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaViaSpec p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaViaSpec_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaViaSpec_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaViaSpec_get,METH_VARARGS,oaIntAppDef_oaViaSpec_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaViaSpec_getDefault,METH_VARARGS,oaIntAppDef_oaViaSpec_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaViaSpec_set,METH_VARARGS,oaIntAppDef_oaViaSpec_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaViaSpec_tp_isNull,METH_VARARGS,oaIntAppDef_oaViaSpec_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaViaSpec_tp_assign,METH_VARARGS,oaIntAppDef_oaViaSpec_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaSpec_doc[] = 
"Class: oaIntAppDef_oaViaSpec\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaViaSpec)\n"
"    Calls: (const oaIntAppDef_oaViaSpec&)\n"
"    Signature: oaIntAppDef_oaViaSpec||cref-oaIntAppDef_oaViaSpec,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaViaSpec_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaViaSpec",
    sizeof(PyoaIntAppDef_oaViaSpecObject),
    0,
    (destructor)oaIntAppDef_oaViaSpec_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaViaSpec_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaViaSpec_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaViaSpec_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaViaSpec_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaViaSpec_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaSpec_static_find_doc[] = 
"Class: oaIntAppDef_oaViaSpec, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaViaSpec* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaViaSpec|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaViaSpec* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaViaSpec|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaViaSpec_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaViaSpecp result= (oaIntAppDef_oaViaSpec::find(p1.Data()));
            return PyoaIntAppDef_oaViaSpec_FromoaIntAppDef_oaViaSpec(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaSpecp result= (oaIntAppDef_oaViaSpec::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaViaSpec_FromoaIntAppDef_oaViaSpec(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaViaSpec, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaViaSpec_static_get_doc[] = 
"Class: oaIntAppDef_oaViaSpec, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaViaSpec* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaSpec|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaViaSpec* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaSpec|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaViaSpec* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaSpec|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaViaSpec* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaSpec|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaViaSpec* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaSpec|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaViaSpec* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaViaSpec|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaViaSpec_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaViaSpecp result= (oaIntAppDef_oaViaSpec::get(p1.Data()));
            return PyoaIntAppDef_oaViaSpec_FromoaIntAppDef_oaViaSpec(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaViaSpecp result= (oaIntAppDef_oaViaSpec::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaViaSpec_FromoaIntAppDef_oaViaSpec(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaViaSpecp result= (oaIntAppDef_oaViaSpec::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaViaSpec_FromoaIntAppDef_oaViaSpec(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaSpecp result= (oaIntAppDef_oaViaSpec::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaViaSpec_FromoaIntAppDef_oaViaSpec(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaSpecp result= (oaIntAppDef_oaViaSpec::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaViaSpec_FromoaIntAppDef_oaViaSpec(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViaSpecp result= (oaIntAppDef_oaViaSpec::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaViaSpec_FromoaIntAppDef_oaViaSpec(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaViaSpec, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaViaSpec_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaViaSpec_static_find,METH_VARARGS,oaIntAppDef_oaViaSpec_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaViaSpec_static_get,METH_VARARGS,oaIntAppDef_oaViaSpec_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaViaSpec_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaViaSpec_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaViaSpec\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaViaSpec",
           (PyObject*)(&PyoaIntAppDef_oaViaSpec_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaViaSpec\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaViaSpec_Type.tp_dict;
    for(method=oaIntAppDef_oaViaSpec_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaView
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaView_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaView_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaViewObject* self = (PyoaIntAppDef_oaViewObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaView)
    {
        PyParamoaIntAppDef_oaView p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaView_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaView, Choices are:\n"
        "    (oaIntAppDef_oaView)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaView_tp_dealloc(PyoaIntAppDef_oaViewObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaView_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaView value;
    int convert_status=PyoaIntAppDef_oaView_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[40];
    sprintf(buffer,"<oaIntAppDef_oaView::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaView_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaView v1;
    PyParamoaIntAppDef_oaView v2;
    int convert_status1=PyoaIntAppDef_oaView_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaView_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaView_Convert(PyObject* ob,PyParamoaIntAppDef_oaView* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaView_Check(ob)) {
        result->SetData( (oaIntAppDef_oaView**) ((PyoaIntAppDef_oaViewObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaView Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaView_FromoaIntAppDef_oaView(oaIntAppDef_oaView** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaView* data=*value;
        PyObject* bself = PyoaIntAppDef_oaView_Type.tp_alloc(&PyoaIntAppDef_oaView_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaViewObject* self = (PyoaIntAppDef_oaViewObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaView_FromoaIntAppDef_oaView(oaIntAppDef_oaView* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaView_Type.tp_alloc(&PyoaIntAppDef_oaView_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaViewObject* self = (PyoaIntAppDef_oaViewObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaView_get_doc[] = 
"Class: oaIntAppDef_oaView, Function: get\n"
"  Paramegers: (oaView)\n"
"    Calls: oaInt4 get(const oaView* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaView,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaView_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaView data;
    int convert_status=PyoaIntAppDef_oaView_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViewObject* self=(PyoaIntAppDef_oaViewObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaView p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaView_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaView_getDefault_doc[] = 
"Class: oaIntAppDef_oaView, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaView_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaView data;
    int convert_status=PyoaIntAppDef_oaView_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViewObject* self=(PyoaIntAppDef_oaViewObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaView_set_doc[] = 
"Class: oaIntAppDef_oaView, Function: set\n"
"  Paramegers: (oaView,oaInt4)\n"
"    Calls: void set(oaView* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaView,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaView_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaView data;
    int convert_status=PyoaIntAppDef_oaView_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaViewObject* self=(PyoaIntAppDef_oaViewObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaView p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaView_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaView_isNull_doc[] =
"Class: oaIntAppDef_oaView, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaView_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaView data;
    int convert_status=PyoaIntAppDef_oaView_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaView_assign_doc[] = 
"Class: oaIntAppDef_oaView, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaView_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaView data;
  int convert_status=PyoaIntAppDef_oaView_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaView p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaView_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaView_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaView_get,METH_VARARGS,oaIntAppDef_oaView_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaView_getDefault,METH_VARARGS,oaIntAppDef_oaView_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaView_set,METH_VARARGS,oaIntAppDef_oaView_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaView_tp_isNull,METH_VARARGS,oaIntAppDef_oaView_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaView_tp_assign,METH_VARARGS,oaIntAppDef_oaView_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaView_doc[] = 
"Class: oaIntAppDef_oaView\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaView)\n"
"    Calls: (const oaIntAppDef_oaView&)\n"
"    Signature: oaIntAppDef_oaView||cref-oaIntAppDef_oaView,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaView_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaView",
    sizeof(PyoaIntAppDef_oaViewObject),
    0,
    (destructor)oaIntAppDef_oaView_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaView_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaView_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaView_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaView_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaView_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaView_static_find_doc[] = 
"Class: oaIntAppDef_oaView, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaView* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaView|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaView* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaView|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaView_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaViewp result= (oaIntAppDef_oaView::find(p1.Data()));
            return PyoaIntAppDef_oaView_FromoaIntAppDef_oaView(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViewp result= (oaIntAppDef_oaView::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaView_FromoaIntAppDef_oaView(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaView, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaView_static_get_doc[] = 
"Class: oaIntAppDef_oaView, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaView* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaView|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaView* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaView|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaView* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaView|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaView* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaView|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaView* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaView|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaView* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaView|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaView_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaViewp result= (oaIntAppDef_oaView::get(p1.Data()));
            return PyoaIntAppDef_oaView_FromoaIntAppDef_oaView(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaViewp result= (oaIntAppDef_oaView::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaView_FromoaIntAppDef_oaView(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaViewp result= (oaIntAppDef_oaView::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaView_FromoaIntAppDef_oaView(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViewp result= (oaIntAppDef_oaView::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaView_FromoaIntAppDef_oaView(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViewp result= (oaIntAppDef_oaView::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaView_FromoaIntAppDef_oaView(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaViewp result= (oaIntAppDef_oaView::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaView_FromoaIntAppDef_oaView(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaView, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaView_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaView_static_find,METH_VARARGS,oaIntAppDef_oaView_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaView_static_get,METH_VARARGS,oaIntAppDef_oaView_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaView_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaView_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaView\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaView",
           (PyObject*)(&PyoaIntAppDef_oaView_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaView\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaView_Type.tp_dict;
    for(method=oaIntAppDef_oaView_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaWafer
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaWafer_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaWafer_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaWaferObject* self = (PyoaIntAppDef_oaWaferObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaWafer)
    {
        PyParamoaIntAppDef_oaWafer p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaWafer_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaWafer, Choices are:\n"
        "    (oaIntAppDef_oaWafer)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaWafer_tp_dealloc(PyoaIntAppDef_oaWaferObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaWafer_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaWafer value;
    int convert_status=PyoaIntAppDef_oaWafer_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[41];
    sprintf(buffer,"<oaIntAppDef_oaWafer::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaWafer_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaWafer v1;
    PyParamoaIntAppDef_oaWafer v2;
    int convert_status1=PyoaIntAppDef_oaWafer_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaWafer_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaWafer_Convert(PyObject* ob,PyParamoaIntAppDef_oaWafer* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaWafer_Check(ob)) {
        result->SetData( (oaIntAppDef_oaWafer**) ((PyoaIntAppDef_oaWaferObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaWafer Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaWafer_FromoaIntAppDef_oaWafer(oaIntAppDef_oaWafer** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaWafer* data=*value;
        PyObject* bself = PyoaIntAppDef_oaWafer_Type.tp_alloc(&PyoaIntAppDef_oaWafer_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaWaferObject* self = (PyoaIntAppDef_oaWaferObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaWafer_FromoaIntAppDef_oaWafer(oaIntAppDef_oaWafer* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaWafer_Type.tp_alloc(&PyoaIntAppDef_oaWafer_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaWaferObject* self = (PyoaIntAppDef_oaWaferObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaWafer_get_doc[] = 
"Class: oaIntAppDef_oaWafer, Function: get\n"
"  Paramegers: (oaWafer)\n"
"    Calls: oaInt4 get(const oaWafer* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaWafer,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaWafer_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaWafer data;
    int convert_status=PyoaIntAppDef_oaWafer_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaWaferObject* self=(PyoaIntAppDef_oaWaferObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaWafer p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaWafer_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWafer_getDefault_doc[] = 
"Class: oaIntAppDef_oaWafer, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaWafer_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaWafer data;
    int convert_status=PyoaIntAppDef_oaWafer_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaWaferObject* self=(PyoaIntAppDef_oaWaferObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWafer_set_doc[] = 
"Class: oaIntAppDef_oaWafer, Function: set\n"
"  Paramegers: (oaWafer,oaInt4)\n"
"    Calls: void set(oaWafer* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaWafer,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaWafer_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaWafer data;
    int convert_status=PyoaIntAppDef_oaWafer_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaWaferObject* self=(PyoaIntAppDef_oaWaferObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaWafer p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaWafer_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWafer_isNull_doc[] =
"Class: oaIntAppDef_oaWafer, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaWafer_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaWafer data;
    int convert_status=PyoaIntAppDef_oaWafer_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaWafer_assign_doc[] = 
"Class: oaIntAppDef_oaWafer, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaWafer_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaWafer data;
  int convert_status=PyoaIntAppDef_oaWafer_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaWafer p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaWafer_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaWafer_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaWafer_get,METH_VARARGS,oaIntAppDef_oaWafer_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaWafer_getDefault,METH_VARARGS,oaIntAppDef_oaWafer_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaWafer_set,METH_VARARGS,oaIntAppDef_oaWafer_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaWafer_tp_isNull,METH_VARARGS,oaIntAppDef_oaWafer_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaWafer_tp_assign,METH_VARARGS,oaIntAppDef_oaWafer_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaWafer_doc[] = 
"Class: oaIntAppDef_oaWafer\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaWafer)\n"
"    Calls: (const oaIntAppDef_oaWafer&)\n"
"    Signature: oaIntAppDef_oaWafer||cref-oaIntAppDef_oaWafer,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaWafer_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaWafer",
    sizeof(PyoaIntAppDef_oaWaferObject),
    0,
    (destructor)oaIntAppDef_oaWafer_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaWafer_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaWafer_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaWafer_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaWafer_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaWafer_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaWafer_static_find_doc[] = 
"Class: oaIntAppDef_oaWafer, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaWafer* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaWafer|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaWafer* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaWafer|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaWafer_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaWaferp result= (oaIntAppDef_oaWafer::find(p1.Data()));
            return PyoaIntAppDef_oaWafer_FromoaIntAppDef_oaWafer(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferp result= (oaIntAppDef_oaWafer::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaWafer_FromoaIntAppDef_oaWafer(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaWafer, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWafer_static_get_doc[] = 
"Class: oaIntAppDef_oaWafer, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaWafer* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaWafer|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaWafer* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaWafer|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaWafer* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaWafer|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaWafer* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaWafer|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaWafer* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaWafer|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaWafer* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaWafer|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaWafer_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaWaferp result= (oaIntAppDef_oaWafer::get(p1.Data()));
            return PyoaIntAppDef_oaWafer_FromoaIntAppDef_oaWafer(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaWaferp result= (oaIntAppDef_oaWafer::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaWafer_FromoaIntAppDef_oaWafer(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaWaferp result= (oaIntAppDef_oaWafer::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaWafer_FromoaIntAppDef_oaWafer(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferp result= (oaIntAppDef_oaWafer::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaWafer_FromoaIntAppDef_oaWafer(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferp result= (oaIntAppDef_oaWafer::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaWafer_FromoaIntAppDef_oaWafer(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferp result= (oaIntAppDef_oaWafer::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaWafer_FromoaIntAppDef_oaWafer(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaWafer, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaWafer_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaWafer_static_find,METH_VARARGS,oaIntAppDef_oaWafer_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaWafer_static_get,METH_VARARGS,oaIntAppDef_oaWafer_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaWafer_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaWafer_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaWafer\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaWafer",
           (PyObject*)(&PyoaIntAppDef_oaWafer_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaWafer\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaWafer_Type.tp_dict;
    for(method=oaIntAppDef_oaWafer_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaWaferDesc
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaWaferDesc_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaWaferDesc_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaWaferDescObject* self = (PyoaIntAppDef_oaWaferDescObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaWaferDesc)
    {
        PyParamoaIntAppDef_oaWaferDesc p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaWaferDesc_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaWaferDesc, Choices are:\n"
        "    (oaIntAppDef_oaWaferDesc)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaWaferDesc_tp_dealloc(PyoaIntAppDef_oaWaferDescObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaWaferDesc_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaWaferDesc value;
    int convert_status=PyoaIntAppDef_oaWaferDesc_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[45];
    sprintf(buffer,"<oaIntAppDef_oaWaferDesc::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaWaferDesc_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaWaferDesc v1;
    PyParamoaIntAppDef_oaWaferDesc v2;
    int convert_status1=PyoaIntAppDef_oaWaferDesc_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaWaferDesc_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaWaferDesc_Convert(PyObject* ob,PyParamoaIntAppDef_oaWaferDesc* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaWaferDesc_Check(ob)) {
        result->SetData( (oaIntAppDef_oaWaferDesc**) ((PyoaIntAppDef_oaWaferDescObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaWaferDesc Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaWaferDesc_FromoaIntAppDef_oaWaferDesc(oaIntAppDef_oaWaferDesc** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaWaferDesc* data=*value;
        PyObject* bself = PyoaIntAppDef_oaWaferDesc_Type.tp_alloc(&PyoaIntAppDef_oaWaferDesc_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaWaferDescObject* self = (PyoaIntAppDef_oaWaferDescObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaWaferDesc_FromoaIntAppDef_oaWaferDesc(oaIntAppDef_oaWaferDesc* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaWaferDesc_Type.tp_alloc(&PyoaIntAppDef_oaWaferDesc_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaWaferDescObject* self = (PyoaIntAppDef_oaWaferDescObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferDesc_get_doc[] = 
"Class: oaIntAppDef_oaWaferDesc, Function: get\n"
"  Paramegers: (oaWaferDesc)\n"
"    Calls: oaInt4 get(const oaWaferDesc* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaWaferDesc,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaWaferDesc_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaWaferDesc data;
    int convert_status=PyoaIntAppDef_oaWaferDesc_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaWaferDescObject* self=(PyoaIntAppDef_oaWaferDescObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaWaferDesc p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaWaferDesc_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferDesc_getDefault_doc[] = 
"Class: oaIntAppDef_oaWaferDesc, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaWaferDesc_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaWaferDesc data;
    int convert_status=PyoaIntAppDef_oaWaferDesc_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaWaferDescObject* self=(PyoaIntAppDef_oaWaferDescObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferDesc_set_doc[] = 
"Class: oaIntAppDef_oaWaferDesc, Function: set\n"
"  Paramegers: (oaWaferDesc,oaInt4)\n"
"    Calls: void set(oaWaferDesc* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaWaferDesc,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaWaferDesc_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaWaferDesc data;
    int convert_status=PyoaIntAppDef_oaWaferDesc_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaWaferDescObject* self=(PyoaIntAppDef_oaWaferDescObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaWaferDesc p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaWaferDesc_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferDesc_isNull_doc[] =
"Class: oaIntAppDef_oaWaferDesc, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaWaferDesc_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaWaferDesc data;
    int convert_status=PyoaIntAppDef_oaWaferDesc_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaWaferDesc_assign_doc[] = 
"Class: oaIntAppDef_oaWaferDesc, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaWaferDesc_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaWaferDesc data;
  int convert_status=PyoaIntAppDef_oaWaferDesc_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaWaferDesc p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaWaferDesc_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaWaferDesc_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaWaferDesc_get,METH_VARARGS,oaIntAppDef_oaWaferDesc_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaWaferDesc_getDefault,METH_VARARGS,oaIntAppDef_oaWaferDesc_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaWaferDesc_set,METH_VARARGS,oaIntAppDef_oaWaferDesc_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaWaferDesc_tp_isNull,METH_VARARGS,oaIntAppDef_oaWaferDesc_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaWaferDesc_tp_assign,METH_VARARGS,oaIntAppDef_oaWaferDesc_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferDesc_doc[] = 
"Class: oaIntAppDef_oaWaferDesc\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaWaferDesc)\n"
"    Calls: (const oaIntAppDef_oaWaferDesc&)\n"
"    Signature: oaIntAppDef_oaWaferDesc||cref-oaIntAppDef_oaWaferDesc,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaWaferDesc_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaWaferDesc",
    sizeof(PyoaIntAppDef_oaWaferDescObject),
    0,
    (destructor)oaIntAppDef_oaWaferDesc_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaWaferDesc_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaWaferDesc_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaWaferDesc_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaWaferDesc_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaWaferDesc_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferDesc_static_find_doc[] = 
"Class: oaIntAppDef_oaWaferDesc, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaWaferDesc* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaWaferDesc|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaWaferDesc* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaWaferDesc|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaWaferDesc_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaWaferDescp result= (oaIntAppDef_oaWaferDesc::find(p1.Data()));
            return PyoaIntAppDef_oaWaferDesc_FromoaIntAppDef_oaWaferDesc(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferDescp result= (oaIntAppDef_oaWaferDesc::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaWaferDesc_FromoaIntAppDef_oaWaferDesc(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaWaferDesc, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferDesc_static_get_doc[] = 
"Class: oaIntAppDef_oaWaferDesc, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaWaferDesc* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferDesc|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaWaferDesc* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferDesc|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaWaferDesc* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferDesc|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaWaferDesc* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferDesc|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaWaferDesc* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferDesc|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaWaferDesc* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferDesc|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaWaferDesc_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaWaferDescp result= (oaIntAppDef_oaWaferDesc::get(p1.Data()));
            return PyoaIntAppDef_oaWaferDesc_FromoaIntAppDef_oaWaferDesc(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaWaferDescp result= (oaIntAppDef_oaWaferDesc::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaWaferDesc_FromoaIntAppDef_oaWaferDesc(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaWaferDescp result= (oaIntAppDef_oaWaferDesc::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaWaferDesc_FromoaIntAppDef_oaWaferDesc(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferDescp result= (oaIntAppDef_oaWaferDesc::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaWaferDesc_FromoaIntAppDef_oaWaferDesc(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferDescp result= (oaIntAppDef_oaWaferDesc::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaWaferDesc_FromoaIntAppDef_oaWaferDesc(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferDescp result= (oaIntAppDef_oaWaferDesc::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaWaferDesc_FromoaIntAppDef_oaWaferDesc(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaWaferDesc, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaWaferDesc_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaWaferDesc_static_find,METH_VARARGS,oaIntAppDef_oaWaferDesc_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaWaferDesc_static_get,METH_VARARGS,oaIntAppDef_oaWaferDesc_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaWaferDesc_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaWaferDesc_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaWaferDesc\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaWaferDesc",
           (PyObject*)(&PyoaIntAppDef_oaWaferDesc_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaWaferDesc\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaWaferDesc_Type.tp_dict;
    for(method=oaIntAppDef_oaWaferDesc_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntAppDef_oaWaferFeature
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaWaferFeature_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntAppDef_oaWaferFeature_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntAppDef_oaWaferFeatureObject* self = (PyoaIntAppDef_oaWaferFeatureObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntAppDef_oaWaferFeature)
    {
        PyParamoaIntAppDef_oaWaferFeature p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntAppDef_oaWaferFeature_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntAppDef_oaWaferFeature, Choices are:\n"
        "    (oaIntAppDef_oaWaferFeature)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntAppDef_oaWaferFeature_tp_dealloc(PyoaIntAppDef_oaWaferFeatureObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntAppDef_oaWaferFeature_tp_repr(PyObject *ob)
{
    PyParamoaIntAppDef_oaWaferFeature value;
    int convert_status=PyoaIntAppDef_oaWaferFeature_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[48];
    sprintf(buffer,"<oaIntAppDef_oaWaferFeature::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntAppDef_oaWaferFeature_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntAppDef_oaWaferFeature v1;
    PyParamoaIntAppDef_oaWaferFeature v2;
    int convert_status1=PyoaIntAppDef_oaWaferFeature_Convert(ob1,&v1);
    int convert_status2=PyoaIntAppDef_oaWaferFeature_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntAppDef_oaWaferFeature_Convert(PyObject* ob,PyParamoaIntAppDef_oaWaferFeature* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntAppDef_oaWaferFeature_Check(ob)) {
        result->SetData( (oaIntAppDef_oaWaferFeature**) ((PyoaIntAppDef_oaWaferFeatureObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntAppDef_oaWaferFeature Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaWaferFeature_FromoaIntAppDef_oaWaferFeature(oaIntAppDef_oaWaferFeature** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntAppDef_oaWaferFeature* data=*value;
        PyObject* bself = PyoaIntAppDef_oaWaferFeature_Type.tp_alloc(&PyoaIntAppDef_oaWaferFeature_Type,0);
        if (bself == NULL) return bself;
        PyoaIntAppDef_oaWaferFeatureObject* self = (PyoaIntAppDef_oaWaferFeatureObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntAppDef_oaWaferFeature_FromoaIntAppDef_oaWaferFeature(oaIntAppDef_oaWaferFeature* data)
{
    if (data) {
       PyObject* bself = PyoaIntAppDef_oaWaferFeature_Type.tp_alloc(&PyoaIntAppDef_oaWaferFeature_Type,0);
       if (bself == NULL) return bself;
       PyoaIntAppDef_oaWaferFeatureObject* self = (PyoaIntAppDef_oaWaferFeatureObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferFeature_get_doc[] = 
"Class: oaIntAppDef_oaWaferFeature, Function: get\n"
"  Paramegers: (oaWaferFeature)\n"
"    Calls: oaInt4 get(const oaWaferFeature* object)\n"
"    Signature: get|simple-oaInt4|cptr-oaWaferFeature,\n"
"    This function returns the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaWaferFeature_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaWaferFeature data;
    int convert_status=PyoaIntAppDef_oaWaferFeature_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaWaferFeatureObject* self=(PyoaIntAppDef_oaWaferFeatureObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaWaferFeature p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaWaferFeature_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaInt4 result= (data.DataCall()->get(p1.Data()));
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferFeature_getDefault_doc[] = 
"Class: oaIntAppDef_oaWaferFeature, Function: getDefault\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getDefault() const\n"
"    Signature: getDefault|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the default value for this integer extension.\n"
;

static PyObject*
oaIntAppDef_oaWaferFeature_getDefault(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaWaferFeature data;
    int convert_status=PyoaIntAppDef_oaWaferFeature_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaWaferFeatureObject* self=(PyoaIntAppDef_oaWaferFeatureObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getDefault());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferFeature_set_doc[] = 
"Class: oaIntAppDef_oaWaferFeature, Function: set\n"
"  Paramegers: (oaWaferFeature,oaInt4)\n"
"    Calls: void set(oaWaferFeature* object,oaInt4 value)\n"
"    Signature: set|void-void|ptr-oaWaferFeature,simple-oaInt4,\n"
"    This function sets the value of this integer extension.\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaIntAppDef_oaWaferFeature_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntAppDef_oaWaferFeature data;
    int convert_status=PyoaIntAppDef_oaWaferFeature_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntAppDef_oaWaferFeatureObject* self=(PyoaIntAppDef_oaWaferFeatureObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaWaferFeature p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaWaferFeature_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferFeature_isNull_doc[] =
"Class: oaIntAppDef_oaWaferFeature, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntAppDef_oaWaferFeature_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntAppDef_oaWaferFeature data;
    int convert_status=PyoaIntAppDef_oaWaferFeature_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntAppDef_oaWaferFeature_assign_doc[] = 
"Class: oaIntAppDef_oaWaferFeature, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntAppDef_oaWaferFeature_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntAppDef_oaWaferFeature data;
  int convert_status=PyoaIntAppDef_oaWaferFeature_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntAppDef_oaWaferFeature p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntAppDef_oaWaferFeature_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntAppDef_oaWaferFeature_methodlist[] = {
    {"get",(PyCFunction)oaIntAppDef_oaWaferFeature_get,METH_VARARGS,oaIntAppDef_oaWaferFeature_get_doc},
    {"getDefault",(PyCFunction)oaIntAppDef_oaWaferFeature_getDefault,METH_VARARGS,oaIntAppDef_oaWaferFeature_getDefault_doc},
    {"set",(PyCFunction)oaIntAppDef_oaWaferFeature_set,METH_VARARGS,oaIntAppDef_oaWaferFeature_set_doc},
    {"isNull",(PyCFunction)oaIntAppDef_oaWaferFeature_tp_isNull,METH_VARARGS,oaIntAppDef_oaWaferFeature_isNull_doc},
    {"assign",(PyCFunction)oaIntAppDef_oaWaferFeature_tp_assign,METH_VARARGS,oaIntAppDef_oaWaferFeature_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferFeature_doc[] = 
"Class: oaIntAppDef_oaWaferFeature\n"
"  The oaIntAppDef class implements an application-specific extension for a particular type of data in a database.\n"
"  Once created, an integer field is added to each object of the specified dataType. The default value for this extension is INT_MAX. Applications can use the new field for whatever purpose is necessary.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaIntAppDef_oaWaferFeature)\n"
"    Calls: (const oaIntAppDef_oaWaferFeature&)\n"
"    Signature: oaIntAppDef_oaWaferFeature||cref-oaIntAppDef_oaWaferFeature,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntAppDef_oaWaferFeature_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntAppDef_oaWaferFeature",
    sizeof(PyoaIntAppDef_oaWaferFeatureObject),
    0,
    (destructor)oaIntAppDef_oaWaferFeature_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntAppDef_oaWaferFeature_tp_compare,	/* tp_compare */
    (reprfunc)oaIntAppDef_oaWaferFeature_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntAppDef_oaWaferFeature_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntAppDef_oaWaferFeature_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntAppDef_oaWaferFeature_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferFeature_static_find_doc[] = 
"Class: oaIntAppDef_oaWaferFeature, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaWaferFeature* find(const oaString& name)\n"
"    Signature: find|ptr-oaIntAppDef_oaWaferFeature|cref-oaString,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaWaferFeature* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaIntAppDef_oaWaferFeature|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaIntAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaIntAppDef_oaWaferFeature_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaWaferFeaturep result= (oaIntAppDef_oaWaferFeature::find(p1.Data()));
            return PyoaIntAppDef_oaWaferFeature_FromoaIntAppDef_oaWaferFeature(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferFeaturep result= (oaIntAppDef_oaWaferFeature::find(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaWaferFeature_FromoaIntAppDef_oaWaferFeature(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaWaferFeature, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntAppDef_oaWaferFeature_static_get_doc[] = 
"Class: oaIntAppDef_oaWaferFeature, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaIntAppDef_oaWaferFeature* get(const oaString& name)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferFeature|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4)\n"
"    Calls: oaIntAppDef_oaWaferFeature* get(const oaString& name,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferFeature|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaWaferFeature* get(const oaString& name,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferFeature|cref-oaString,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name . You can create an integer extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    defValue\n"
"    An optional default value\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaIntAppDef_oaWaferFeature* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferFeature|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4)\n"
"    Calls: oaIntAppDef_oaWaferFeature* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferFeature|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
"    Calls: oaIntAppDef_oaWaferFeature* get(const oaString& name,const oaAppObjectDef* objDef,oaInt4 defValue,oaBoolean persist)\n"
"    Signature: get|ptr-oaIntAppDef_oaWaferFeature|cref-oaString,cptr-oaAppObjectDef,simple-oaInt4,simple-oaBoolean,\n"
"    This function constructs an oaIntAppDef object, creating an integer extension with the specified name for the specified object type.\n"
"    name\n"
"    The name given to the oaIntAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    defValue\n"
"    persist\n"
"    Saves the oaIntAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaIntAppDef_oaWaferFeature_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaIntAppDef_oaWaferFeaturep result= (oaIntAppDef_oaWaferFeature::get(p1.Data()));
            return PyoaIntAppDef_oaWaferFeature_FromoaIntAppDef_oaWaferFeature(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            oaIntAppDef_oaWaferFeaturep result= (oaIntAppDef_oaWaferFeature::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaWaferFeature_FromoaIntAppDef_oaWaferFeature(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaInt4 p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            oaIntAppDef_oaWaferFeaturep result= (oaIntAppDef_oaWaferFeature::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaWaferFeature_FromoaIntAppDef_oaWaferFeature(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferFeaturep result= (oaIntAppDef_oaWaferFeature::get(p1.Data(),p2.Data()));
            return PyoaIntAppDef_oaWaferFeature_FromoaIntAppDef_oaWaferFeature(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferFeaturep result= (oaIntAppDef_oaWaferFeature::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaIntAppDef_oaWaferFeature_FromoaIntAppDef_oaWaferFeature(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaInt4,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaInt4 p3;
        PyParamoaBoolean p4;
        if (PyArg_ParseTuple(args,"O&O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaInt4_Convert,&p3,
              &PyoaBoolean_Convert,&p4)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaIntAppDef_oaWaferFeaturep result= (oaIntAppDef_oaWaferFeature::get(p1.Data(),p2.Data(),p3.Data(),p4.Data()));
            return PyoaIntAppDef_oaWaferFeature_FromoaIntAppDef_oaWaferFeature(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaIntAppDef_oaWaferFeature, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaInt4)\n"
        "    (oaString,oaInt4,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaInt4)\n"
        "    (oaString,oaAppObjectDef,oaInt4,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntAppDef_oaWaferFeature_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaIntAppDef_oaWaferFeature_static_find,METH_VARARGS,oaIntAppDef_oaWaferFeature_static_find_doc},
    {"static_get",(PyCFunction)oaIntAppDef_oaWaferFeature_static_get,METH_VARARGS,oaIntAppDef_oaWaferFeature_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntAppDef_oaWaferFeature_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntAppDef_oaWaferFeature_Type)<0) {
      printf("** PyType_Ready failed for: oaIntAppDef_oaWaferFeature\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntAppDef_oaWaferFeature",
           (PyObject*)(&PyoaIntAppDef_oaWaferFeature_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntAppDef_oaWaferFeature\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntAppDef_oaWaferFeature_Type.tp_dict;
    for(method=oaIntAppDef_oaWaferFeature_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntDualIntArrayTblValue
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntDualIntArrayTblValue_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntDualIntArrayTblValue_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntDualIntArrayTblValueObject* self = (PyoaIntDualIntArrayTblValueObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntDualIntArrayTblValue)
    {
        PyParamoaIntDualIntArrayTblValue p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntDualIntArrayTblValue_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntDualIntArrayTblValue, Choices are:\n"
        "    (oaIntDualIntArrayTblValue)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntDualIntArrayTblValue_tp_dealloc(PyoaIntDualIntArrayTblValueObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntDualIntArrayTblValue_tp_repr(PyObject *ob)
{
    PyParamoaIntDualIntArrayTblValue value;
    int convert_status=PyoaIntDualIntArrayTblValue_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[47];
    sprintf(buffer,"<oaIntDualIntArrayTblValue::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntDualIntArrayTblValue_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntDualIntArrayTblValue v1;
    PyParamoaIntDualIntArrayTblValue v2;
    int convert_status1=PyoaIntDualIntArrayTblValue_Convert(ob1,&v1);
    int convert_status2=PyoaIntDualIntArrayTblValue_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntDualIntArrayTblValue_Convert(PyObject* ob,PyParamoaIntDualIntArrayTblValue* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntDualIntArrayTblValue_Check(ob)) {
        result->SetData( (oaIntDualIntArrayTblValue**) ((PyoaIntDualIntArrayTblValueObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntDualIntArrayTblValue Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntDualIntArrayTblValue_FromoaIntDualIntArrayTblValue(oaIntDualIntArrayTblValue** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntDualIntArrayTblValue* data=*value;
        PyObject* bself = PyoaIntDualIntArrayTblValue_Type.tp_alloc(&PyoaIntDualIntArrayTblValue_Type,0);
        if (bself == NULL) return bself;
        PyoaIntDualIntArrayTblValueObject* self = (PyoaIntDualIntArrayTblValueObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntDualIntArrayTblValue_FromoaIntDualIntArrayTblValue(oaIntDualIntArrayTblValue* data)
{
    if (data) {
       PyObject* bself = PyoaIntDualIntArrayTblValue_Type.tp_alloc(&PyoaIntDualIntArrayTblValue_Type,0);
       if (bself == NULL) return bself;
       PyoaIntDualIntArrayTblValueObject* self = (PyoaIntDualIntArrayTblValueObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntDualIntArrayTblValue_get_doc[] = 
"Class: oaIntDualIntArrayTblValue, Function: get\n"
"  Paramegers: (oa1DLookupTbl_oaInt4_oaDualIntArray)\n"
"    Calls: void get(oa1DLookupTbl_oaInt4_oaDualIntArray& tbl) const\n"
"    Signature: get|void-void|ref-oa1DLookupTbl_oaInt4_oaDualIntArray,\n"
"    BrowseData: 0,oa1DLookupTbl_oaInt4_oaDualIntArray\n"
"    This function returns the table of values of this object.\n"
"    tbl\n"
"    This object's look up table of integer and dual integer array values.\n"
"    Todo\n"
"    Add description of member function. Add description of each parameter.\n"
;

static PyObject*
oaIntDualIntArrayTblValue_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntDualIntArrayTblValue data;
    int convert_status=PyoaIntDualIntArrayTblValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntDualIntArrayTblValueObject* self=(PyoaIntDualIntArrayTblValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoa1DLookupTbl_oaInt4_oaDualIntArray p1;
    if (PyArg_ParseTuple(args,"O&",
          &Pyoa1DLookupTbl_oaInt4_oaDualIntArray_Convert,&p1)) {
        data.DataCall()->get(p1.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntDualIntArrayTblValue_set_doc[] = 
"Class: oaIntDualIntArrayTblValue, Function: set\n"
"  Paramegers: (oa1DLookupTbl_oaInt4_oaDualIntArray)\n"
"    Calls: void set(const oa1DLookupTbl_oaInt4_oaDualIntArray& tbl)\n"
"    Signature: set|void-void|cref-oa1DLookupTbl_oaInt4_oaDualIntArray,\n"
"    This function sets the table of values on this object.\n"
"    tbl\n"
"    The look up table of integer and dual integer array values to set on this object.\n"
"    Todo\n"
"    Add description of member function. Add description of each parameter.\n"
;

static PyObject*
oaIntDualIntArrayTblValue_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntDualIntArrayTblValue data;
    int convert_status=PyoaIntDualIntArrayTblValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntDualIntArrayTblValueObject* self=(PyoaIntDualIntArrayTblValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoa1DLookupTbl_oaInt4_oaDualIntArray p1;
    if (PyArg_ParseTuple(args,"O&",
          &Pyoa1DLookupTbl_oaInt4_oaDualIntArray_Convert,&p1)) {
        data.DataCall()->set(p1.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntDualIntArrayTblValue_isNull_doc[] =
"Class: oaIntDualIntArrayTblValue, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntDualIntArrayTblValue_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntDualIntArrayTblValue data;
    int convert_status=PyoaIntDualIntArrayTblValue_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntDualIntArrayTblValue_assign_doc[] = 
"Class: oaIntDualIntArrayTblValue, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntDualIntArrayTblValue_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntDualIntArrayTblValue data;
  int convert_status=PyoaIntDualIntArrayTblValue_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntDualIntArrayTblValue p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntDualIntArrayTblValue_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntDualIntArrayTblValue_methodlist[] = {
    {"get",(PyCFunction)oaIntDualIntArrayTblValue_get,METH_VARARGS,oaIntDualIntArrayTblValue_get_doc},
    {"set",(PyCFunction)oaIntDualIntArrayTblValue_set,METH_VARARGS,oaIntDualIntArrayTblValue_set_doc},
    {"isNull",(PyCFunction)oaIntDualIntArrayTblValue_tp_isNull,METH_VARARGS,oaIntDualIntArrayTblValue_isNull_doc},
    {"assign",(PyCFunction)oaIntDualIntArrayTblValue_tp_assign,METH_VARARGS,oaIntDualIntArrayTblValue_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntDualIntArrayTblValue_doc[] = 
"Class: oaIntDualIntArrayTblValue\n"
"  This class implements oaValue functionality for a 1D lookup table, in which oaInt4 integers represent keys, and arrays of oaInt4 integer pairs represent values. It is declared in the oaBase module.\n"
"  Todo\n"
"  Add description of class.\n"
"Constructors:\n"
"  Paramegers: (oaIntDualIntArrayTblValue)\n"
"    Calls: (const oaIntDualIntArrayTblValue&)\n"
"    Signature: oaIntDualIntArrayTblValue||cref-oaIntDualIntArrayTblValue,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntDualIntArrayTblValue_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntDualIntArrayTblValue",
    sizeof(PyoaIntDualIntArrayTblValueObject),
    0,
    (destructor)oaIntDualIntArrayTblValue_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntDualIntArrayTblValue_tp_compare,	/* tp_compare */
    (reprfunc)oaIntDualIntArrayTblValue_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntDualIntArrayTblValue_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntDualIntArrayTblValue_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaValue_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntDualIntArrayTblValue_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntDualIntArrayTblValue_static_create_doc[] = 
"Class: oaIntDualIntArrayTblValue, Function: create\n"
"  Paramegers: (oaObject,oa1DLookupTbl_oaInt4_oaDualIntArray)\n"
"    Calls: oaIntDualIntArrayTblValue* create(oaObject* database,const oa1DLookupTbl_oaInt4_oaDualIntArray& value)\n"
"    Signature: create|ptr-oaIntDualIntArrayTblValue|ptr-oaObject,cref-oa1DLookupTbl_oaInt4_oaDualIntArray,\n"
"    This function creates an integer oaIntDualIntArrayTbl value in the specified database.\n"
"    database\n"
"    The database in which the intDualIntArrayTblValue is created.\n"
"    value\n"
"    The look up table of integer and dual integer array values to create the object.\n"
"    Todo\n"
"    Add description of member function. Add description of each parameter.\n"
;

static PyObject*
oaIntDualIntArrayTblValue_static_create(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaObject p1;
    PyParamoa1DLookupTbl_oaInt4_oaDualIntArray p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaObject_Convert,&p1,
          &Pyoa1DLookupTbl_oaInt4_oaDualIntArray_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaIntDualIntArrayTblValuep result= (oaIntDualIntArrayTblValue::create(p1.Data(),p2.Data()));
        return PyoaIntDualIntArrayTblValue_FromoaIntDualIntArrayTblValue(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntDualIntArrayTblValue_staticmethodlist[] = {
    {"static_create",(PyCFunction)oaIntDualIntArrayTblValue_static_create,METH_VARARGS,oaIntDualIntArrayTblValue_static_create_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntDualIntArrayTblValue_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntDualIntArrayTblValue_Type)<0) {
      printf("** PyType_Ready failed for: oaIntDualIntArrayTblValue\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntDualIntArrayTblValue",
           (PyObject*)(&PyoaIntDualIntArrayTblValue_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntDualIntArrayTblValue\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntDualIntArrayTblValue_Type.tp_dict;
    for(method=oaIntDualIntArrayTblValue_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntFltTblValue
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntFltTblValue_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntFltTblValue_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntFltTblValueObject* self = (PyoaIntFltTblValueObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntFltTblValue)
    {
        PyParamoaIntFltTblValue p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntFltTblValue_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntFltTblValue, Choices are:\n"
        "    (oaIntFltTblValue)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntFltTblValue_tp_dealloc(PyoaIntFltTblValueObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntFltTblValue_tp_repr(PyObject *ob)
{
    PyParamoaIntFltTblValue value;
    int convert_status=PyoaIntFltTblValue_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[38];
    sprintf(buffer,"<oaIntFltTblValue::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntFltTblValue_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntFltTblValue v1;
    PyParamoaIntFltTblValue v2;
    int convert_status1=PyoaIntFltTblValue_Convert(ob1,&v1);
    int convert_status2=PyoaIntFltTblValue_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntFltTblValue_Convert(PyObject* ob,PyParamoaIntFltTblValue* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntFltTblValue_Check(ob)) {
        result->SetData( (oaIntFltTblValue**) ((PyoaIntFltTblValueObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntFltTblValue Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntFltTblValue_FromoaIntFltTblValue(oaIntFltTblValue** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntFltTblValue* data=*value;
        PyObject* bself = PyoaIntFltTblValue_Type.tp_alloc(&PyoaIntFltTblValue_Type,0);
        if (bself == NULL) return bself;
        PyoaIntFltTblValueObject* self = (PyoaIntFltTblValueObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntFltTblValue_FromoaIntFltTblValue(oaIntFltTblValue* data)
{
    if (data) {
       PyObject* bself = PyoaIntFltTblValue_Type.tp_alloc(&PyoaIntFltTblValue_Type,0);
       if (bself == NULL) return bself;
       PyoaIntFltTblValueObject* self = (PyoaIntFltTblValueObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntFltTblValue_get_doc[] = 
"Class: oaIntFltTblValue, Function: get\n"
"  Paramegers: (oa1DLookupTbl_oaInt4_oaFloat)\n"
"    Calls: void get(oa1DLookupTbl_oaInt4_oaFloat& tbl) const\n"
"    Signature: get|void-void|ref-oa1DLookupTbl_oaInt4_oaFloat,\n"
"    BrowseData: 0,oa1DLookupTbl_oaInt4_oaFloat\n"
"    This function returns the intFltTbl for this value.\n"
"    tbl\n"
"    The return value\n"
;

static PyObject*
oaIntFltTblValue_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntFltTblValue data;
    int convert_status=PyoaIntFltTblValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntFltTblValueObject* self=(PyoaIntFltTblValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoa1DLookupTbl_oaInt4_oaFloat p1;
    if (PyArg_ParseTuple(args,"O&",
          &Pyoa1DLookupTbl_oaInt4_oaFloat_Convert,&p1)) {
        data.DataCall()->get(p1.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntFltTblValue_set_doc[] = 
"Class: oaIntFltTblValue, Function: set\n"
"  Paramegers: (oa1DLookupTbl_oaInt4_oaFloat)\n"
"    Calls: void set(const oa1DLookupTbl_oaInt4_oaFloat& tbl)\n"
"    Signature: set|void-void|cref-oa1DLookupTbl_oaInt4_oaFloat,\n"
"    This function sets this value to the specified intFltTbl value.\n"
"    tbl\n"
"    The intFltTbl value to set\n"
;

static PyObject*
oaIntFltTblValue_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntFltTblValue data;
    int convert_status=PyoaIntFltTblValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntFltTblValueObject* self=(PyoaIntFltTblValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoa1DLookupTbl_oaInt4_oaFloat p1;
    if (PyArg_ParseTuple(args,"O&",
          &Pyoa1DLookupTbl_oaInt4_oaFloat_Convert,&p1)) {
        data.DataCall()->set(p1.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntFltTblValue_isNull_doc[] =
"Class: oaIntFltTblValue, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntFltTblValue_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntFltTblValue data;
    int convert_status=PyoaIntFltTblValue_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntFltTblValue_assign_doc[] = 
"Class: oaIntFltTblValue, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntFltTblValue_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntFltTblValue data;
  int convert_status=PyoaIntFltTblValue_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntFltTblValue p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntFltTblValue_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntFltTblValue_methodlist[] = {
    {"get",(PyCFunction)oaIntFltTblValue_get,METH_VARARGS,oaIntFltTblValue_get_doc},
    {"set",(PyCFunction)oaIntFltTblValue_set,METH_VARARGS,oaIntFltTblValue_set_doc},
    {"isNull",(PyCFunction)oaIntFltTblValue_tp_isNull,METH_VARARGS,oaIntFltTblValue_isNull_doc},
    {"assign",(PyCFunction)oaIntFltTblValue_tp_assign,METH_VARARGS,oaIntFltTblValue_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntFltTblValue_doc[] = 
"Class: oaIntFltTblValue\n"
"  The oaIntFltTblValue class represents a 1D lookup table value whose key is an integer and value is a float.\n"
"  See oaValue for a discussion of the usage of all of the oaValue subclasses.\n"
"Constructors:\n"
"  Paramegers: (oaIntFltTblValue)\n"
"    Calls: (const oaIntFltTblValue&)\n"
"    Signature: oaIntFltTblValue||cref-oaIntFltTblValue,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntFltTblValue_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntFltTblValue",
    sizeof(PyoaIntFltTblValueObject),
    0,
    (destructor)oaIntFltTblValue_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntFltTblValue_tp_compare,	/* tp_compare */
    (reprfunc)oaIntFltTblValue_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntFltTblValue_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntFltTblValue_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaValue_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntFltTblValue_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntFltTblValue_static_create_doc[] = 
"Class: oaIntFltTblValue, Function: create\n"
"  Paramegers: (oaObject,oa1DLookupTbl_oaInt4_oaFloat)\n"
"    Calls: oaIntFltTblValue* create(oaObject* database,const oa1DLookupTbl_oaInt4_oaFloat& value)\n"
"    Signature: create|ptr-oaIntFltTblValue|ptr-oaObject,cref-oa1DLookupTbl_oaInt4_oaFloat,\n"
"    This function creates intFltTbl value in the database specified.\n"
"    database\n"
"    The database in which to create the value.\n"
"    value\n"
"    The intFltTbl value\n"
"    oacInvalidDatabase\n"
;

static PyObject*
oaIntFltTblValue_static_create(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaObject p1;
    PyParamoa1DLookupTbl_oaInt4_oaFloat p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaObject_Convert,&p1,
          &Pyoa1DLookupTbl_oaInt4_oaFloat_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaIntFltTblValuep result= (oaIntFltTblValue::create(p1.Data(),p2.Data()));
        return PyoaIntFltTblValue_FromoaIntFltTblValue(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntFltTblValue_staticmethodlist[] = {
    {"static_create",(PyCFunction)oaIntFltTblValue_static_create,METH_VARARGS,oaIntFltTblValue_static_create_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntFltTblValue_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntFltTblValue_Type)<0) {
      printf("** PyType_Ready failed for: oaIntFltTblValue\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntFltTblValue",
           (PyObject*)(&PyoaIntFltTblValue_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntFltTblValue\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntFltTblValue_Type.tp_dict;
    for(method=oaIntFltTblValue_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntProp
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntProp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntProp_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntPropObject* self = (PyoaIntPropObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntProp)
    {
        PyParamoaIntProp p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntProp_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntProp, Choices are:\n"
        "    (oaIntProp)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntProp_tp_dealloc(PyoaIntPropObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntProp_tp_repr(PyObject *ob)
{
    PyParamoaIntProp value;
    int convert_status=PyoaIntProp_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;
    if (!value.Data()) {
        oaString buffer("<oaIntProp::NULL>");
        result=PyString_FromString((char*)(const char*)buffer);
    }
    else {
        oaString sresult;
        value.DataCall()->getName(sresult);
    
        char addr[31];
        sprintf(addr,DISPLAY_FORMAT,POINTER_AS_DISPLAY(value.DataCall()));
        oaString buffer;
        buffer+=oaString("<oaIntProp::");
        buffer+=oaString(addr);
        buffer+=oaString("::");
        buffer+=oaString(sresult);
        buffer+=oaString(">");
        result=PyString_FromString((char*)(const char*)buffer);
    
    }
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntProp_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntProp v1;
    PyParamoaIntProp v2;
    int convert_status1=PyoaIntProp_Convert(ob1,&v1);
    int convert_status2=PyoaIntProp_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntProp_Convert(PyObject* ob,PyParamoaIntProp* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntProp_Check(ob)) {
        result->SetData( (oaIntProp**) ((PyoaIntPropObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntProp Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntProp_FromoaIntProp(oaIntProp** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntProp* data=*value;
        PyObject* bself = PyoaIntProp_Type.tp_alloc(&PyoaIntProp_Type,0);
        if (bself == NULL) return bself;
        PyoaIntPropObject* self = (PyoaIntPropObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntProp_FromoaIntProp(oaIntProp* data)
{
    if (data) {
       PyObject* bself = PyoaIntProp_Type.tp_alloc(&PyoaIntProp_Type,0);
       if (bself == NULL) return bself;
       PyoaIntPropObject* self = (PyoaIntPropObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntProp_getValue_doc[] = 
"Class: oaIntProp, Function: getValue\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getValue() const\n"
"    Signature: getValue|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the value of this property.\n"
;

static PyObject*
oaIntProp_getValue(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntProp data;
    int convert_status=PyoaIntProp_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntPropObject* self=(PyoaIntPropObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getValue());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntProp_setValue_doc[] = 
"Class: oaIntProp, Function: setValue\n"
"  Paramegers: (oaInt4)\n"
"    Calls: void setValue(oaInt4 value)\n"
"    Signature: setValue|void-void|simple-oaInt4,\n"
"    This function sets this property to the specified value.\n"
;

static PyObject*
oaIntProp_setValue(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntProp data;
    int convert_status=PyoaIntProp_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntPropObject* self=(PyoaIntPropObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaInt4 p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaInt4_Convert,&p1)) {
        data.DataCall()->setValue(p1.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntProp_isNull_doc[] =
"Class: oaIntProp, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntProp_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntProp data;
    int convert_status=PyoaIntProp_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntProp_assign_doc[] = 
"Class: oaIntProp, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntProp_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntProp data;
  int convert_status=PyoaIntProp_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntProp p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntProp_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntProp_methodlist[] = {
    {"getValue",(PyCFunction)oaIntProp_getValue,METH_VARARGS,oaIntProp_getValue_doc},
    {"setValue",(PyCFunction)oaIntProp_setValue,METH_VARARGS,oaIntProp_setValue_doc},
    {"isNull",(PyCFunction)oaIntProp_tp_isNull,METH_VARARGS,oaIntProp_isNull_doc},
    {"assign",(PyCFunction)oaIntProp_tp_assign,METH_VARARGS,oaIntProp_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntProp_doc[] = 
"Class: oaIntProp\n"
"  The oaIntProp is a property that has an integer value.\n"
"  Properties are application-defined values that can be added to any managed object in oaDesign , oaTech , and oaWafer databases except for the following paged objects: oaDevice , oaNode , oaParasiticNetwork , and oaSubNetwork .\n"
"  To create properties on DM Objects, create the corresponding oaDMData object (using oaLibDMData::open , oaCellDMData::open , oaViewDMData::open , or oaCellViewDMData::open ), then create properties on that oaDMData object.\n"
"  See oaProp for a general discussion of properties.\n"
"Constructors:\n"
"  Paramegers: (oaIntProp)\n"
"    Calls: (const oaIntProp&)\n"
"    Signature: oaIntProp||cref-oaIntProp,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntProp_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntProp",
    sizeof(PyoaIntPropObject),
    0,
    (destructor)oaIntProp_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntProp_tp_compare,	/* tp_compare */
    (reprfunc)oaIntProp_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntProp_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntProp_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaProp_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntProp_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntProp_static_create_doc[] = 
"Class: oaIntProp, Function: create\n"
"  Paramegers: (oaObject,oaString,oaInt4)\n"
"    Calls: oaIntProp* create(oaObject* object,const oaString& name,oaInt4 value)\n"
"    Signature: create|ptr-oaIntProp|ptr-oaObject,cref-oaString,simple-oaInt4,\n"
"    This function creates an integer property with the specified attributes. The specified name is checked to verify it is unique for properties on the specified object .\n"
"    object\n"
"    The object to which to attach the property\n"
"    name\n"
"    The property name\n"
"    value\n"
"    The property value\n"
"    A pointer to the oaIntProp\n"
"    oacInvalidObjForProp\n"
"    oacPropNameUsed\n"
;

static PyObject*
oaIntProp_static_create(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaObject p1;
    PyParamoaString p2;
    PyParamoaInt4 p3;
    if (PyArg_ParseTuple(args,"O&O&O&",
          &PyoaObject_Convert,&p1,
          &PyoaString_Convert,&p2,
          &PyoaInt4_Convert,&p3)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaIntPropp result= (oaIntProp::create(p1.Data(),p2.Data(),p3.Data()));
        return PyoaIntProp_FromoaIntProp(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntProp_staticmethodlist[] = {
    {"static_create",(PyCFunction)oaIntProp_static_create,METH_VARARGS,oaIntProp_static_create_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntProp_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntProp_Type)<0) {
      printf("** PyType_Ready failed for: oaIntProp\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntProp",
           (PyObject*)(&PyoaIntProp_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntProp\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntProp_Type.tp_dict;
    for(method=oaIntProp_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntRange
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntRange_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntRange_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntRangeObject* self = (PyoaIntRangeObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: ()
    {
        if (PyArg_ParseTuple(args,"")) {
            self->value = (oaRangeBase*)  new oaIntRange();
            return bself;
        }
    }
    PyErr_Clear();
    // Case: (oaRangeType,oaInt4)
    {
        PyParamoaRangeType p1;
        PyParamoaInt4 p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaRangeType_Convert,&p1,
              &PyoaInt4_Convert,&p2)) {
            self->value = (oaRangeBase*)  new oaIntRange(p1.Data(),p2.Data());
            return bself;
        }
    }
    PyErr_Clear();
    // Case: (oaRangeType,oaInt4,oaInt4)
    {
        PyParamoaRangeType p1;
        PyParamoaInt4 p2;
        PyParamoaInt4 p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaRangeType_Convert,&p1,
              &PyoaInt4_Convert,&p2,
              &PyoaInt4_Convert,&p3)) {
            self->value = (oaRangeBase*)  new oaIntRange(p1.Data(),p2.Data(),p3.Data());
            return bself;
        }
    }
    PyErr_Clear();
    // Case: (oaIntRange)
    {
        PyParamoaIntRange p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntRange_Convert,&p1)) {
            self->value=(oaRangeBase*)  new oaIntRange(p1.Data());
            return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntRange, Choices are:\n"
        "    ()\n"
        "    (oaRangeType,oaInt4)\n"
        "    (oaRangeType,oaInt4,oaInt4)\n"
        "    (oaIntRange)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntRange_tp_dealloc(PyoaIntRangeObject* self)
{
    if (!self->borrow) {
        delete (oaIntRange*)(self->value);
    }
    Py_XDECREF(self->locks);
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntRange_tp_repr(PyObject *ob)
{
    PyParamoaIntRange value;
    int convert_status=PyoaIntRange_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[32];
    sprintf(buffer,"<oaIntRange::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntRange_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntRange v1;
    PyParamoaIntRange v2;
    int convert_status1=PyoaIntRange_Convert(ob1,&v1);
    int convert_status2=PyoaIntRange_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntRange_Convert(PyObject* ob,PyParamoaIntRange* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntRange_Check(ob)) {
        result->SetData( (oaIntRange*) ((PyoaIntRangeObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntRange Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntRange_FromoaIntRange(oaIntRange* data,int borrow,PyObject* lock)
{
    if (data) {
        PyObject* bself = PyoaIntRange_Type.tp_alloc(&PyoaIntRange_Type,0);
        if (bself == NULL) return bself;
        PyoaIntRangeObject* self = (PyoaIntRangeObject*)bself;
        self->value = (oaRangeBase*)  data;
        self->locks = NULL;
        self->borrow = borrow;
        if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntRange_doc[] = 
"Class: oaIntRange\n"
"  This class is used to specify various kinds of ranges such as greater than a lower bound, less than an upper bound, and between an upper and lower bound.\n"
"  Todo\n"
"  Developer check class description.\n"
"Constructors:\n"
"  Paramegers: ()\n"
"    Calls: oaIntRange()\n"
"    Signature: oaIntRange||\n"
"    This is the default constructor for oaIntRange. This constructor does not initialize any member variables.\n"
"    Todo\n"
"    Specify valid T input types to templated constructor.\n"
"  Paramegers: (oaRangeType,oaInt4)\n"
"    Calls: oaIntRange(oaRangeType type,oaInt4 value)\n"
"    Signature: oaIntRange||simple-oaRangeType,simple-oaInt4,\n"
"    This constructor creates oaInt4 range objects that have either a lower bound or upper bound. This constructor is used to specify range objects for the range types oacLessThanRangeType, oacLessThanEqualRangeType, oacGreaterThanRangeType, and oacGreaterThanEqualRangeType.\n"
"    type\n"
"    The type of the range object.\n"
"    value\n"
"    The upper bound or lower bound based on the type.\n"
"  Paramegers: (oaRangeType,oaInt4,oaInt4)\n"
"    Calls: oaIntRange(oaRangeType type,oaInt4 lowerBoundIn,oaInt4 upperBoundIn)\n"
"    Signature: oaIntRange||simple-oaRangeType,simple-oaInt4,simple-oaInt4,\n"
"    This constructor creates oaInt4 range objects that have both lower and upper bounds.\n"
"    type\n"
"    The type of the range object.\n"
"    lowerBoundIn\n"
"    The lower bound of the range object.\n"
"    upperBoundIn\n"
"    The upper bound of the range object.\n"
"    oacInvalidTypeForRange\n"
"    oacInvalidBoundsForRange\n"
"  Paramegers: (oaIntRange)\n"
"    Calls: (const oaIntRange&)\n"
"    Signature: oaIntRange||cref-oaIntRange,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntRange_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntRange",
    sizeof(PyoaIntRangeObject),
    0,
    (destructor)oaIntRange_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntRange_tp_compare,	/* tp_compare */
    (reprfunc)oaIntRange_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntRange_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    0,					/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaRange_oaInt4_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntRange_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntRange_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntRange_Type)<0) {
      printf("** PyType_Ready failed for: oaIntRange\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntRange",
           (PyObject*)(&PyoaIntRange_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntRange\n");
       return -1;
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntRangeProp
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntRangeProp_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntRangeProp_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntRangePropObject* self = (PyoaIntRangePropObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntRangeProp)
    {
        PyParamoaIntRangeProp p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntRangeProp_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntRangeProp, Choices are:\n"
        "    (oaIntRangeProp)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntRangeProp_tp_dealloc(PyoaIntRangePropObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntRangeProp_tp_repr(PyObject *ob)
{
    PyParamoaIntRangeProp value;
    int convert_status=PyoaIntRangeProp_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;
    if (!value.Data()) {
        oaString buffer("<oaIntRangeProp::NULL>");
        result=PyString_FromString((char*)(const char*)buffer);
    }
    else {
        oaString sresult;
        value.DataCall()->getName(sresult);
    
        char addr[36];
        sprintf(addr,DISPLAY_FORMAT,POINTER_AS_DISPLAY(value.DataCall()));
        oaString buffer;
        buffer+=oaString("<oaIntRangeProp::");
        buffer+=oaString(addr);
        buffer+=oaString("::");
        buffer+=oaString(sresult);
        buffer+=oaString(">");
        result=PyString_FromString((char*)(const char*)buffer);
    
    }
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntRangeProp_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntRangeProp v1;
    PyParamoaIntRangeProp v2;
    int convert_status1=PyoaIntRangeProp_Convert(ob1,&v1);
    int convert_status2=PyoaIntRangeProp_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntRangeProp_Convert(PyObject* ob,PyParamoaIntRangeProp* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntRangeProp_Check(ob)) {
        result->SetData( (oaIntRangeProp**) ((PyoaIntRangePropObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntRangeProp Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntRangeProp_FromoaIntRangeProp(oaIntRangeProp** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntRangeProp* data=*value;
        PyObject* bself = PyoaIntRangeProp_Type.tp_alloc(&PyoaIntRangeProp_Type,0);
        if (bself == NULL) return bself;
        PyoaIntRangePropObject* self = (PyoaIntRangePropObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntRangeProp_FromoaIntRangeProp(oaIntRangeProp* data)
{
    if (data) {
       PyObject* bself = PyoaIntRangeProp_Type.tp_alloc(&PyoaIntRangeProp_Type,0);
       if (bself == NULL) return bself;
       PyoaIntRangePropObject* self = (PyoaIntRangePropObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntRangeProp_getLowerBound_doc[] = 
"Class: oaIntRangeProp, Function: getLowerBound\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getLowerBound() const\n"
"    Signature: getLowerBound|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the lower bound of the integer range.\n"
;

static PyObject*
oaIntRangeProp_getLowerBound(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntRangeProp data;
    int convert_status=PyoaIntRangeProp_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntRangePropObject* self=(PyoaIntRangePropObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getLowerBound());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntRangeProp_getUpperBound_doc[] = 
"Class: oaIntRangeProp, Function: getUpperBound\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getUpperBound() const\n"
"    Signature: getUpperBound|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the upper bound of the integer range.\n"
;

static PyObject*
oaIntRangeProp_getUpperBound(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntRangeProp data;
    int convert_status=PyoaIntRangeProp_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntRangePropObject* self=(PyoaIntRangePropObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getUpperBound());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntRangeProp_getValue_doc[] = 
"Class: oaIntRangeProp, Function: getValue\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 getValue() const\n"
"    Signature: getValue|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the value of this property.\n"
;

static PyObject*
oaIntRangeProp_getValue(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntRangeProp data;
    int convert_status=PyoaIntRangeProp_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntRangePropObject* self=(PyoaIntRangePropObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->getValue());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntRangeProp_set_doc[] = 
"Class: oaIntRangeProp, Function: set\n"
"  Paramegers: (oaInt4,oaInt4,oaInt4)\n"
"    Calls: void set(oaInt4 lowerBound,oaInt4 value,oaInt4 upperBound)\n"
"    Signature: set|void-void|simple-oaInt4,simple-oaInt4,simple-oaInt4,\n"
"    This function sets the attributes for this property.\n"
"    lowerBound\n"
"    The lower bound for the range\n"
"    value\n"
"    The property value\n"
"    upperBound\n"
"    The upper bound for the range\n"
"    oacInvalidValueForIntRange\n"
;

static PyObject*
oaIntRangeProp_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntRangeProp data;
    int convert_status=PyoaIntRangeProp_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntRangePropObject* self=(PyoaIntRangePropObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaInt4 p1;
    PyParamoaInt4 p2;
    PyParamoaInt4 p3;
    if (PyArg_ParseTuple(args,"O&O&O&",
          &PyoaInt4_Convert,&p1,
          &PyoaInt4_Convert,&p2,
          &PyoaInt4_Convert,&p3)) {
        data.DataCall()->set(p1.Data(),p2.Data(),p3.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntRangeProp_setValue_doc[] = 
"Class: oaIntRangeProp, Function: setValue\n"
"  Paramegers: (oaInt4)\n"
"    Calls: void setValue(oaInt4 value)\n"
"    Signature: setValue|void-void|simple-oaInt4,\n"
"    This function sets this property to the specified value.\n"
"    value\n"
"    The property value\n"
"    oacInvalidValueForIntRange\n"
;

static PyObject*
oaIntRangeProp_setValue(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntRangeProp data;
    int convert_status=PyoaIntRangeProp_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntRangePropObject* self=(PyoaIntRangePropObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaInt4 p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaInt4_Convert,&p1)) {
        data.DataCall()->setValue(p1.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntRangeProp_isNull_doc[] =
"Class: oaIntRangeProp, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntRangeProp_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntRangeProp data;
    int convert_status=PyoaIntRangeProp_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntRangeProp_assign_doc[] = 
"Class: oaIntRangeProp, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntRangeProp_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntRangeProp data;
  int convert_status=PyoaIntRangeProp_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntRangeProp p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntRangeProp_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntRangeProp_methodlist[] = {
    {"getLowerBound",(PyCFunction)oaIntRangeProp_getLowerBound,METH_VARARGS,oaIntRangeProp_getLowerBound_doc},
    {"getUpperBound",(PyCFunction)oaIntRangeProp_getUpperBound,METH_VARARGS,oaIntRangeProp_getUpperBound_doc},
    {"getValue",(PyCFunction)oaIntRangeProp_getValue,METH_VARARGS,oaIntRangeProp_getValue_doc},
    {"set",(PyCFunction)oaIntRangeProp_set,METH_VARARGS,oaIntRangeProp_set_doc},
    {"setValue",(PyCFunction)oaIntRangeProp_setValue,METH_VARARGS,oaIntRangeProp_setValue_doc},
    {"isNull",(PyCFunction)oaIntRangeProp_tp_isNull,METH_VARARGS,oaIntRangeProp_isNull_doc},
    {"assign",(PyCFunction)oaIntRangeProp_tp_assign,METH_VARARGS,oaIntRangeProp_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntRangeProp_doc[] = 
"Class: oaIntRangeProp\n"
"  The oaIntRangeProp is a property that has an integer-type value as well as a range of valid values that the integer is allowed to take on. The range can be used by a generic property editor to assist a user to enter a proper value.\n"
"  Properties are application-defined values that can be added to any managed object in oaDesign , oaTech , and oaWafer databases except for the following paged objects: oaDevice , oaNode , oaParasiticNetwork , and oaSubNetwork .\n"
"  To create properties on DM Objects, create the corresponding oaDMData object (using oaLibDMData::open , oaCellDMData::open , oaViewDMData::open , or oaCellViewDMData::open ), then create properties on that oaDMData object.\n"
"  See oaProp for a general discussion of properties.\n"
"Constructors:\n"
"  Paramegers: (oaIntRangeProp)\n"
"    Calls: (const oaIntRangeProp&)\n"
"    Signature: oaIntRangeProp||cref-oaIntRangeProp,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntRangeProp_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntRangeProp",
    sizeof(PyoaIntRangePropObject),
    0,
    (destructor)oaIntRangeProp_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntRangeProp_tp_compare,	/* tp_compare */
    (reprfunc)oaIntRangeProp_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntRangeProp_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntRangeProp_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaProp_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntRangeProp_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntRangeProp_static_create_doc[] = 
"Class: oaIntRangeProp, Function: create\n"
"  Paramegers: (oaObject,oaString,oaInt4,oaInt4,oaInt4)\n"
"    Calls: oaIntRangeProp* create(oaObject* object,const oaString& name,oaInt4 lowerBound,oaInt4 value,oaInt4 upperBound)\n"
"    Signature: create|ptr-oaIntRangeProp|ptr-oaObject,cref-oaString,simple-oaInt4,simple-oaInt4,simple-oaInt4,\n"
"    This function creates an integer-range property with the specified attributes. The specified name is checked to verify it is unique for properties on the specified object.\n"
"    object\n"
"    The object on which to attach the property.\n"
"    name\n"
"    The property name.\n"
"    lowerBound\n"
"    The lower bound for the range.\n"
"    value\n"
"    The property value.\n"
"    upperBound\n"
"    The upper bound for the range.\n"
"    A pointer to the oaIntRangeProp\n"
"    oacInvalidObjForProp\n"
"    oacInvalidValueForIntRange\n"
"    oacPropNameUsed\n"
;

static PyObject*
oaIntRangeProp_static_create(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaObject p1;
    PyParamoaString p2;
    PyParamoaInt4 p3;
    PyParamoaInt4 p4;
    PyParamoaInt4 p5;
    if (PyArg_ParseTuple(args,"O&O&O&O&O&",
          &PyoaObject_Convert,&p1,
          &PyoaString_Convert,&p2,
          &PyoaInt4_Convert,&p3,
          &PyoaInt4_Convert,&p4,
          &PyoaInt4_Convert,&p5)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaIntRangePropp result= (oaIntRangeProp::create(p1.Data(),p2.Data(),p3.Data(),p4.Data(),p5.Data()));
        return PyoaIntRangeProp_FromoaIntRangeProp(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntRangeProp_staticmethodlist[] = {
    {"static_create",(PyCFunction)oaIntRangeProp_static_create,METH_VARARGS,oaIntRangeProp_static_create_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntRangeProp_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntRangeProp_Type)<0) {
      printf("** PyType_Ready failed for: oaIntRangeProp\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntRangeProp",
           (PyObject*)(&PyoaIntRangeProp_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntRangeProp\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntRangeProp_Type.tp_dict;
    for(method=oaIntRangeProp_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntRangeValue
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntRangeValue_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntRangeValue_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntRangeValueObject* self = (PyoaIntRangeValueObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntRangeValue)
    {
        PyParamoaIntRangeValue p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntRangeValue_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntRangeValue, Choices are:\n"
        "    (oaIntRangeValue)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntRangeValue_tp_dealloc(PyoaIntRangeValueObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntRangeValue_tp_repr(PyObject *ob)
{
    PyParamoaIntRangeValue value;
    int convert_status=PyoaIntRangeValue_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[37];
    sprintf(buffer,"<oaIntRangeValue::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntRangeValue_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntRangeValue v1;
    PyParamoaIntRangeValue v2;
    int convert_status1=PyoaIntRangeValue_Convert(ob1,&v1);
    int convert_status2=PyoaIntRangeValue_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntRangeValue_Convert(PyObject* ob,PyParamoaIntRangeValue* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntRangeValue_Check(ob)) {
        result->SetData( (oaIntRangeValue**) ((PyoaIntRangeValueObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntRangeValue Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntRangeValue_FromoaIntRangeValue(oaIntRangeValue** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntRangeValue* data=*value;
        PyObject* bself = PyoaIntRangeValue_Type.tp_alloc(&PyoaIntRangeValue_Type,0);
        if (bself == NULL) return bself;
        PyoaIntRangeValueObject* self = (PyoaIntRangeValueObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntRangeValue_FromoaIntRangeValue(oaIntRangeValue* data)
{
    if (data) {
       PyObject* bself = PyoaIntRangeValue_Type.tp_alloc(&PyoaIntRangeValue_Type,0);
       if (bself == NULL) return bself;
       PyoaIntRangeValueObject* self = (PyoaIntRangeValueObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntRangeValue_get_doc[] = 
"Class: oaIntRangeValue, Function: get\n"
"  Paramegers: (oaIntRange)\n"
"    Calls: void get(oaIntRange& value) const\n"
"    Signature: get|void-void|ref-oaIntRange,\n"
"    BrowseData: 0,oaIntRange\n"
"    This function returns the range value of this object.\n"
"    value\n"
"    The range of this object.\n"
;

static PyObject*
oaIntRangeValue_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntRangeValue data;
    int convert_status=PyoaIntRangeValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntRangeValueObject* self=(PyoaIntRangeValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaIntRange p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaIntRange_Convert,&p1)) {
        data.DataCall()->get(p1.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntRangeValue_set_doc[] = 
"Class: oaIntRangeValue, Function: set\n"
"  Paramegers: (oaIntRange)\n"
"    Calls: void set(const oaIntRange& value)\n"
"    Signature: set|void-void|cref-oaIntRange,\n"
"    This function sets the value of this object to the specified range.\n"
"    value\n"
"    The range that is set on this object.\n"
;

static PyObject*
oaIntRangeValue_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntRangeValue data;
    int convert_status=PyoaIntRangeValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntRangeValueObject* self=(PyoaIntRangeValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaIntRange p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaIntRange_Convert,&p1)) {
        data.DataCall()->set(p1.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntRangeValue_isNull_doc[] =
"Class: oaIntRangeValue, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntRangeValue_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntRangeValue data;
    int convert_status=PyoaIntRangeValue_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntRangeValue_assign_doc[] = 
"Class: oaIntRangeValue, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntRangeValue_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntRangeValue data;
  int convert_status=PyoaIntRangeValue_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntRangeValue p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntRangeValue_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntRangeValue_methodlist[] = {
    {"get",(PyCFunction)oaIntRangeValue_get,METH_VARARGS,oaIntRangeValue_get_doc},
    {"set",(PyCFunction)oaIntRangeValue_set,METH_VARARGS,oaIntRangeValue_set_doc},
    {"isNull",(PyCFunction)oaIntRangeValue_tp_isNull,METH_VARARGS,oaIntRangeValue_isNull_doc},
    {"assign",(PyCFunction)oaIntRangeValue_tp_assign,METH_VARARGS,oaIntRangeValue_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntRangeValue_doc[] = 
"Class: oaIntRangeValue\n"
"  This class implements oaValue functionality for the instantiation of the oaRange template class with an oaInt4 type.\n"
"  Todo\n"
"  Check description of class.\n"
"Constructors:\n"
"  Paramegers: (oaIntRangeValue)\n"
"    Calls: (const oaIntRangeValue&)\n"
"    Signature: oaIntRangeValue||cref-oaIntRangeValue,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntRangeValue_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntRangeValue",
    sizeof(PyoaIntRangeValueObject),
    0,
    (destructor)oaIntRangeValue_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntRangeValue_tp_compare,	/* tp_compare */
    (reprfunc)oaIntRangeValue_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntRangeValue_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntRangeValue_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaValue_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntRangeValue_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntRangeValue_static_create_doc[] = 
"Class: oaIntRangeValue, Function: create\n"
"  Paramegers: (oaObject,oaIntRange)\n"
"    Calls: oaIntRangeValue* create(oaObject* database,const oaIntRange& value)\n"
"    Signature: create|ptr-oaIntRangeValue|ptr-oaObject,cref-oaIntRange,\n"
"    This function creates an integer range value in the specified database.\n"
"    database\n"
"    The database in which the intValue is created.\n"
"    value\n"
"    The range to create the range value with.\n"
;

static PyObject*
oaIntRangeValue_static_create(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaObject p1;
    PyParamoaIntRange p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaObject_Convert,&p1,
          &PyoaIntRange_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaIntRangeValuep result= (oaIntRangeValue::create(p1.Data(),p2.Data()));
        return PyoaIntRangeValue_FromoaIntRangeValue(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntRangeValue_staticmethodlist[] = {
    {"static_create",(PyCFunction)oaIntRangeValue_static_create,METH_VARARGS,oaIntRangeValue_static_create_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntRangeValue_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntRangeValue_Type)<0) {
      printf("** PyType_Ready failed for: oaIntRangeValue\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntRangeValue",
           (PyObject*)(&PyoaIntRangeValue_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntRangeValue\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntRangeValue_Type.tp_dict;
    for(method=oaIntRangeValue_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaIntValue
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaIntValue_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaIntValue_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaIntValueObject* self = (PyoaIntValueObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaIntValue)
    {
        PyParamoaIntValue p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaIntValue_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaIntValue, Choices are:\n"
        "    (oaIntValue)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaIntValue_tp_dealloc(PyoaIntValueObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaIntValue_tp_repr(PyObject *ob)
{
    PyParamoaIntValue value;
    int convert_status=PyoaIntValue_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[32];
    sprintf(buffer,"<oaIntValue::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaIntValue_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaIntValue v1;
    PyParamoaIntValue v2;
    int convert_status1=PyoaIntValue_Convert(ob1,&v1);
    int convert_status2=PyoaIntValue_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaIntValue_Convert(PyObject* ob,PyParamoaIntValue* result)
{
    if (ob == NULL) return 1;
    if (PyoaIntValue_Check(ob)) {
        result->SetData( (oaIntValue**) ((PyoaIntValueObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaIntValue Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaIntValue_FromoaIntValue(oaIntValue** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaIntValue* data=*value;
        PyObject* bself = PyoaIntValue_Type.tp_alloc(&PyoaIntValue_Type,0);
        if (bself == NULL) return bself;
        PyoaIntValueObject* self = (PyoaIntValueObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaIntValue_FromoaIntValue(oaIntValue* data)
{
    if (data) {
       PyObject* bself = PyoaIntValue_Type.tp_alloc(&PyoaIntValue_Type,0);
       if (bself == NULL) return bself;
       PyoaIntValueObject* self = (PyoaIntValueObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntValue_get_doc[] = 
"Class: oaIntValue, Function: get\n"
"  Paramegers: ()\n"
"    Calls: oaInt4 get() const\n"
"    Signature: get|simple-oaInt4|\n"
"    BrowseData: 1\n"
"    This function returns the integer of this value.\n"
;

static PyObject*
oaIntValue_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntValue data;
    int convert_status=PyoaIntValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntValueObject* self=(PyoaIntValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    if (PyArg_ParseTuple(args,"")) {
        oaInt4 result= (data.DataCall()->get());
        return PyoaInt4_FromoaInt4(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntValue_set_doc[] = 
"Class: oaIntValue, Function: set\n"
"  Paramegers: (oaInt4)\n"
"    Calls: void set(oaInt4 value)\n"
"    Signature: set|void-void|simple-oaInt4,\n"
"    This function sets this value to the specified integer value.\n"
"    value\n"
"    The integer value to set\n"
;

static PyObject*
oaIntValue_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaIntValue data;
    int convert_status=PyoaIntValue_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaIntValueObject* self=(PyoaIntValueObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaInt4 p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaInt4_Convert,&p1)) {
        data.DataCall()->set(p1.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaIntValue_isNull_doc[] =
"Class: oaIntValue, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaIntValue_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaIntValue data;
    int convert_status=PyoaIntValue_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaIntValue_assign_doc[] = 
"Class: oaIntValue, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaIntValue_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaIntValue data;
  int convert_status=PyoaIntValue_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaIntValue p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaIntValue_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaIntValue_methodlist[] = {
    {"get",(PyCFunction)oaIntValue_get,METH_VARARGS,oaIntValue_get_doc},
    {"set",(PyCFunction)oaIntValue_set,METH_VARARGS,oaIntValue_set_doc},
    {"isNull",(PyCFunction)oaIntValue_tp_isNull,METH_VARARGS,oaIntValue_isNull_doc},
    {"assign",(PyCFunction)oaIntValue_tp_assign,METH_VARARGS,oaIntValue_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntValue_doc[] = 
"Class: oaIntValue\n"
"  The oaIntValue class represents an integer value.\n"
"  See oaValue for a discussion of the usage of all of the oaValue subclasses.\n"
"Constructors:\n"
"  Paramegers: (oaIntValue)\n"
"    Calls: (const oaIntValue&)\n"
"    Signature: oaIntValue||cref-oaIntValue,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaIntValue_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaIntValue",
    sizeof(PyoaIntValueObject),
    0,
    (destructor)oaIntValue_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaIntValue_tp_compare,	/* tp_compare */
    (reprfunc)oaIntValue_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaIntValue_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaIntValue_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaValue_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaIntValue_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaIntValue_static_create_doc[] = 
"Class: oaIntValue, Function: create\n"
"  Paramegers: (oaObject,oaInt4)\n"
"    Calls: oaIntValue* create(oaObject* database,oaInt4 value)\n"
"    Signature: create|ptr-oaIntValue|ptr-oaObject,simple-oaInt4,\n"
"    This function creates an integer value in the database specified.\n"
"    database\n"
"    The database in which the intValue is created.\n"
"    value\n"
"    The integer value.\n"
"    oacInvalidDatabase\n"
;

static PyObject*
oaIntValue_static_create(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaObject p1;
    PyParamoaInt4 p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaObject_Convert,&p1,
          &PyoaInt4_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaIntValuep result= (oaIntValue::create(p1.Data(),p2.Data()));
        return PyoaIntValue_FromoaIntValue(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaIntValue_staticmethodlist[] = {
    {"static_create",(PyCFunction)oaIntValue_static_create,METH_VARARGS,oaIntValue_static_create_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaIntValue_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaIntValue_Type)<0) {
      printf("** PyType_Ready failed for: oaIntValue\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaIntValue",
           (PyObject*)(&PyoaIntValue_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaIntValue\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaIntValue_Type.tp_dict;
    for(method=oaIntValue_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaAnalysisOpPoint
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaAnalysisOpPoint_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaAnalysisOpPoint_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaAnalysisOpPointObject* self = (PyoaInterPointerAppDef_oaAnalysisOpPointObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaAnalysisOpPoint)
    {
        PyParamoaInterPointerAppDef_oaAnalysisOpPoint p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaAnalysisOpPoint_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaAnalysisOpPoint, Choices are:\n"
        "    (oaInterPointerAppDef_oaAnalysisOpPoint)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaAnalysisOpPoint_tp_dealloc(PyoaInterPointerAppDef_oaAnalysisOpPointObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaAnalysisOpPoint_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaAnalysisOpPoint value;
    int convert_status=PyoaInterPointerAppDef_oaAnalysisOpPoint_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[60];
    sprintf(buffer,"<oaInterPointerAppDef_oaAnalysisOpPoint::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaAnalysisOpPoint_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaAnalysisOpPoint v1;
    PyParamoaInterPointerAppDef_oaAnalysisOpPoint v2;
    int convert_status1=PyoaInterPointerAppDef_oaAnalysisOpPoint_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaAnalysisOpPoint_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaAnalysisOpPoint_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaAnalysisOpPoint* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaAnalysisOpPoint_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaAnalysisOpPoint**) ((PyoaInterPointerAppDef_oaAnalysisOpPointObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaAnalysisOpPoint Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaAnalysisOpPoint_FromoaInterPointerAppDef_oaAnalysisOpPoint(oaInterPointerAppDef_oaAnalysisOpPoint** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaAnalysisOpPoint* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaAnalysisOpPoint_Type.tp_alloc(&PyoaInterPointerAppDef_oaAnalysisOpPoint_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaAnalysisOpPointObject* self = (PyoaInterPointerAppDef_oaAnalysisOpPointObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaAnalysisOpPoint_FromoaInterPointerAppDef_oaAnalysisOpPoint(oaInterPointerAppDef_oaAnalysisOpPoint* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaAnalysisOpPoint_Type.tp_alloc(&PyoaInterPointerAppDef_oaAnalysisOpPoint_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaAnalysisOpPointObject* self = (PyoaInterPointerAppDef_oaAnalysisOpPointObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisOpPoint_get_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisOpPoint, Function: get\n"
"  Paramegers: (oaAnalysisOpPoint)\n"
"    Calls: oaObject* get(const oaAnalysisOpPoint* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaAnalysisOpPoint,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisOpPoint_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaAnalysisOpPoint data;
    int convert_status=PyoaInterPointerAppDef_oaAnalysisOpPoint_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaAnalysisOpPointObject* self=(PyoaInterPointerAppDef_oaAnalysisOpPointObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaAnalysisOpPoint p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaAnalysisOpPoint_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisOpPoint_set_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisOpPoint, Function: set\n"
"  Paramegers: (oaAnalysisOpPoint,oaObject)\n"
"    Calls: void set(oaAnalysisOpPoint* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaAnalysisOpPoint,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisOpPoint_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaAnalysisOpPoint data;
    int convert_status=PyoaInterPointerAppDef_oaAnalysisOpPoint_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaAnalysisOpPointObject* self=(PyoaInterPointerAppDef_oaAnalysisOpPointObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaAnalysisOpPoint p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaAnalysisOpPoint_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisOpPoint_isNull_doc[] =
"Class: oaInterPointerAppDef_oaAnalysisOpPoint, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisOpPoint_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaAnalysisOpPoint data;
    int convert_status=PyoaInterPointerAppDef_oaAnalysisOpPoint_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaAnalysisOpPoint_assign_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisOpPoint, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisOpPoint_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaAnalysisOpPoint data;
  int convert_status=PyoaInterPointerAppDef_oaAnalysisOpPoint_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaAnalysisOpPoint p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaAnalysisOpPoint_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaAnalysisOpPoint_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaAnalysisOpPoint_get,METH_VARARGS,oaInterPointerAppDef_oaAnalysisOpPoint_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaAnalysisOpPoint_set,METH_VARARGS,oaInterPointerAppDef_oaAnalysisOpPoint_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaAnalysisOpPoint_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaAnalysisOpPoint_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaAnalysisOpPoint_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaAnalysisOpPoint_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisOpPoint_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisOpPoint\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaAnalysisOpPoint)\n"
"    Calls: (const oaInterPointerAppDef_oaAnalysisOpPoint&)\n"
"    Signature: oaInterPointerAppDef_oaAnalysisOpPoint||cref-oaInterPointerAppDef_oaAnalysisOpPoint,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaAnalysisOpPoint_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaAnalysisOpPoint",
    sizeof(PyoaInterPointerAppDef_oaAnalysisOpPointObject),
    0,
    (destructor)oaInterPointerAppDef_oaAnalysisOpPoint_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaAnalysisOpPoint_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaAnalysisOpPoint_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaAnalysisOpPoint_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaAnalysisOpPoint_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaAnalysisOpPoint_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisOpPoint_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisOpPoint, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisOpPoint* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaAnalysisOpPoint|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisOpPoint* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaAnalysisOpPoint|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisOpPoint_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaAnalysisOpPointp result= (oaInterPointerAppDef_oaAnalysisOpPoint::find(p1.Data()));
            return PyoaInterPointerAppDef_oaAnalysisOpPoint_FromoaInterPointerAppDef_oaAnalysisOpPoint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAnalysisOpPointp result= (oaInterPointerAppDef_oaAnalysisOpPoint::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaAnalysisOpPoint_FromoaInterPointerAppDef_oaAnalysisOpPoint(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaAnalysisOpPoint, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisOpPoint_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisOpPoint, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisOpPoint* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAnalysisOpPoint|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisOpPoint* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAnalysisOpPoint|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisOpPoint* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAnalysisOpPoint|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisOpPoint* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAnalysisOpPoint|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisOpPoint_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaAnalysisOpPointp result= (oaInterPointerAppDef_oaAnalysisOpPoint::get(p1.Data()));
            return PyoaInterPointerAppDef_oaAnalysisOpPoint_FromoaInterPointerAppDef_oaAnalysisOpPoint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaAnalysisOpPointp result= (oaInterPointerAppDef_oaAnalysisOpPoint::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaAnalysisOpPoint_FromoaInterPointerAppDef_oaAnalysisOpPoint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAnalysisOpPointp result= (oaInterPointerAppDef_oaAnalysisOpPoint::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaAnalysisOpPoint_FromoaInterPointerAppDef_oaAnalysisOpPoint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAnalysisOpPointp result= (oaInterPointerAppDef_oaAnalysisOpPoint::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaAnalysisOpPoint_FromoaInterPointerAppDef_oaAnalysisOpPoint(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaAnalysisOpPoint, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaAnalysisOpPoint_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaAnalysisOpPoint_static_find,METH_VARARGS,oaInterPointerAppDef_oaAnalysisOpPoint_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaAnalysisOpPoint_static_get,METH_VARARGS,oaInterPointerAppDef_oaAnalysisOpPoint_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaAnalysisOpPoint_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaAnalysisOpPoint_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaAnalysisOpPoint\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaAnalysisOpPoint",
           (PyObject*)(&PyoaInterPointerAppDef_oaAnalysisOpPoint_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaAnalysisOpPoint\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaAnalysisOpPoint_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaAnalysisOpPoint_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaAnalysisPoint
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaAnalysisPoint_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaAnalysisPoint_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaAnalysisPointObject* self = (PyoaInterPointerAppDef_oaAnalysisPointObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaAnalysisPoint)
    {
        PyParamoaInterPointerAppDef_oaAnalysisPoint p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaAnalysisPoint_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaAnalysisPoint, Choices are:\n"
        "    (oaInterPointerAppDef_oaAnalysisPoint)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaAnalysisPoint_tp_dealloc(PyoaInterPointerAppDef_oaAnalysisPointObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaAnalysisPoint_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaAnalysisPoint value;
    int convert_status=PyoaInterPointerAppDef_oaAnalysisPoint_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[58];
    sprintf(buffer,"<oaInterPointerAppDef_oaAnalysisPoint::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaAnalysisPoint_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaAnalysisPoint v1;
    PyParamoaInterPointerAppDef_oaAnalysisPoint v2;
    int convert_status1=PyoaInterPointerAppDef_oaAnalysisPoint_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaAnalysisPoint_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaAnalysisPoint_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaAnalysisPoint* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaAnalysisPoint_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaAnalysisPoint**) ((PyoaInterPointerAppDef_oaAnalysisPointObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaAnalysisPoint Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaAnalysisPoint_FromoaInterPointerAppDef_oaAnalysisPoint(oaInterPointerAppDef_oaAnalysisPoint** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaAnalysisPoint* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaAnalysisPoint_Type.tp_alloc(&PyoaInterPointerAppDef_oaAnalysisPoint_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaAnalysisPointObject* self = (PyoaInterPointerAppDef_oaAnalysisPointObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaAnalysisPoint_FromoaInterPointerAppDef_oaAnalysisPoint(oaInterPointerAppDef_oaAnalysisPoint* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaAnalysisPoint_Type.tp_alloc(&PyoaInterPointerAppDef_oaAnalysisPoint_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaAnalysisPointObject* self = (PyoaInterPointerAppDef_oaAnalysisPointObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisPoint_get_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisPoint, Function: get\n"
"  Paramegers: (oaAnalysisPoint)\n"
"    Calls: oaObject* get(const oaAnalysisPoint* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaAnalysisPoint,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisPoint_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaAnalysisPoint data;
    int convert_status=PyoaInterPointerAppDef_oaAnalysisPoint_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaAnalysisPointObject* self=(PyoaInterPointerAppDef_oaAnalysisPointObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaAnalysisPoint p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaAnalysisPoint_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisPoint_set_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisPoint, Function: set\n"
"  Paramegers: (oaAnalysisPoint,oaObject)\n"
"    Calls: void set(oaAnalysisPoint* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaAnalysisPoint,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisPoint_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaAnalysisPoint data;
    int convert_status=PyoaInterPointerAppDef_oaAnalysisPoint_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaAnalysisPointObject* self=(PyoaInterPointerAppDef_oaAnalysisPointObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaAnalysisPoint p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaAnalysisPoint_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisPoint_isNull_doc[] =
"Class: oaInterPointerAppDef_oaAnalysisPoint, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisPoint_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaAnalysisPoint data;
    int convert_status=PyoaInterPointerAppDef_oaAnalysisPoint_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaAnalysisPoint_assign_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisPoint, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisPoint_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaAnalysisPoint data;
  int convert_status=PyoaInterPointerAppDef_oaAnalysisPoint_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaAnalysisPoint p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaAnalysisPoint_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaAnalysisPoint_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaAnalysisPoint_get,METH_VARARGS,oaInterPointerAppDef_oaAnalysisPoint_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaAnalysisPoint_set,METH_VARARGS,oaInterPointerAppDef_oaAnalysisPoint_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaAnalysisPoint_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaAnalysisPoint_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaAnalysisPoint_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaAnalysisPoint_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisPoint_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisPoint\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaAnalysisPoint)\n"
"    Calls: (const oaInterPointerAppDef_oaAnalysisPoint&)\n"
"    Signature: oaInterPointerAppDef_oaAnalysisPoint||cref-oaInterPointerAppDef_oaAnalysisPoint,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaAnalysisPoint_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaAnalysisPoint",
    sizeof(PyoaInterPointerAppDef_oaAnalysisPointObject),
    0,
    (destructor)oaInterPointerAppDef_oaAnalysisPoint_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaAnalysisPoint_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaAnalysisPoint_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaAnalysisPoint_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaAnalysisPoint_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaAnalysisPoint_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisPoint_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisPoint, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisPoint* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaAnalysisPoint|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisPoint* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaAnalysisPoint|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisPoint_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaAnalysisPointp result= (oaInterPointerAppDef_oaAnalysisPoint::find(p1.Data()));
            return PyoaInterPointerAppDef_oaAnalysisPoint_FromoaInterPointerAppDef_oaAnalysisPoint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAnalysisPointp result= (oaInterPointerAppDef_oaAnalysisPoint::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaAnalysisPoint_FromoaInterPointerAppDef_oaAnalysisPoint(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaAnalysisPoint, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAnalysisPoint_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaAnalysisPoint, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisPoint* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAnalysisPoint|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisPoint* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAnalysisPoint|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisPoint* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAnalysisPoint|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaAnalysisPoint* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAnalysisPoint|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaAnalysisPoint_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaAnalysisPointp result= (oaInterPointerAppDef_oaAnalysisPoint::get(p1.Data()));
            return PyoaInterPointerAppDef_oaAnalysisPoint_FromoaInterPointerAppDef_oaAnalysisPoint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaAnalysisPointp result= (oaInterPointerAppDef_oaAnalysisPoint::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaAnalysisPoint_FromoaInterPointerAppDef_oaAnalysisPoint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAnalysisPointp result= (oaInterPointerAppDef_oaAnalysisPoint::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaAnalysisPoint_FromoaInterPointerAppDef_oaAnalysisPoint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAnalysisPointp result= (oaInterPointerAppDef_oaAnalysisPoint::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaAnalysisPoint_FromoaInterPointerAppDef_oaAnalysisPoint(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaAnalysisPoint, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaAnalysisPoint_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaAnalysisPoint_static_find,METH_VARARGS,oaInterPointerAppDef_oaAnalysisPoint_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaAnalysisPoint_static_get,METH_VARARGS,oaInterPointerAppDef_oaAnalysisPoint_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaAnalysisPoint_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaAnalysisPoint_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaAnalysisPoint\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaAnalysisPoint",
           (PyObject*)(&PyoaInterPointerAppDef_oaAnalysisPoint_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaAnalysisPoint\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaAnalysisPoint_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaAnalysisPoint_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaAppObject
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaAppObject_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaAppObject_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaAppObjectObject* self = (PyoaInterPointerAppDef_oaAppObjectObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaAppObject)
    {
        PyParamoaInterPointerAppDef_oaAppObject p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaAppObject_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaAppObject, Choices are:\n"
        "    (oaInterPointerAppDef_oaAppObject)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaAppObject_tp_dealloc(PyoaInterPointerAppDef_oaAppObjectObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaAppObject_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaAppObject value;
    int convert_status=PyoaInterPointerAppDef_oaAppObject_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[54];
    sprintf(buffer,"<oaInterPointerAppDef_oaAppObject::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaAppObject_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaAppObject v1;
    PyParamoaInterPointerAppDef_oaAppObject v2;
    int convert_status1=PyoaInterPointerAppDef_oaAppObject_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaAppObject_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaAppObject_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaAppObject* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaAppObject_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaAppObject**) ((PyoaInterPointerAppDef_oaAppObjectObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaAppObject Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaAppObject_FromoaInterPointerAppDef_oaAppObject(oaInterPointerAppDef_oaAppObject** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaAppObject* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaAppObject_Type.tp_alloc(&PyoaInterPointerAppDef_oaAppObject_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaAppObjectObject* self = (PyoaInterPointerAppDef_oaAppObjectObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaAppObject_FromoaInterPointerAppDef_oaAppObject(oaInterPointerAppDef_oaAppObject* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaAppObject_Type.tp_alloc(&PyoaInterPointerAppDef_oaAppObject_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaAppObjectObject* self = (PyoaInterPointerAppDef_oaAppObjectObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAppObject_get_doc[] = 
"Class: oaInterPointerAppDef_oaAppObject, Function: get\n"
"  Paramegers: (oaAppObject)\n"
"    Calls: oaObject* get(const oaAppObject* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaAppObject,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaAppObject_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaAppObject data;
    int convert_status=PyoaInterPointerAppDef_oaAppObject_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaAppObjectObject* self=(PyoaInterPointerAppDef_oaAppObjectObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaAppObject p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaAppObject_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAppObject_set_doc[] = 
"Class: oaInterPointerAppDef_oaAppObject, Function: set\n"
"  Paramegers: (oaAppObject,oaObject)\n"
"    Calls: void set(oaAppObject* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaAppObject,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaAppObject_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaAppObject data;
    int convert_status=PyoaInterPointerAppDef_oaAppObject_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaAppObjectObject* self=(PyoaInterPointerAppDef_oaAppObjectObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaAppObject p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaAppObject_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAppObject_isNull_doc[] =
"Class: oaInterPointerAppDef_oaAppObject, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaAppObject_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaAppObject data;
    int convert_status=PyoaInterPointerAppDef_oaAppObject_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaAppObject_assign_doc[] = 
"Class: oaInterPointerAppDef_oaAppObject, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaAppObject_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaAppObject data;
  int convert_status=PyoaInterPointerAppDef_oaAppObject_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaAppObject p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaAppObject_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaAppObject_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaAppObject_get,METH_VARARGS,oaInterPointerAppDef_oaAppObject_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaAppObject_set,METH_VARARGS,oaInterPointerAppDef_oaAppObject_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaAppObject_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaAppObject_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaAppObject_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaAppObject_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAppObject_doc[] = 
"Class: oaInterPointerAppDef_oaAppObject\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaAppObject)\n"
"    Calls: (const oaInterPointerAppDef_oaAppObject&)\n"
"    Signature: oaInterPointerAppDef_oaAppObject||cref-oaInterPointerAppDef_oaAppObject,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaAppObject_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaAppObject",
    sizeof(PyoaInterPointerAppDef_oaAppObjectObject),
    0,
    (destructor)oaInterPointerAppDef_oaAppObject_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaAppObject_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaAppObject_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaAppObject_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaAppObject_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaAppObject_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAppObject_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaAppObject, Function: find\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaAppObject* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaAppObject|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaAppObject_static_find(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaString p1;
    PyParamoaAppObjectDef p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaString_Convert,&p1,
          &PyoaAppObjectDef_Convert,&p2)) {
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        oaInterPointerAppDef_oaAppObjectp result= (oaInterPointerAppDef_oaAppObject::find(p1.Data(),p2.Data()));
        return PyoaInterPointerAppDef_oaAppObject_FromoaInterPointerAppDef_oaAppObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAppObject_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaAppObject, Function: get\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaAppObject* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAppObject|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaAppObject* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAppObject|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaAppObject_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAppObjectp result= (oaInterPointerAppDef_oaAppObject::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaAppObject_FromoaInterPointerAppDef_oaAppObject(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAppObjectp result= (oaInterPointerAppDef_oaAppObject::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaAppObject_FromoaInterPointerAppDef_oaAppObject(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaAppObject, function: get, Choices are:\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaAppObject_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaAppObject_static_find,METH_VARARGS,oaInterPointerAppDef_oaAppObject_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaAppObject_static_get,METH_VARARGS,oaInterPointerAppDef_oaAppObject_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaAppObject_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaAppObject_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaAppObject\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaAppObject",
           (PyObject*)(&PyoaInterPointerAppDef_oaAppObject_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaAppObject\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaAppObject_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaAppObject_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaAssignment
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaAssignment_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaAssignment_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaAssignmentObject* self = (PyoaInterPointerAppDef_oaAssignmentObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaAssignment)
    {
        PyParamoaInterPointerAppDef_oaAssignment p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaAssignment_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaAssignment, Choices are:\n"
        "    (oaInterPointerAppDef_oaAssignment)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaAssignment_tp_dealloc(PyoaInterPointerAppDef_oaAssignmentObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaAssignment_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaAssignment value;
    int convert_status=PyoaInterPointerAppDef_oaAssignment_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[55];
    sprintf(buffer,"<oaInterPointerAppDef_oaAssignment::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaAssignment_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaAssignment v1;
    PyParamoaInterPointerAppDef_oaAssignment v2;
    int convert_status1=PyoaInterPointerAppDef_oaAssignment_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaAssignment_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaAssignment_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaAssignment* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaAssignment_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaAssignment**) ((PyoaInterPointerAppDef_oaAssignmentObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaAssignment Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaAssignment_FromoaInterPointerAppDef_oaAssignment(oaInterPointerAppDef_oaAssignment** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaAssignment* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaAssignment_Type.tp_alloc(&PyoaInterPointerAppDef_oaAssignment_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaAssignmentObject* self = (PyoaInterPointerAppDef_oaAssignmentObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaAssignment_FromoaInterPointerAppDef_oaAssignment(oaInterPointerAppDef_oaAssignment* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaAssignment_Type.tp_alloc(&PyoaInterPointerAppDef_oaAssignment_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaAssignmentObject* self = (PyoaInterPointerAppDef_oaAssignmentObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAssignment_get_doc[] = 
"Class: oaInterPointerAppDef_oaAssignment, Function: get\n"
"  Paramegers: (oaAssignment)\n"
"    Calls: oaObject* get(const oaAssignment* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaAssignment,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaAssignment_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaAssignment data;
    int convert_status=PyoaInterPointerAppDef_oaAssignment_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaAssignmentObject* self=(PyoaInterPointerAppDef_oaAssignmentObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaAssignment p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaAssignment_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAssignment_set_doc[] = 
"Class: oaInterPointerAppDef_oaAssignment, Function: set\n"
"  Paramegers: (oaAssignment,oaObject)\n"
"    Calls: void set(oaAssignment* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaAssignment,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaAssignment_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaAssignment data;
    int convert_status=PyoaInterPointerAppDef_oaAssignment_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaAssignmentObject* self=(PyoaInterPointerAppDef_oaAssignmentObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaAssignment p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaAssignment_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAssignment_isNull_doc[] =
"Class: oaInterPointerAppDef_oaAssignment, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaAssignment_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaAssignment data;
    int convert_status=PyoaInterPointerAppDef_oaAssignment_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaAssignment_assign_doc[] = 
"Class: oaInterPointerAppDef_oaAssignment, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaAssignment_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaAssignment data;
  int convert_status=PyoaInterPointerAppDef_oaAssignment_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaAssignment p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaAssignment_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaAssignment_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaAssignment_get,METH_VARARGS,oaInterPointerAppDef_oaAssignment_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaAssignment_set,METH_VARARGS,oaInterPointerAppDef_oaAssignment_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaAssignment_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaAssignment_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaAssignment_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaAssignment_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAssignment_doc[] = 
"Class: oaInterPointerAppDef_oaAssignment\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaAssignment)\n"
"    Calls: (const oaInterPointerAppDef_oaAssignment&)\n"
"    Signature: oaInterPointerAppDef_oaAssignment||cref-oaInterPointerAppDef_oaAssignment,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaAssignment_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaAssignment",
    sizeof(PyoaInterPointerAppDef_oaAssignmentObject),
    0,
    (destructor)oaInterPointerAppDef_oaAssignment_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaAssignment_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaAssignment_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaAssignment_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaAssignment_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaAssignment_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAssignment_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaAssignment, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaAssignment* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaAssignment|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaAssignment* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaAssignment|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaAssignment_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaAssignmentp result= (oaInterPointerAppDef_oaAssignment::find(p1.Data()));
            return PyoaInterPointerAppDef_oaAssignment_FromoaInterPointerAppDef_oaAssignment(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAssignmentp result= (oaInterPointerAppDef_oaAssignment::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaAssignment_FromoaInterPointerAppDef_oaAssignment(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaAssignment, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaAssignment_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaAssignment, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaAssignment* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAssignment|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaAssignment* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAssignment|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaAssignment* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAssignment|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaAssignment* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaAssignment|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaAssignment_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaAssignmentp result= (oaInterPointerAppDef_oaAssignment::get(p1.Data()));
            return PyoaInterPointerAppDef_oaAssignment_FromoaInterPointerAppDef_oaAssignment(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaAssignmentp result= (oaInterPointerAppDef_oaAssignment::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaAssignment_FromoaInterPointerAppDef_oaAssignment(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAssignmentp result= (oaInterPointerAppDef_oaAssignment::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaAssignment_FromoaInterPointerAppDef_oaAssignment(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaAssignmentp result= (oaInterPointerAppDef_oaAssignment::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaAssignment_FromoaInterPointerAppDef_oaAssignment(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaAssignment, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaAssignment_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaAssignment_static_find,METH_VARARGS,oaInterPointerAppDef_oaAssignment_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaAssignment_static_get,METH_VARARGS,oaInterPointerAppDef_oaAssignment_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaAssignment_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaAssignment_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaAssignment\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaAssignment",
           (PyObject*)(&PyoaInterPointerAppDef_oaAssignment_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaAssignment\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaAssignment_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaAssignment_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaBlock
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaBlock_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaBlock_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaBlockObject* self = (PyoaInterPointerAppDef_oaBlockObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaBlock)
    {
        PyParamoaInterPointerAppDef_oaBlock p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaBlock_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaBlock, Choices are:\n"
        "    (oaInterPointerAppDef_oaBlock)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaBlock_tp_dealloc(PyoaInterPointerAppDef_oaBlockObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaBlock_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaBlock value;
    int convert_status=PyoaInterPointerAppDef_oaBlock_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[50];
    sprintf(buffer,"<oaInterPointerAppDef_oaBlock::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaBlock_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaBlock v1;
    PyParamoaInterPointerAppDef_oaBlock v2;
    int convert_status1=PyoaInterPointerAppDef_oaBlock_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaBlock_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaBlock_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaBlock* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaBlock_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaBlock**) ((PyoaInterPointerAppDef_oaBlockObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaBlock Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaBlock_FromoaInterPointerAppDef_oaBlock(oaInterPointerAppDef_oaBlock** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaBlock* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaBlock_Type.tp_alloc(&PyoaInterPointerAppDef_oaBlock_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaBlockObject* self = (PyoaInterPointerAppDef_oaBlockObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaBlock_FromoaInterPointerAppDef_oaBlock(oaInterPointerAppDef_oaBlock* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaBlock_Type.tp_alloc(&PyoaInterPointerAppDef_oaBlock_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaBlockObject* self = (PyoaInterPointerAppDef_oaBlockObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlock_get_doc[] = 
"Class: oaInterPointerAppDef_oaBlock, Function: get\n"
"  Paramegers: (oaBlock)\n"
"    Calls: oaObject* get(const oaBlock* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaBlock,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaBlock_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaBlock data;
    int convert_status=PyoaInterPointerAppDef_oaBlock_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaBlockObject* self=(PyoaInterPointerAppDef_oaBlockObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaBlock p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaBlock_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlock_set_doc[] = 
"Class: oaInterPointerAppDef_oaBlock, Function: set\n"
"  Paramegers: (oaBlock,oaObject)\n"
"    Calls: void set(oaBlock* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaBlock,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaBlock_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaBlock data;
    int convert_status=PyoaInterPointerAppDef_oaBlock_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaBlockObject* self=(PyoaInterPointerAppDef_oaBlockObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaBlock p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaBlock_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlock_isNull_doc[] =
"Class: oaInterPointerAppDef_oaBlock, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaBlock_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaBlock data;
    int convert_status=PyoaInterPointerAppDef_oaBlock_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaBlock_assign_doc[] = 
"Class: oaInterPointerAppDef_oaBlock, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaBlock_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaBlock data;
  int convert_status=PyoaInterPointerAppDef_oaBlock_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaBlock p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaBlock_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaBlock_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaBlock_get,METH_VARARGS,oaInterPointerAppDef_oaBlock_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaBlock_set,METH_VARARGS,oaInterPointerAppDef_oaBlock_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaBlock_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaBlock_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaBlock_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaBlock_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlock_doc[] = 
"Class: oaInterPointerAppDef_oaBlock\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaBlock)\n"
"    Calls: (const oaInterPointerAppDef_oaBlock&)\n"
"    Signature: oaInterPointerAppDef_oaBlock||cref-oaInterPointerAppDef_oaBlock,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaBlock_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaBlock",
    sizeof(PyoaInterPointerAppDef_oaBlockObject),
    0,
    (destructor)oaInterPointerAppDef_oaBlock_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaBlock_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaBlock_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaBlock_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaBlock_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaBlock_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlock_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaBlock, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaBlock* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaBlock|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaBlock* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaBlock|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaBlock_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaBlockp result= (oaInterPointerAppDef_oaBlock::find(p1.Data()));
            return PyoaInterPointerAppDef_oaBlock_FromoaInterPointerAppDef_oaBlock(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBlockp result= (oaInterPointerAppDef_oaBlock::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBlock_FromoaInterPointerAppDef_oaBlock(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaBlock, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlock_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaBlock, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaBlock* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBlock|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaBlock* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBlock|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaBlock* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBlock|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaBlock* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBlock|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaBlock_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaBlockp result= (oaInterPointerAppDef_oaBlock::get(p1.Data()));
            return PyoaInterPointerAppDef_oaBlock_FromoaInterPointerAppDef_oaBlock(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaBlockp result= (oaInterPointerAppDef_oaBlock::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBlock_FromoaInterPointerAppDef_oaBlock(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBlockp result= (oaInterPointerAppDef_oaBlock::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBlock_FromoaInterPointerAppDef_oaBlock(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBlockp result= (oaInterPointerAppDef_oaBlock::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaBlock_FromoaInterPointerAppDef_oaBlock(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaBlock, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaBlock_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaBlock_static_find,METH_VARARGS,oaInterPointerAppDef_oaBlock_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaBlock_static_get,METH_VARARGS,oaInterPointerAppDef_oaBlock_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaBlock_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaBlock_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaBlock\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaBlock",
           (PyObject*)(&PyoaInterPointerAppDef_oaBlock_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaBlock\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaBlock_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaBlock_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaBlockage
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaBlockage_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaBlockage_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaBlockageObject* self = (PyoaInterPointerAppDef_oaBlockageObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaBlockage)
    {
        PyParamoaInterPointerAppDef_oaBlockage p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaBlockage_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaBlockage, Choices are:\n"
        "    (oaInterPointerAppDef_oaBlockage)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaBlockage_tp_dealloc(PyoaInterPointerAppDef_oaBlockageObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaBlockage_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaBlockage value;
    int convert_status=PyoaInterPointerAppDef_oaBlockage_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[53];
    sprintf(buffer,"<oaInterPointerAppDef_oaBlockage::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaBlockage_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaBlockage v1;
    PyParamoaInterPointerAppDef_oaBlockage v2;
    int convert_status1=PyoaInterPointerAppDef_oaBlockage_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaBlockage_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaBlockage_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaBlockage* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaBlockage_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaBlockage**) ((PyoaInterPointerAppDef_oaBlockageObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaBlockage Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaBlockage_FromoaInterPointerAppDef_oaBlockage(oaInterPointerAppDef_oaBlockage** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaBlockage* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaBlockage_Type.tp_alloc(&PyoaInterPointerAppDef_oaBlockage_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaBlockageObject* self = (PyoaInterPointerAppDef_oaBlockageObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaBlockage_FromoaInterPointerAppDef_oaBlockage(oaInterPointerAppDef_oaBlockage* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaBlockage_Type.tp_alloc(&PyoaInterPointerAppDef_oaBlockage_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaBlockageObject* self = (PyoaInterPointerAppDef_oaBlockageObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlockage_get_doc[] = 
"Class: oaInterPointerAppDef_oaBlockage, Function: get\n"
"  Paramegers: (oaBlockage)\n"
"    Calls: oaObject* get(const oaBlockage* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaBlockage,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaBlockage_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaBlockage data;
    int convert_status=PyoaInterPointerAppDef_oaBlockage_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaBlockageObject* self=(PyoaInterPointerAppDef_oaBlockageObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaBlockage p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaBlockage_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlockage_set_doc[] = 
"Class: oaInterPointerAppDef_oaBlockage, Function: set\n"
"  Paramegers: (oaBlockage,oaObject)\n"
"    Calls: void set(oaBlockage* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaBlockage,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaBlockage_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaBlockage data;
    int convert_status=PyoaInterPointerAppDef_oaBlockage_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaBlockageObject* self=(PyoaInterPointerAppDef_oaBlockageObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaBlockage p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaBlockage_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlockage_isNull_doc[] =
"Class: oaInterPointerAppDef_oaBlockage, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaBlockage_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaBlockage data;
    int convert_status=PyoaInterPointerAppDef_oaBlockage_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaBlockage_assign_doc[] = 
"Class: oaInterPointerAppDef_oaBlockage, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaBlockage_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaBlockage data;
  int convert_status=PyoaInterPointerAppDef_oaBlockage_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaBlockage p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaBlockage_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaBlockage_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaBlockage_get,METH_VARARGS,oaInterPointerAppDef_oaBlockage_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaBlockage_set,METH_VARARGS,oaInterPointerAppDef_oaBlockage_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaBlockage_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaBlockage_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaBlockage_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaBlockage_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlockage_doc[] = 
"Class: oaInterPointerAppDef_oaBlockage\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaBlockage)\n"
"    Calls: (const oaInterPointerAppDef_oaBlockage&)\n"
"    Signature: oaInterPointerAppDef_oaBlockage||cref-oaInterPointerAppDef_oaBlockage,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaBlockage_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaBlockage",
    sizeof(PyoaInterPointerAppDef_oaBlockageObject),
    0,
    (destructor)oaInterPointerAppDef_oaBlockage_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaBlockage_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaBlockage_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaBlockage_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaBlockage_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaBlockage_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlockage_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaBlockage, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaBlockage* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaBlockage|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaBlockage* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaBlockage|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaBlockage_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaBlockagep result= (oaInterPointerAppDef_oaBlockage::find(p1.Data()));
            return PyoaInterPointerAppDef_oaBlockage_FromoaInterPointerAppDef_oaBlockage(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBlockagep result= (oaInterPointerAppDef_oaBlockage::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBlockage_FromoaInterPointerAppDef_oaBlockage(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaBlockage, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBlockage_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaBlockage, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaBlockage* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBlockage|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaBlockage* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBlockage|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaBlockage* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBlockage|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaBlockage* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBlockage|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaBlockage_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaBlockagep result= (oaInterPointerAppDef_oaBlockage::get(p1.Data()));
            return PyoaInterPointerAppDef_oaBlockage_FromoaInterPointerAppDef_oaBlockage(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaBlockagep result= (oaInterPointerAppDef_oaBlockage::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBlockage_FromoaInterPointerAppDef_oaBlockage(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBlockagep result= (oaInterPointerAppDef_oaBlockage::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBlockage_FromoaInterPointerAppDef_oaBlockage(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBlockagep result= (oaInterPointerAppDef_oaBlockage::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaBlockage_FromoaInterPointerAppDef_oaBlockage(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaBlockage, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaBlockage_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaBlockage_static_find,METH_VARARGS,oaInterPointerAppDef_oaBlockage_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaBlockage_static_get,METH_VARARGS,oaInterPointerAppDef_oaBlockage_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaBlockage_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaBlockage_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaBlockage\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaBlockage",
           (PyObject*)(&PyoaInterPointerAppDef_oaBlockage_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaBlockage\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaBlockage_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaBlockage_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaBoundary
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaBoundary_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaBoundary_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaBoundaryObject* self = (PyoaInterPointerAppDef_oaBoundaryObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaBoundary)
    {
        PyParamoaInterPointerAppDef_oaBoundary p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaBoundary_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaBoundary, Choices are:\n"
        "    (oaInterPointerAppDef_oaBoundary)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaBoundary_tp_dealloc(PyoaInterPointerAppDef_oaBoundaryObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaBoundary_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaBoundary value;
    int convert_status=PyoaInterPointerAppDef_oaBoundary_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[53];
    sprintf(buffer,"<oaInterPointerAppDef_oaBoundary::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaBoundary_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaBoundary v1;
    PyParamoaInterPointerAppDef_oaBoundary v2;
    int convert_status1=PyoaInterPointerAppDef_oaBoundary_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaBoundary_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaBoundary_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaBoundary* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaBoundary_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaBoundary**) ((PyoaInterPointerAppDef_oaBoundaryObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaBoundary Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaBoundary_FromoaInterPointerAppDef_oaBoundary(oaInterPointerAppDef_oaBoundary** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaBoundary* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaBoundary_Type.tp_alloc(&PyoaInterPointerAppDef_oaBoundary_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaBoundaryObject* self = (PyoaInterPointerAppDef_oaBoundaryObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaBoundary_FromoaInterPointerAppDef_oaBoundary(oaInterPointerAppDef_oaBoundary* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaBoundary_Type.tp_alloc(&PyoaInterPointerAppDef_oaBoundary_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaBoundaryObject* self = (PyoaInterPointerAppDef_oaBoundaryObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBoundary_get_doc[] = 
"Class: oaInterPointerAppDef_oaBoundary, Function: get\n"
"  Paramegers: (oaBoundary)\n"
"    Calls: oaObject* get(const oaBoundary* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaBoundary,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaBoundary_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaBoundary data;
    int convert_status=PyoaInterPointerAppDef_oaBoundary_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaBoundaryObject* self=(PyoaInterPointerAppDef_oaBoundaryObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaBoundary p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaBoundary_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBoundary_set_doc[] = 
"Class: oaInterPointerAppDef_oaBoundary, Function: set\n"
"  Paramegers: (oaBoundary,oaObject)\n"
"    Calls: void set(oaBoundary* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaBoundary,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaBoundary_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaBoundary data;
    int convert_status=PyoaInterPointerAppDef_oaBoundary_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaBoundaryObject* self=(PyoaInterPointerAppDef_oaBoundaryObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaBoundary p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaBoundary_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBoundary_isNull_doc[] =
"Class: oaInterPointerAppDef_oaBoundary, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaBoundary_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaBoundary data;
    int convert_status=PyoaInterPointerAppDef_oaBoundary_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaBoundary_assign_doc[] = 
"Class: oaInterPointerAppDef_oaBoundary, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaBoundary_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaBoundary data;
  int convert_status=PyoaInterPointerAppDef_oaBoundary_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaBoundary p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaBoundary_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaBoundary_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaBoundary_get,METH_VARARGS,oaInterPointerAppDef_oaBoundary_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaBoundary_set,METH_VARARGS,oaInterPointerAppDef_oaBoundary_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaBoundary_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaBoundary_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaBoundary_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaBoundary_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBoundary_doc[] = 
"Class: oaInterPointerAppDef_oaBoundary\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaBoundary)\n"
"    Calls: (const oaInterPointerAppDef_oaBoundary&)\n"
"    Signature: oaInterPointerAppDef_oaBoundary||cref-oaInterPointerAppDef_oaBoundary,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaBoundary_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaBoundary",
    sizeof(PyoaInterPointerAppDef_oaBoundaryObject),
    0,
    (destructor)oaInterPointerAppDef_oaBoundary_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaBoundary_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaBoundary_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaBoundary_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaBoundary_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaBoundary_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBoundary_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaBoundary, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaBoundary* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaBoundary|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaBoundary* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaBoundary|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaBoundary_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaBoundaryp result= (oaInterPointerAppDef_oaBoundary::find(p1.Data()));
            return PyoaInterPointerAppDef_oaBoundary_FromoaInterPointerAppDef_oaBoundary(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBoundaryp result= (oaInterPointerAppDef_oaBoundary::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBoundary_FromoaInterPointerAppDef_oaBoundary(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaBoundary, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBoundary_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaBoundary, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaBoundary* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBoundary|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaBoundary* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBoundary|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaBoundary* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBoundary|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaBoundary* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBoundary|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaBoundary_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaBoundaryp result= (oaInterPointerAppDef_oaBoundary::get(p1.Data()));
            return PyoaInterPointerAppDef_oaBoundary_FromoaInterPointerAppDef_oaBoundary(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaBoundaryp result= (oaInterPointerAppDef_oaBoundary::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBoundary_FromoaInterPointerAppDef_oaBoundary(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBoundaryp result= (oaInterPointerAppDef_oaBoundary::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBoundary_FromoaInterPointerAppDef_oaBoundary(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBoundaryp result= (oaInterPointerAppDef_oaBoundary::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaBoundary_FromoaInterPointerAppDef_oaBoundary(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaBoundary, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaBoundary_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaBoundary_static_find,METH_VARARGS,oaInterPointerAppDef_oaBoundary_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaBoundary_static_get,METH_VARARGS,oaInterPointerAppDef_oaBoundary_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaBoundary_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaBoundary_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaBoundary\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaBoundary",
           (PyObject*)(&PyoaInterPointerAppDef_oaBoundary_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaBoundary\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaBoundary_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaBoundary_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaBusNetDef
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaBusNetDef_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaBusNetDef_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaBusNetDefObject* self = (PyoaInterPointerAppDef_oaBusNetDefObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaBusNetDef)
    {
        PyParamoaInterPointerAppDef_oaBusNetDef p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaBusNetDef_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaBusNetDef, Choices are:\n"
        "    (oaInterPointerAppDef_oaBusNetDef)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaBusNetDef_tp_dealloc(PyoaInterPointerAppDef_oaBusNetDefObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaBusNetDef_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaBusNetDef value;
    int convert_status=PyoaInterPointerAppDef_oaBusNetDef_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[54];
    sprintf(buffer,"<oaInterPointerAppDef_oaBusNetDef::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaBusNetDef_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaBusNetDef v1;
    PyParamoaInterPointerAppDef_oaBusNetDef v2;
    int convert_status1=PyoaInterPointerAppDef_oaBusNetDef_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaBusNetDef_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaBusNetDef_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaBusNetDef* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaBusNetDef_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaBusNetDef**) ((PyoaInterPointerAppDef_oaBusNetDefObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaBusNetDef Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaBusNetDef_FromoaInterPointerAppDef_oaBusNetDef(oaInterPointerAppDef_oaBusNetDef** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaBusNetDef* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaBusNetDef_Type.tp_alloc(&PyoaInterPointerAppDef_oaBusNetDef_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaBusNetDefObject* self = (PyoaInterPointerAppDef_oaBusNetDefObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaBusNetDef_FromoaInterPointerAppDef_oaBusNetDef(oaInterPointerAppDef_oaBusNetDef* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaBusNetDef_Type.tp_alloc(&PyoaInterPointerAppDef_oaBusNetDef_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaBusNetDefObject* self = (PyoaInterPointerAppDef_oaBusNetDefObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusNetDef_get_doc[] = 
"Class: oaInterPointerAppDef_oaBusNetDef, Function: get\n"
"  Paramegers: (oaBusNetDef)\n"
"    Calls: oaObject* get(const oaBusNetDef* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaBusNetDef,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaBusNetDef_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaBusNetDef data;
    int convert_status=PyoaInterPointerAppDef_oaBusNetDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaBusNetDefObject* self=(PyoaInterPointerAppDef_oaBusNetDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaBusNetDef p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaBusNetDef_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusNetDef_set_doc[] = 
"Class: oaInterPointerAppDef_oaBusNetDef, Function: set\n"
"  Paramegers: (oaBusNetDef,oaObject)\n"
"    Calls: void set(oaBusNetDef* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaBusNetDef,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaBusNetDef_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaBusNetDef data;
    int convert_status=PyoaInterPointerAppDef_oaBusNetDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaBusNetDefObject* self=(PyoaInterPointerAppDef_oaBusNetDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaBusNetDef p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaBusNetDef_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusNetDef_isNull_doc[] =
"Class: oaInterPointerAppDef_oaBusNetDef, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaBusNetDef_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaBusNetDef data;
    int convert_status=PyoaInterPointerAppDef_oaBusNetDef_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaBusNetDef_assign_doc[] = 
"Class: oaInterPointerAppDef_oaBusNetDef, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaBusNetDef_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaBusNetDef data;
  int convert_status=PyoaInterPointerAppDef_oaBusNetDef_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaBusNetDef p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaBusNetDef_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaBusNetDef_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaBusNetDef_get,METH_VARARGS,oaInterPointerAppDef_oaBusNetDef_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaBusNetDef_set,METH_VARARGS,oaInterPointerAppDef_oaBusNetDef_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaBusNetDef_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaBusNetDef_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaBusNetDef_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaBusNetDef_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusNetDef_doc[] = 
"Class: oaInterPointerAppDef_oaBusNetDef\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaBusNetDef)\n"
"    Calls: (const oaInterPointerAppDef_oaBusNetDef&)\n"
"    Signature: oaInterPointerAppDef_oaBusNetDef||cref-oaInterPointerAppDef_oaBusNetDef,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaBusNetDef_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaBusNetDef",
    sizeof(PyoaInterPointerAppDef_oaBusNetDefObject),
    0,
    (destructor)oaInterPointerAppDef_oaBusNetDef_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaBusNetDef_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaBusNetDef_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaBusNetDef_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaBusNetDef_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaBusNetDef_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusNetDef_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaBusNetDef, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaBusNetDef* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaBusNetDef|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaBusNetDef* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaBusNetDef|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaBusNetDef_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaBusNetDefp result= (oaInterPointerAppDef_oaBusNetDef::find(p1.Data()));
            return PyoaInterPointerAppDef_oaBusNetDef_FromoaInterPointerAppDef_oaBusNetDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBusNetDefp result= (oaInterPointerAppDef_oaBusNetDef::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBusNetDef_FromoaInterPointerAppDef_oaBusNetDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaBusNetDef, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusNetDef_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaBusNetDef, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaBusNetDef* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBusNetDef|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaBusNetDef* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBusNetDef|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaBusNetDef* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBusNetDef|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaBusNetDef* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBusNetDef|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaBusNetDef_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaBusNetDefp result= (oaInterPointerAppDef_oaBusNetDef::get(p1.Data()));
            return PyoaInterPointerAppDef_oaBusNetDef_FromoaInterPointerAppDef_oaBusNetDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaBusNetDefp result= (oaInterPointerAppDef_oaBusNetDef::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBusNetDef_FromoaInterPointerAppDef_oaBusNetDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBusNetDefp result= (oaInterPointerAppDef_oaBusNetDef::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBusNetDef_FromoaInterPointerAppDef_oaBusNetDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBusNetDefp result= (oaInterPointerAppDef_oaBusNetDef::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaBusNetDef_FromoaInterPointerAppDef_oaBusNetDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaBusNetDef, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaBusNetDef_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaBusNetDef_static_find,METH_VARARGS,oaInterPointerAppDef_oaBusNetDef_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaBusNetDef_static_get,METH_VARARGS,oaInterPointerAppDef_oaBusNetDef_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaBusNetDef_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaBusNetDef_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaBusNetDef\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaBusNetDef",
           (PyObject*)(&PyoaInterPointerAppDef_oaBusNetDef_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaBusNetDef\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaBusNetDef_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaBusNetDef_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaBusTermDef
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaBusTermDef_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaBusTermDef_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaBusTermDefObject* self = (PyoaInterPointerAppDef_oaBusTermDefObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaBusTermDef)
    {
        PyParamoaInterPointerAppDef_oaBusTermDef p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaBusTermDef_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaBusTermDef, Choices are:\n"
        "    (oaInterPointerAppDef_oaBusTermDef)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaBusTermDef_tp_dealloc(PyoaInterPointerAppDef_oaBusTermDefObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaBusTermDef_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaBusTermDef value;
    int convert_status=PyoaInterPointerAppDef_oaBusTermDef_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[55];
    sprintf(buffer,"<oaInterPointerAppDef_oaBusTermDef::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaBusTermDef_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaBusTermDef v1;
    PyParamoaInterPointerAppDef_oaBusTermDef v2;
    int convert_status1=PyoaInterPointerAppDef_oaBusTermDef_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaBusTermDef_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaBusTermDef_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaBusTermDef* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaBusTermDef_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaBusTermDef**) ((PyoaInterPointerAppDef_oaBusTermDefObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaBusTermDef Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaBusTermDef_FromoaInterPointerAppDef_oaBusTermDef(oaInterPointerAppDef_oaBusTermDef** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaBusTermDef* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaBusTermDef_Type.tp_alloc(&PyoaInterPointerAppDef_oaBusTermDef_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaBusTermDefObject* self = (PyoaInterPointerAppDef_oaBusTermDefObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaBusTermDef_FromoaInterPointerAppDef_oaBusTermDef(oaInterPointerAppDef_oaBusTermDef* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaBusTermDef_Type.tp_alloc(&PyoaInterPointerAppDef_oaBusTermDef_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaBusTermDefObject* self = (PyoaInterPointerAppDef_oaBusTermDefObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusTermDef_get_doc[] = 
"Class: oaInterPointerAppDef_oaBusTermDef, Function: get\n"
"  Paramegers: (oaBusTermDef)\n"
"    Calls: oaObject* get(const oaBusTermDef* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaBusTermDef,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaBusTermDef_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaBusTermDef data;
    int convert_status=PyoaInterPointerAppDef_oaBusTermDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaBusTermDefObject* self=(PyoaInterPointerAppDef_oaBusTermDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaBusTermDef p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaBusTermDef_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusTermDef_set_doc[] = 
"Class: oaInterPointerAppDef_oaBusTermDef, Function: set\n"
"  Paramegers: (oaBusTermDef,oaObject)\n"
"    Calls: void set(oaBusTermDef* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaBusTermDef,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaBusTermDef_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaBusTermDef data;
    int convert_status=PyoaInterPointerAppDef_oaBusTermDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaBusTermDefObject* self=(PyoaInterPointerAppDef_oaBusTermDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaBusTermDef p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaBusTermDef_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusTermDef_isNull_doc[] =
"Class: oaInterPointerAppDef_oaBusTermDef, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaBusTermDef_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaBusTermDef data;
    int convert_status=PyoaInterPointerAppDef_oaBusTermDef_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaBusTermDef_assign_doc[] = 
"Class: oaInterPointerAppDef_oaBusTermDef, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaBusTermDef_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaBusTermDef data;
  int convert_status=PyoaInterPointerAppDef_oaBusTermDef_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaBusTermDef p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaBusTermDef_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaBusTermDef_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaBusTermDef_get,METH_VARARGS,oaInterPointerAppDef_oaBusTermDef_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaBusTermDef_set,METH_VARARGS,oaInterPointerAppDef_oaBusTermDef_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaBusTermDef_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaBusTermDef_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaBusTermDef_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaBusTermDef_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusTermDef_doc[] = 
"Class: oaInterPointerAppDef_oaBusTermDef\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaBusTermDef)\n"
"    Calls: (const oaInterPointerAppDef_oaBusTermDef&)\n"
"    Signature: oaInterPointerAppDef_oaBusTermDef||cref-oaInterPointerAppDef_oaBusTermDef,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaBusTermDef_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaBusTermDef",
    sizeof(PyoaInterPointerAppDef_oaBusTermDefObject),
    0,
    (destructor)oaInterPointerAppDef_oaBusTermDef_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaBusTermDef_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaBusTermDef_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaBusTermDef_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaBusTermDef_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaBusTermDef_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusTermDef_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaBusTermDef, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaBusTermDef* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaBusTermDef|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaBusTermDef* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaBusTermDef|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaBusTermDef_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaBusTermDefp result= (oaInterPointerAppDef_oaBusTermDef::find(p1.Data()));
            return PyoaInterPointerAppDef_oaBusTermDef_FromoaInterPointerAppDef_oaBusTermDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBusTermDefp result= (oaInterPointerAppDef_oaBusTermDef::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBusTermDef_FromoaInterPointerAppDef_oaBusTermDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaBusTermDef, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaBusTermDef_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaBusTermDef, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaBusTermDef* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBusTermDef|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaBusTermDef* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBusTermDef|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaBusTermDef* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBusTermDef|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaBusTermDef* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaBusTermDef|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaBusTermDef_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaBusTermDefp result= (oaInterPointerAppDef_oaBusTermDef::get(p1.Data()));
            return PyoaInterPointerAppDef_oaBusTermDef_FromoaInterPointerAppDef_oaBusTermDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaBusTermDefp result= (oaInterPointerAppDef_oaBusTermDef::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBusTermDef_FromoaInterPointerAppDef_oaBusTermDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBusTermDefp result= (oaInterPointerAppDef_oaBusTermDef::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaBusTermDef_FromoaInterPointerAppDef_oaBusTermDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaBusTermDefp result= (oaInterPointerAppDef_oaBusTermDef::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaBusTermDef_FromoaInterPointerAppDef_oaBusTermDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaBusTermDef, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaBusTermDef_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaBusTermDef_static_find,METH_VARARGS,oaInterPointerAppDef_oaBusTermDef_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaBusTermDef_static_get,METH_VARARGS,oaInterPointerAppDef_oaBusTermDef_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaBusTermDef_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaBusTermDef_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaBusTermDef\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaBusTermDef",
           (PyObject*)(&PyoaInterPointerAppDef_oaBusTermDef_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaBusTermDef\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaBusTermDef_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaBusTermDef_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaCMap
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaCMap_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaCMap_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaCMapObject* self = (PyoaInterPointerAppDef_oaCMapObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaCMap)
    {
        PyParamoaInterPointerAppDef_oaCMap p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaCMap_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaCMap, Choices are:\n"
        "    (oaInterPointerAppDef_oaCMap)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaCMap_tp_dealloc(PyoaInterPointerAppDef_oaCMapObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaCMap_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaCMap value;
    int convert_status=PyoaInterPointerAppDef_oaCMap_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[49];
    sprintf(buffer,"<oaInterPointerAppDef_oaCMap::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaCMap_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaCMap v1;
    PyParamoaInterPointerAppDef_oaCMap v2;
    int convert_status1=PyoaInterPointerAppDef_oaCMap_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaCMap_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaCMap_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaCMap* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaCMap_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaCMap**) ((PyoaInterPointerAppDef_oaCMapObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaCMap Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaCMap_FromoaInterPointerAppDef_oaCMap(oaInterPointerAppDef_oaCMap** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaCMap* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaCMap_Type.tp_alloc(&PyoaInterPointerAppDef_oaCMap_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaCMapObject* self = (PyoaInterPointerAppDef_oaCMapObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaCMap_FromoaInterPointerAppDef_oaCMap(oaInterPointerAppDef_oaCMap* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaCMap_Type.tp_alloc(&PyoaInterPointerAppDef_oaCMap_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaCMapObject* self = (PyoaInterPointerAppDef_oaCMapObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCMap_get_doc[] = 
"Class: oaInterPointerAppDef_oaCMap, Function: get\n"
"  Paramegers: (oaCMap)\n"
"    Calls: oaObject* get(const oaCMap* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaCMap,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaCMap_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaCMap data;
    int convert_status=PyoaInterPointerAppDef_oaCMap_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaCMapObject* self=(PyoaInterPointerAppDef_oaCMapObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaCMap p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaCMap_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCMap_set_doc[] = 
"Class: oaInterPointerAppDef_oaCMap, Function: set\n"
"  Paramegers: (oaCMap,oaObject)\n"
"    Calls: void set(oaCMap* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaCMap,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaCMap_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaCMap data;
    int convert_status=PyoaInterPointerAppDef_oaCMap_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaCMapObject* self=(PyoaInterPointerAppDef_oaCMapObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaCMap p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaCMap_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCMap_isNull_doc[] =
"Class: oaInterPointerAppDef_oaCMap, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaCMap_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaCMap data;
    int convert_status=PyoaInterPointerAppDef_oaCMap_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaCMap_assign_doc[] = 
"Class: oaInterPointerAppDef_oaCMap, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaCMap_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaCMap data;
  int convert_status=PyoaInterPointerAppDef_oaCMap_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaCMap p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaCMap_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaCMap_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaCMap_get,METH_VARARGS,oaInterPointerAppDef_oaCMap_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaCMap_set,METH_VARARGS,oaInterPointerAppDef_oaCMap_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaCMap_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaCMap_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaCMap_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaCMap_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCMap_doc[] = 
"Class: oaInterPointerAppDef_oaCMap\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaCMap)\n"
"    Calls: (const oaInterPointerAppDef_oaCMap&)\n"
"    Signature: oaInterPointerAppDef_oaCMap||cref-oaInterPointerAppDef_oaCMap,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaCMap_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaCMap",
    sizeof(PyoaInterPointerAppDef_oaCMapObject),
    0,
    (destructor)oaInterPointerAppDef_oaCMap_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaCMap_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaCMap_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaCMap_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaCMap_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaCMap_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCMap_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaCMap, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaCMap* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaCMap|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaCMap* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaCMap|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaCMap_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaCMapp result= (oaInterPointerAppDef_oaCMap::find(p1.Data()));
            return PyoaInterPointerAppDef_oaCMap_FromoaInterPointerAppDef_oaCMap(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaCMapp result= (oaInterPointerAppDef_oaCMap::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCMap_FromoaInterPointerAppDef_oaCMap(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaCMap, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCMap_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaCMap, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaCMap* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCMap|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaCMap* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCMap|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaCMap* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCMap|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaCMap* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCMap|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaCMap_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaCMapp result= (oaInterPointerAppDef_oaCMap::get(p1.Data()));
            return PyoaInterPointerAppDef_oaCMap_FromoaInterPointerAppDef_oaCMap(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaCMapp result= (oaInterPointerAppDef_oaCMap::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCMap_FromoaInterPointerAppDef_oaCMap(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaCMapp result= (oaInterPointerAppDef_oaCMap::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCMap_FromoaInterPointerAppDef_oaCMap(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaCMapp result= (oaInterPointerAppDef_oaCMap::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaCMap_FromoaInterPointerAppDef_oaCMap(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaCMap, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaCMap_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaCMap_static_find,METH_VARARGS,oaInterPointerAppDef_oaCMap_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaCMap_static_get,METH_VARARGS,oaInterPointerAppDef_oaCMap_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaCMap_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaCMap_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaCMap\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaCMap",
           (PyObject*)(&PyoaInterPointerAppDef_oaCMap_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaCMap\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaCMap_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaCMap_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaCell
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaCell_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaCell_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaCellObject* self = (PyoaInterPointerAppDef_oaCellObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaCell)
    {
        PyParamoaInterPointerAppDef_oaCell p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaCell_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaCell, Choices are:\n"
        "    (oaInterPointerAppDef_oaCell)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaCell_tp_dealloc(PyoaInterPointerAppDef_oaCellObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaCell_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaCell value;
    int convert_status=PyoaInterPointerAppDef_oaCell_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[49];
    sprintf(buffer,"<oaInterPointerAppDef_oaCell::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaCell_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaCell v1;
    PyParamoaInterPointerAppDef_oaCell v2;
    int convert_status1=PyoaInterPointerAppDef_oaCell_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaCell_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaCell_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaCell* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaCell_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaCell**) ((PyoaInterPointerAppDef_oaCellObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaCell Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaCell_FromoaInterPointerAppDef_oaCell(oaInterPointerAppDef_oaCell** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaCell* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaCell_Type.tp_alloc(&PyoaInterPointerAppDef_oaCell_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaCellObject* self = (PyoaInterPointerAppDef_oaCellObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaCell_FromoaInterPointerAppDef_oaCell(oaInterPointerAppDef_oaCell* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaCell_Type.tp_alloc(&PyoaInterPointerAppDef_oaCell_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaCellObject* self = (PyoaInterPointerAppDef_oaCellObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCell_get_doc[] = 
"Class: oaInterPointerAppDef_oaCell, Function: get\n"
"  Paramegers: (oaCell)\n"
"    Calls: oaObject* get(const oaCell* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaCell,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaCell_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaCell data;
    int convert_status=PyoaInterPointerAppDef_oaCell_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaCellObject* self=(PyoaInterPointerAppDef_oaCellObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaCell p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaCell_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCell_set_doc[] = 
"Class: oaInterPointerAppDef_oaCell, Function: set\n"
"  Paramegers: (oaCell,oaObject)\n"
"    Calls: void set(oaCell* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaCell,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaCell_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaCell data;
    int convert_status=PyoaInterPointerAppDef_oaCell_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaCellObject* self=(PyoaInterPointerAppDef_oaCellObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaCell p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaCell_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCell_isNull_doc[] =
"Class: oaInterPointerAppDef_oaCell, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaCell_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaCell data;
    int convert_status=PyoaInterPointerAppDef_oaCell_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaCell_assign_doc[] = 
"Class: oaInterPointerAppDef_oaCell, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaCell_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaCell data;
  int convert_status=PyoaInterPointerAppDef_oaCell_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaCell p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaCell_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaCell_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaCell_get,METH_VARARGS,oaInterPointerAppDef_oaCell_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaCell_set,METH_VARARGS,oaInterPointerAppDef_oaCell_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaCell_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaCell_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaCell_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaCell_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCell_doc[] = 
"Class: oaInterPointerAppDef_oaCell\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaCell)\n"
"    Calls: (const oaInterPointerAppDef_oaCell&)\n"
"    Signature: oaInterPointerAppDef_oaCell||cref-oaInterPointerAppDef_oaCell,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaCell_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaCell",
    sizeof(PyoaInterPointerAppDef_oaCellObject),
    0,
    (destructor)oaInterPointerAppDef_oaCell_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaCell_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaCell_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaCell_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaCell_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaCell_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCell_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaCell, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaCell* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaCell|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaCell* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaCell|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaCell_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaCellp result= (oaInterPointerAppDef_oaCell::find(p1.Data()));
            return PyoaInterPointerAppDef_oaCell_FromoaInterPointerAppDef_oaCell(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaCellp result= (oaInterPointerAppDef_oaCell::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCell_FromoaInterPointerAppDef_oaCell(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaCell, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCell_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaCell, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaCell* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCell|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaCell* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCell|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaCell* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCell|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaCell* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCell|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaCell_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaCellp result= (oaInterPointerAppDef_oaCell::get(p1.Data()));
            return PyoaInterPointerAppDef_oaCell_FromoaInterPointerAppDef_oaCell(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaCellp result= (oaInterPointerAppDef_oaCell::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCell_FromoaInterPointerAppDef_oaCell(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaCellp result= (oaInterPointerAppDef_oaCell::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCell_FromoaInterPointerAppDef_oaCell(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaCellp result= (oaInterPointerAppDef_oaCell::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaCell_FromoaInterPointerAppDef_oaCell(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaCell, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaCell_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaCell_static_find,METH_VARARGS,oaInterPointerAppDef_oaCell_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaCell_static_get,METH_VARARGS,oaInterPointerAppDef_oaCell_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaCell_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaCell_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaCell\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaCell",
           (PyObject*)(&PyoaInterPointerAppDef_oaCell_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaCell\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaCell_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaCell_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaCellView
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaCellView_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaCellView_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaCellViewObject* self = (PyoaInterPointerAppDef_oaCellViewObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaCellView)
    {
        PyParamoaInterPointerAppDef_oaCellView p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaCellView_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaCellView, Choices are:\n"
        "    (oaInterPointerAppDef_oaCellView)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaCellView_tp_dealloc(PyoaInterPointerAppDef_oaCellViewObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaCellView_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaCellView value;
    int convert_status=PyoaInterPointerAppDef_oaCellView_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[53];
    sprintf(buffer,"<oaInterPointerAppDef_oaCellView::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaCellView_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaCellView v1;
    PyParamoaInterPointerAppDef_oaCellView v2;
    int convert_status1=PyoaInterPointerAppDef_oaCellView_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaCellView_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaCellView_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaCellView* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaCellView_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaCellView**) ((PyoaInterPointerAppDef_oaCellViewObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaCellView Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaCellView_FromoaInterPointerAppDef_oaCellView(oaInterPointerAppDef_oaCellView** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaCellView* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaCellView_Type.tp_alloc(&PyoaInterPointerAppDef_oaCellView_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaCellViewObject* self = (PyoaInterPointerAppDef_oaCellViewObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaCellView_FromoaInterPointerAppDef_oaCellView(oaInterPointerAppDef_oaCellView* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaCellView_Type.tp_alloc(&PyoaInterPointerAppDef_oaCellView_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaCellViewObject* self = (PyoaInterPointerAppDef_oaCellViewObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCellView_get_doc[] = 
"Class: oaInterPointerAppDef_oaCellView, Function: get\n"
"  Paramegers: (oaCellView)\n"
"    Calls: oaObject* get(const oaCellView* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaCellView,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaCellView_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaCellView data;
    int convert_status=PyoaInterPointerAppDef_oaCellView_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaCellViewObject* self=(PyoaInterPointerAppDef_oaCellViewObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaCellView p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaCellView_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCellView_set_doc[] = 
"Class: oaInterPointerAppDef_oaCellView, Function: set\n"
"  Paramegers: (oaCellView,oaObject)\n"
"    Calls: void set(oaCellView* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaCellView,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaCellView_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaCellView data;
    int convert_status=PyoaInterPointerAppDef_oaCellView_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaCellViewObject* self=(PyoaInterPointerAppDef_oaCellViewObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaCellView p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaCellView_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCellView_isNull_doc[] =
"Class: oaInterPointerAppDef_oaCellView, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaCellView_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaCellView data;
    int convert_status=PyoaInterPointerAppDef_oaCellView_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaCellView_assign_doc[] = 
"Class: oaInterPointerAppDef_oaCellView, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaCellView_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaCellView data;
  int convert_status=PyoaInterPointerAppDef_oaCellView_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaCellView p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaCellView_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaCellView_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaCellView_get,METH_VARARGS,oaInterPointerAppDef_oaCellView_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaCellView_set,METH_VARARGS,oaInterPointerAppDef_oaCellView_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaCellView_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaCellView_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaCellView_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaCellView_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCellView_doc[] = 
"Class: oaInterPointerAppDef_oaCellView\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaCellView)\n"
"    Calls: (const oaInterPointerAppDef_oaCellView&)\n"
"    Signature: oaInterPointerAppDef_oaCellView||cref-oaInterPointerAppDef_oaCellView,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaCellView_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaCellView",
    sizeof(PyoaInterPointerAppDef_oaCellViewObject),
    0,
    (destructor)oaInterPointerAppDef_oaCellView_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaCellView_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaCellView_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaCellView_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaCellView_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaCellView_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCellView_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaCellView, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaCellView* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaCellView|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaCellView* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaCellView|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaCellView_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaCellViewp result= (oaInterPointerAppDef_oaCellView::find(p1.Data()));
            return PyoaInterPointerAppDef_oaCellView_FromoaInterPointerAppDef_oaCellView(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaCellViewp result= (oaInterPointerAppDef_oaCellView::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCellView_FromoaInterPointerAppDef_oaCellView(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaCellView, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCellView_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaCellView, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaCellView* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCellView|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaCellView* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCellView|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaCellView* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCellView|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaCellView* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCellView|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaCellView_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaCellViewp result= (oaInterPointerAppDef_oaCellView::get(p1.Data()));
            return PyoaInterPointerAppDef_oaCellView_FromoaInterPointerAppDef_oaCellView(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaCellViewp result= (oaInterPointerAppDef_oaCellView::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCellView_FromoaInterPointerAppDef_oaCellView(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaCellViewp result= (oaInterPointerAppDef_oaCellView::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCellView_FromoaInterPointerAppDef_oaCellView(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaCellViewp result= (oaInterPointerAppDef_oaCellView::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaCellView_FromoaInterPointerAppDef_oaCellView(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaCellView, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaCellView_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaCellView_static_find,METH_VARARGS,oaInterPointerAppDef_oaCellView_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaCellView_static_get,METH_VARARGS,oaInterPointerAppDef_oaCellView_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaCellView_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaCellView_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaCellView\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaCellView",
           (PyObject*)(&PyoaInterPointerAppDef_oaCellView_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaCellView\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaCellView_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaCellView_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaCluster
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaCluster_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaCluster_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaClusterObject* self = (PyoaInterPointerAppDef_oaClusterObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaCluster)
    {
        PyParamoaInterPointerAppDef_oaCluster p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaCluster_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaCluster, Choices are:\n"
        "    (oaInterPointerAppDef_oaCluster)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaCluster_tp_dealloc(PyoaInterPointerAppDef_oaClusterObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaCluster_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaCluster value;
    int convert_status=PyoaInterPointerAppDef_oaCluster_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[52];
    sprintf(buffer,"<oaInterPointerAppDef_oaCluster::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaCluster_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaCluster v1;
    PyParamoaInterPointerAppDef_oaCluster v2;
    int convert_status1=PyoaInterPointerAppDef_oaCluster_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaCluster_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaCluster_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaCluster* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaCluster_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaCluster**) ((PyoaInterPointerAppDef_oaClusterObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaCluster Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaCluster_FromoaInterPointerAppDef_oaCluster(oaInterPointerAppDef_oaCluster** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaCluster* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaCluster_Type.tp_alloc(&PyoaInterPointerAppDef_oaCluster_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaClusterObject* self = (PyoaInterPointerAppDef_oaClusterObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaCluster_FromoaInterPointerAppDef_oaCluster(oaInterPointerAppDef_oaCluster* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaCluster_Type.tp_alloc(&PyoaInterPointerAppDef_oaCluster_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaClusterObject* self = (PyoaInterPointerAppDef_oaClusterObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCluster_get_doc[] = 
"Class: oaInterPointerAppDef_oaCluster, Function: get\n"
"  Paramegers: (oaCluster)\n"
"    Calls: oaObject* get(const oaCluster* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaCluster,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaCluster_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaCluster data;
    int convert_status=PyoaInterPointerAppDef_oaCluster_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaClusterObject* self=(PyoaInterPointerAppDef_oaClusterObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaCluster p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaCluster_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCluster_set_doc[] = 
"Class: oaInterPointerAppDef_oaCluster, Function: set\n"
"  Paramegers: (oaCluster,oaObject)\n"
"    Calls: void set(oaCluster* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaCluster,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaCluster_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaCluster data;
    int convert_status=PyoaInterPointerAppDef_oaCluster_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaClusterObject* self=(PyoaInterPointerAppDef_oaClusterObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaCluster p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaCluster_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCluster_isNull_doc[] =
"Class: oaInterPointerAppDef_oaCluster, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaCluster_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaCluster data;
    int convert_status=PyoaInterPointerAppDef_oaCluster_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaCluster_assign_doc[] = 
"Class: oaInterPointerAppDef_oaCluster, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaCluster_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaCluster data;
  int convert_status=PyoaInterPointerAppDef_oaCluster_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaCluster p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaCluster_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaCluster_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaCluster_get,METH_VARARGS,oaInterPointerAppDef_oaCluster_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaCluster_set,METH_VARARGS,oaInterPointerAppDef_oaCluster_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaCluster_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaCluster_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaCluster_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaCluster_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCluster_doc[] = 
"Class: oaInterPointerAppDef_oaCluster\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaCluster)\n"
"    Calls: (const oaInterPointerAppDef_oaCluster&)\n"
"    Signature: oaInterPointerAppDef_oaCluster||cref-oaInterPointerAppDef_oaCluster,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaCluster_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaCluster",
    sizeof(PyoaInterPointerAppDef_oaClusterObject),
    0,
    (destructor)oaInterPointerAppDef_oaCluster_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaCluster_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaCluster_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaCluster_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaCluster_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaCluster_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCluster_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaCluster, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaCluster* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaCluster|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaCluster* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaCluster|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaCluster_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaClusterp result= (oaInterPointerAppDef_oaCluster::find(p1.Data()));
            return PyoaInterPointerAppDef_oaCluster_FromoaInterPointerAppDef_oaCluster(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaClusterp result= (oaInterPointerAppDef_oaCluster::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCluster_FromoaInterPointerAppDef_oaCluster(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaCluster, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaCluster_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaCluster, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaCluster* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCluster|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaCluster* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCluster|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaCluster* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCluster|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaCluster* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaCluster|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaCluster_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaClusterp result= (oaInterPointerAppDef_oaCluster::get(p1.Data()));
            return PyoaInterPointerAppDef_oaCluster_FromoaInterPointerAppDef_oaCluster(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaClusterp result= (oaInterPointerAppDef_oaCluster::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCluster_FromoaInterPointerAppDef_oaCluster(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaClusterp result= (oaInterPointerAppDef_oaCluster::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaCluster_FromoaInterPointerAppDef_oaCluster(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaClusterp result= (oaInterPointerAppDef_oaCluster::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaCluster_FromoaInterPointerAppDef_oaCluster(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaCluster, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaCluster_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaCluster_static_find,METH_VARARGS,oaInterPointerAppDef_oaCluster_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaCluster_static_get,METH_VARARGS,oaInterPointerAppDef_oaCluster_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaCluster_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaCluster_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaCluster\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaCluster",
           (PyObject*)(&PyoaInterPointerAppDef_oaCluster_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaCluster\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaCluster_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaCluster_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaConnectDef
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConnectDef_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaConnectDef_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaConnectDefObject* self = (PyoaInterPointerAppDef_oaConnectDefObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaConnectDef)
    {
        PyParamoaInterPointerAppDef_oaConnectDef p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaConnectDef_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaConnectDef, Choices are:\n"
        "    (oaInterPointerAppDef_oaConnectDef)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaConnectDef_tp_dealloc(PyoaInterPointerAppDef_oaConnectDefObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConnectDef_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaConnectDef value;
    int convert_status=PyoaInterPointerAppDef_oaConnectDef_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[55];
    sprintf(buffer,"<oaInterPointerAppDef_oaConnectDef::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaConnectDef_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaConnectDef v1;
    PyParamoaInterPointerAppDef_oaConnectDef v2;
    int convert_status1=PyoaInterPointerAppDef_oaConnectDef_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaConnectDef_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaConnectDef_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaConnectDef* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaConnectDef_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaConnectDef**) ((PyoaInterPointerAppDef_oaConnectDefObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaConnectDef Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConnectDef_FromoaInterPointerAppDef_oaConnectDef(oaInterPointerAppDef_oaConnectDef** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaConnectDef* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaConnectDef_Type.tp_alloc(&PyoaInterPointerAppDef_oaConnectDef_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaConnectDefObject* self = (PyoaInterPointerAppDef_oaConnectDefObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConnectDef_FromoaInterPointerAppDef_oaConnectDef(oaInterPointerAppDef_oaConnectDef* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaConnectDef_Type.tp_alloc(&PyoaInterPointerAppDef_oaConnectDef_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaConnectDefObject* self = (PyoaInterPointerAppDef_oaConnectDefObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConnectDef_get_doc[] = 
"Class: oaInterPointerAppDef_oaConnectDef, Function: get\n"
"  Paramegers: (oaConnectDef)\n"
"    Calls: oaObject* get(const oaConnectDef* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaConnectDef,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConnectDef_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConnectDef data;
    int convert_status=PyoaInterPointerAppDef_oaConnectDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConnectDefObject* self=(PyoaInterPointerAppDef_oaConnectDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConnectDef p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaConnectDef_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConnectDef_set_doc[] = 
"Class: oaInterPointerAppDef_oaConnectDef, Function: set\n"
"  Paramegers: (oaConnectDef,oaObject)\n"
"    Calls: void set(oaConnectDef* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaConnectDef,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConnectDef_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConnectDef data;
    int convert_status=PyoaInterPointerAppDef_oaConnectDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConnectDefObject* self=(PyoaInterPointerAppDef_oaConnectDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConnectDef p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaConnectDef_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConnectDef_isNull_doc[] =
"Class: oaInterPointerAppDef_oaConnectDef, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaConnectDef_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaConnectDef data;
    int convert_status=PyoaInterPointerAppDef_oaConnectDef_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaConnectDef_assign_doc[] = 
"Class: oaInterPointerAppDef_oaConnectDef, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaConnectDef_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaConnectDef data;
  int convert_status=PyoaInterPointerAppDef_oaConnectDef_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaConnectDef p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaConnectDef_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaConnectDef_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaConnectDef_get,METH_VARARGS,oaInterPointerAppDef_oaConnectDef_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaConnectDef_set,METH_VARARGS,oaInterPointerAppDef_oaConnectDef_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaConnectDef_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaConnectDef_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaConnectDef_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaConnectDef_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConnectDef_doc[] = 
"Class: oaInterPointerAppDef_oaConnectDef\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaConnectDef)\n"
"    Calls: (const oaInterPointerAppDef_oaConnectDef&)\n"
"    Signature: oaInterPointerAppDef_oaConnectDef||cref-oaInterPointerAppDef_oaConnectDef,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaConnectDef_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaConnectDef",
    sizeof(PyoaInterPointerAppDef_oaConnectDefObject),
    0,
    (destructor)oaInterPointerAppDef_oaConnectDef_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaConnectDef_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaConnectDef_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaConnectDef_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaConnectDef_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaConnectDef_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConnectDef_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaConnectDef, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConnectDef* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConnectDef|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConnectDef* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConnectDef|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaConnectDef_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConnectDefp result= (oaInterPointerAppDef_oaConnectDef::find(p1.Data()));
            return PyoaInterPointerAppDef_oaConnectDef_FromoaInterPointerAppDef_oaConnectDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConnectDefp result= (oaInterPointerAppDef_oaConnectDef::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConnectDef_FromoaInterPointerAppDef_oaConnectDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConnectDef, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConnectDef_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaConnectDef, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConnectDef* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConnectDef|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConnectDef* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConnectDef|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConnectDef* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConnectDef|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConnectDef* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConnectDef|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaConnectDef_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConnectDefp result= (oaInterPointerAppDef_oaConnectDef::get(p1.Data()));
            return PyoaInterPointerAppDef_oaConnectDef_FromoaInterPointerAppDef_oaConnectDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaConnectDefp result= (oaInterPointerAppDef_oaConnectDef::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConnectDef_FromoaInterPointerAppDef_oaConnectDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConnectDefp result= (oaInterPointerAppDef_oaConnectDef::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConnectDef_FromoaInterPointerAppDef_oaConnectDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConnectDefp result= (oaInterPointerAppDef_oaConnectDef::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaConnectDef_FromoaInterPointerAppDef_oaConnectDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConnectDef, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaConnectDef_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaConnectDef_static_find,METH_VARARGS,oaInterPointerAppDef_oaConnectDef_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaConnectDef_static_get,METH_VARARGS,oaInterPointerAppDef_oaConnectDef_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaConnectDef_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaConnectDef_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaConnectDef\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaConnectDef",
           (PyObject*)(&PyoaInterPointerAppDef_oaConnectDef_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaConnectDef\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaConnectDef_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaConnectDef_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaConstraint
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraint_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaConstraint_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaConstraintObject* self = (PyoaInterPointerAppDef_oaConstraintObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaConstraint)
    {
        PyParamoaInterPointerAppDef_oaConstraint p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaConstraint_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaConstraint, Choices are:\n"
        "    (oaInterPointerAppDef_oaConstraint)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaConstraint_tp_dealloc(PyoaInterPointerAppDef_oaConstraintObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraint_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaConstraint value;
    int convert_status=PyoaInterPointerAppDef_oaConstraint_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[55];
    sprintf(buffer,"<oaInterPointerAppDef_oaConstraint::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaConstraint_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaConstraint v1;
    PyParamoaInterPointerAppDef_oaConstraint v2;
    int convert_status1=PyoaInterPointerAppDef_oaConstraint_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaConstraint_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaConstraint_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaConstraint* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaConstraint_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaConstraint**) ((PyoaInterPointerAppDef_oaConstraintObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaConstraint Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraint_FromoaInterPointerAppDef_oaConstraint(oaInterPointerAppDef_oaConstraint** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaConstraint* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaConstraint_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraint_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaConstraintObject* self = (PyoaInterPointerAppDef_oaConstraintObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraint_FromoaInterPointerAppDef_oaConstraint(oaInterPointerAppDef_oaConstraint* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaConstraint_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraint_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaConstraintObject* self = (PyoaInterPointerAppDef_oaConstraintObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraint_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraint, Function: get\n"
"  Paramegers: (oaConstraint)\n"
"    Calls: oaObject* get(const oaConstraint* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaConstraint,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraint_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraint data;
    int convert_status=PyoaInterPointerAppDef_oaConstraint_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintObject* self=(PyoaInterPointerAppDef_oaConstraintObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraint p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaConstraint_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraint_set_doc[] = 
"Class: oaInterPointerAppDef_oaConstraint, Function: set\n"
"  Paramegers: (oaConstraint,oaObject)\n"
"    Calls: void set(oaConstraint* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaConstraint,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraint_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraint data;
    int convert_status=PyoaInterPointerAppDef_oaConstraint_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintObject* self=(PyoaInterPointerAppDef_oaConstraintObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraint p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaConstraint_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraint_isNull_doc[] =
"Class: oaInterPointerAppDef_oaConstraint, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraint_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaConstraint data;
    int convert_status=PyoaInterPointerAppDef_oaConstraint_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaConstraint_assign_doc[] = 
"Class: oaInterPointerAppDef_oaConstraint, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraint_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaConstraint data;
  int convert_status=PyoaInterPointerAppDef_oaConstraint_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaConstraint p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaConstraint_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaConstraint_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaConstraint_get,METH_VARARGS,oaInterPointerAppDef_oaConstraint_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaConstraint_set,METH_VARARGS,oaInterPointerAppDef_oaConstraint_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaConstraint_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaConstraint_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaConstraint_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaConstraint_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraint_doc[] = 
"Class: oaInterPointerAppDef_oaConstraint\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaConstraint)\n"
"    Calls: (const oaInterPointerAppDef_oaConstraint&)\n"
"    Signature: oaInterPointerAppDef_oaConstraint||cref-oaInterPointerAppDef_oaConstraint,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaConstraint_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaConstraint",
    sizeof(PyoaInterPointerAppDef_oaConstraintObject),
    0,
    (destructor)oaInterPointerAppDef_oaConstraint_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaConstraint_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaConstraint_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaConstraint_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaConstraint_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaConstraint_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraint_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaConstraint, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraint* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraint|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraint* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraint|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraint_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintp result= (oaInterPointerAppDef_oaConstraint::find(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraint_FromoaInterPointerAppDef_oaConstraint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintp result= (oaInterPointerAppDef_oaConstraint::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraint_FromoaInterPointerAppDef_oaConstraint(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraint, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraint_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraint, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraint* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraint|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraint* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraint|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraint* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraint|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraint* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraint|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraint_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintp result= (oaInterPointerAppDef_oaConstraint::get(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraint_FromoaInterPointerAppDef_oaConstraint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaConstraintp result= (oaInterPointerAppDef_oaConstraint::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraint_FromoaInterPointerAppDef_oaConstraint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintp result= (oaInterPointerAppDef_oaConstraint::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraint_FromoaInterPointerAppDef_oaConstraint(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintp result= (oaInterPointerAppDef_oaConstraint::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaConstraint_FromoaInterPointerAppDef_oaConstraint(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraint, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaConstraint_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaConstraint_static_find,METH_VARARGS,oaInterPointerAppDef_oaConstraint_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaConstraint_static_get,METH_VARARGS,oaInterPointerAppDef_oaConstraint_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaConstraint_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaConstraint_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaConstraint\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaConstraint",
           (PyObject*)(&PyoaInterPointerAppDef_oaConstraint_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaConstraint\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaConstraint_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaConstraint_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaConstraintDef
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintDef_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaConstraintDef_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaConstraintDefObject* self = (PyoaInterPointerAppDef_oaConstraintDefObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaConstraintDef)
    {
        PyParamoaInterPointerAppDef_oaConstraintDef p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaConstraintDef_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaConstraintDef, Choices are:\n"
        "    (oaInterPointerAppDef_oaConstraintDef)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaConstraintDef_tp_dealloc(PyoaInterPointerAppDef_oaConstraintDefObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintDef_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaConstraintDef value;
    int convert_status=PyoaInterPointerAppDef_oaConstraintDef_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[58];
    sprintf(buffer,"<oaInterPointerAppDef_oaConstraintDef::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaConstraintDef_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaConstraintDef v1;
    PyParamoaInterPointerAppDef_oaConstraintDef v2;
    int convert_status1=PyoaInterPointerAppDef_oaConstraintDef_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaConstraintDef_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaConstraintDef_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaConstraintDef* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaConstraintDef_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaConstraintDef**) ((PyoaInterPointerAppDef_oaConstraintDefObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaConstraintDef Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintDef_FromoaInterPointerAppDef_oaConstraintDef(oaInterPointerAppDef_oaConstraintDef** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaConstraintDef* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaConstraintDef_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintDef_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaConstraintDefObject* self = (PyoaInterPointerAppDef_oaConstraintDefObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintDef_FromoaInterPointerAppDef_oaConstraintDef(oaInterPointerAppDef_oaConstraintDef* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaConstraintDef_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintDef_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaConstraintDefObject* self = (PyoaInterPointerAppDef_oaConstraintDefObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintDef_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintDef, Function: get\n"
"  Paramegers: (oaConstraintDef)\n"
"    Calls: oaObject* get(const oaConstraintDef* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaConstraintDef,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintDef_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintDef data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintDefObject* self=(PyoaInterPointerAppDef_oaConstraintDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintDef p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaConstraintDef_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintDef_set_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintDef, Function: set\n"
"  Paramegers: (oaConstraintDef,oaObject)\n"
"    Calls: void set(oaConstraintDef* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaConstraintDef,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintDef_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintDef data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintDefObject* self=(PyoaInterPointerAppDef_oaConstraintDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintDef p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaConstraintDef_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintDef_isNull_doc[] =
"Class: oaInterPointerAppDef_oaConstraintDef, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintDef_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaConstraintDef data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintDef_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaConstraintDef_assign_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintDef, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintDef_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaConstraintDef data;
  int convert_status=PyoaInterPointerAppDef_oaConstraintDef_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaConstraintDef p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaConstraintDef_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaConstraintDef_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaConstraintDef_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintDef_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaConstraintDef_set,METH_VARARGS,oaInterPointerAppDef_oaConstraintDef_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaConstraintDef_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaConstraintDef_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaConstraintDef_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaConstraintDef_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintDef_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintDef\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaConstraintDef)\n"
"    Calls: (const oaInterPointerAppDef_oaConstraintDef&)\n"
"    Signature: oaInterPointerAppDef_oaConstraintDef||cref-oaInterPointerAppDef_oaConstraintDef,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaConstraintDef_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaConstraintDef",
    sizeof(PyoaInterPointerAppDef_oaConstraintDefObject),
    0,
    (destructor)oaInterPointerAppDef_oaConstraintDef_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaConstraintDef_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaConstraintDef_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaConstraintDef_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaConstraintDef_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaConstraintDef_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintDef_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintDef, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintDef* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintDef|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintDef* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintDef|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintDef_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintDefp result= (oaInterPointerAppDef_oaConstraintDef::find(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintDef_FromoaInterPointerAppDef_oaConstraintDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintDefp result= (oaInterPointerAppDef_oaConstraintDef::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintDef_FromoaInterPointerAppDef_oaConstraintDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintDef, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintDef_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintDef, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintDef* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintDef|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintDef* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintDef|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintDef* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintDef|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintDef* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintDef|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintDef_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintDefp result= (oaInterPointerAppDef_oaConstraintDef::get(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintDef_FromoaInterPointerAppDef_oaConstraintDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaConstraintDefp result= (oaInterPointerAppDef_oaConstraintDef::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintDef_FromoaInterPointerAppDef_oaConstraintDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintDefp result= (oaInterPointerAppDef_oaConstraintDef::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintDef_FromoaInterPointerAppDef_oaConstraintDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintDefp result= (oaInterPointerAppDef_oaConstraintDef::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaConstraintDef_FromoaInterPointerAppDef_oaConstraintDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintDef, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaConstraintDef_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaConstraintDef_static_find,METH_VARARGS,oaInterPointerAppDef_oaConstraintDef_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaConstraintDef_static_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintDef_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaConstraintDef_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaConstraintDef_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaConstraintDef\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaConstraintDef",
           (PyObject*)(&PyoaInterPointerAppDef_oaConstraintDef_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaConstraintDef\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaConstraintDef_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaConstraintDef_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaConstraintGroup
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintGroup_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaConstraintGroup_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaConstraintGroupObject* self = (PyoaInterPointerAppDef_oaConstraintGroupObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaConstraintGroup)
    {
        PyParamoaInterPointerAppDef_oaConstraintGroup p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaConstraintGroup_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaConstraintGroup, Choices are:\n"
        "    (oaInterPointerAppDef_oaConstraintGroup)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaConstraintGroup_tp_dealloc(PyoaInterPointerAppDef_oaConstraintGroupObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintGroup_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaConstraintGroup value;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroup_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[60];
    sprintf(buffer,"<oaInterPointerAppDef_oaConstraintGroup::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaConstraintGroup_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaConstraintGroup v1;
    PyParamoaInterPointerAppDef_oaConstraintGroup v2;
    int convert_status1=PyoaInterPointerAppDef_oaConstraintGroup_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaConstraintGroup_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaConstraintGroup_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaConstraintGroup* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaConstraintGroup_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaConstraintGroup**) ((PyoaInterPointerAppDef_oaConstraintGroupObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaConstraintGroup Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintGroup_FromoaInterPointerAppDef_oaConstraintGroup(oaInterPointerAppDef_oaConstraintGroup** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaConstraintGroup* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaConstraintGroup_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintGroup_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaConstraintGroupObject* self = (PyoaInterPointerAppDef_oaConstraintGroupObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintGroup_FromoaInterPointerAppDef_oaConstraintGroup(oaInterPointerAppDef_oaConstraintGroup* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaConstraintGroup_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintGroup_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaConstraintGroupObject* self = (PyoaInterPointerAppDef_oaConstraintGroupObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroup_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroup, Function: get\n"
"  Paramegers: (oaConstraintGroup)\n"
"    Calls: oaObject* get(const oaConstraintGroup* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaConstraintGroup,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroup_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintGroup data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroup_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintGroupObject* self=(PyoaInterPointerAppDef_oaConstraintGroupObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintGroup p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaConstraintGroup_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroup_set_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroup, Function: set\n"
"  Paramegers: (oaConstraintGroup,oaObject)\n"
"    Calls: void set(oaConstraintGroup* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaConstraintGroup,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroup_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintGroup data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroup_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintGroupObject* self=(PyoaInterPointerAppDef_oaConstraintGroupObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintGroup p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaConstraintGroup_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroup_isNull_doc[] =
"Class: oaInterPointerAppDef_oaConstraintGroup, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroup_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaConstraintGroup data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroup_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaConstraintGroup_assign_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroup, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroup_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaConstraintGroup data;
  int convert_status=PyoaInterPointerAppDef_oaConstraintGroup_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaConstraintGroup p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaConstraintGroup_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaConstraintGroup_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaConstraintGroup_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroup_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaConstraintGroup_set,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroup_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaConstraintGroup_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroup_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaConstraintGroup_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroup_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroup_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroup\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaConstraintGroup)\n"
"    Calls: (const oaInterPointerAppDef_oaConstraintGroup&)\n"
"    Signature: oaInterPointerAppDef_oaConstraintGroup||cref-oaInterPointerAppDef_oaConstraintGroup,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaConstraintGroup_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaConstraintGroup",
    sizeof(PyoaInterPointerAppDef_oaConstraintGroupObject),
    0,
    (destructor)oaInterPointerAppDef_oaConstraintGroup_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaConstraintGroup_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaConstraintGroup_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaConstraintGroup_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaConstraintGroup_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaConstraintGroup_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroup_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroup, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroup* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintGroup|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroup* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintGroup|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroup_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintGroupp result= (oaInterPointerAppDef_oaConstraintGroup::find(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroup_FromoaInterPointerAppDef_oaConstraintGroup(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintGroupp result= (oaInterPointerAppDef_oaConstraintGroup::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroup_FromoaInterPointerAppDef_oaConstraintGroup(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintGroup, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroup_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroup, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroup* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroup|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroup* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroup|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroup* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroup|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroup* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroup|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroup_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintGroupp result= (oaInterPointerAppDef_oaConstraintGroup::get(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroup_FromoaInterPointerAppDef_oaConstraintGroup(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaConstraintGroupp result= (oaInterPointerAppDef_oaConstraintGroup::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroup_FromoaInterPointerAppDef_oaConstraintGroup(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintGroupp result= (oaInterPointerAppDef_oaConstraintGroup::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroup_FromoaInterPointerAppDef_oaConstraintGroup(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintGroupp result= (oaInterPointerAppDef_oaConstraintGroup::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroup_FromoaInterPointerAppDef_oaConstraintGroup(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintGroup, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaConstraintGroup_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaConstraintGroup_static_find,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroup_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaConstraintGroup_static_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroup_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaConstraintGroup_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaConstraintGroup_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaConstraintGroup\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaConstraintGroup",
           (PyObject*)(&PyoaInterPointerAppDef_oaConstraintGroup_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaConstraintGroup\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaConstraintGroup_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaConstraintGroup_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaConstraintGroupHeader
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintGroupHeader_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaConstraintGroupHeader_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaConstraintGroupHeaderObject* self = (PyoaInterPointerAppDef_oaConstraintGroupHeaderObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaConstraintGroupHeader)
    {
        PyParamoaInterPointerAppDef_oaConstraintGroupHeader p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaConstraintGroupHeader_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaConstraintGroupHeader, Choices are:\n"
        "    (oaInterPointerAppDef_oaConstraintGroupHeader)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaConstraintGroupHeader_tp_dealloc(PyoaInterPointerAppDef_oaConstraintGroupHeaderObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintGroupHeader_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaConstraintGroupHeader value;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroupHeader_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[66];
    sprintf(buffer,"<oaInterPointerAppDef_oaConstraintGroupHeader::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaConstraintGroupHeader_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaConstraintGroupHeader v1;
    PyParamoaInterPointerAppDef_oaConstraintGroupHeader v2;
    int convert_status1=PyoaInterPointerAppDef_oaConstraintGroupHeader_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaConstraintGroupHeader_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaConstraintGroupHeader_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaConstraintGroupHeader* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaConstraintGroupHeader_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaConstraintGroupHeader**) ((PyoaInterPointerAppDef_oaConstraintGroupHeaderObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaConstraintGroupHeader Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintGroupHeader_FromoaInterPointerAppDef_oaConstraintGroupHeader(oaInterPointerAppDef_oaConstraintGroupHeader** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaConstraintGroupHeader* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaConstraintGroupHeader_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintGroupHeader_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaConstraintGroupHeaderObject* self = (PyoaInterPointerAppDef_oaConstraintGroupHeaderObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintGroupHeader_FromoaInterPointerAppDef_oaConstraintGroupHeader(oaInterPointerAppDef_oaConstraintGroupHeader* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaConstraintGroupHeader_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintGroupHeader_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaConstraintGroupHeaderObject* self = (PyoaInterPointerAppDef_oaConstraintGroupHeaderObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupHeader_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupHeader, Function: get\n"
"  Paramegers: (oaConstraintGroupHeader)\n"
"    Calls: oaObject* get(const oaConstraintGroupHeader* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaConstraintGroupHeader,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupHeader_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintGroupHeader data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroupHeader_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintGroupHeaderObject* self=(PyoaInterPointerAppDef_oaConstraintGroupHeaderObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintGroupHeader p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaConstraintGroupHeader_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupHeader_set_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupHeader, Function: set\n"
"  Paramegers: (oaConstraintGroupHeader,oaObject)\n"
"    Calls: void set(oaConstraintGroupHeader* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaConstraintGroupHeader,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupHeader_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintGroupHeader data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroupHeader_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintGroupHeaderObject* self=(PyoaInterPointerAppDef_oaConstraintGroupHeaderObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintGroupHeader p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaConstraintGroupHeader_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupHeader_isNull_doc[] =
"Class: oaInterPointerAppDef_oaConstraintGroupHeader, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupHeader_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaConstraintGroupHeader data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroupHeader_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaConstraintGroupHeader_assign_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupHeader, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupHeader_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaConstraintGroupHeader data;
  int convert_status=PyoaInterPointerAppDef_oaConstraintGroupHeader_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaConstraintGroupHeader p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaConstraintGroupHeader_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaConstraintGroupHeader_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupHeader_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupHeader_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupHeader_set,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupHeader_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupHeader_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupHeader_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupHeader_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupHeader_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupHeader_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupHeader\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaConstraintGroupHeader)\n"
"    Calls: (const oaInterPointerAppDef_oaConstraintGroupHeader&)\n"
"    Signature: oaInterPointerAppDef_oaConstraintGroupHeader||cref-oaInterPointerAppDef_oaConstraintGroupHeader,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaConstraintGroupHeader_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaConstraintGroupHeader",
    sizeof(PyoaInterPointerAppDef_oaConstraintGroupHeaderObject),
    0,
    (destructor)oaInterPointerAppDef_oaConstraintGroupHeader_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaConstraintGroupHeader_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaConstraintGroupHeader_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaConstraintGroupHeader_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaConstraintGroupHeader_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaConstraintGroupHeader_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupHeader_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupHeader, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupHeader* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintGroupHeader|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupHeader* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintGroupHeader|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupHeader_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintGroupHeaderp result= (oaInterPointerAppDef_oaConstraintGroupHeader::find(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupHeader_FromoaInterPointerAppDef_oaConstraintGroupHeader(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintGroupHeaderp result= (oaInterPointerAppDef_oaConstraintGroupHeader::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupHeader_FromoaInterPointerAppDef_oaConstraintGroupHeader(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintGroupHeader, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupHeader_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupHeader, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupHeader* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroupHeader|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupHeader* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroupHeader|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupHeader* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroupHeader|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupHeader* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroupHeader|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupHeader_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintGroupHeaderp result= (oaInterPointerAppDef_oaConstraintGroupHeader::get(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupHeader_FromoaInterPointerAppDef_oaConstraintGroupHeader(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaConstraintGroupHeaderp result= (oaInterPointerAppDef_oaConstraintGroupHeader::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupHeader_FromoaInterPointerAppDef_oaConstraintGroupHeader(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintGroupHeaderp result= (oaInterPointerAppDef_oaConstraintGroupHeader::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupHeader_FromoaInterPointerAppDef_oaConstraintGroupHeader(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintGroupHeaderp result= (oaInterPointerAppDef_oaConstraintGroupHeader::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupHeader_FromoaInterPointerAppDef_oaConstraintGroupHeader(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintGroupHeader, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaConstraintGroupHeader_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupHeader_static_find,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupHeader_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupHeader_static_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupHeader_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaConstraintGroupHeader_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaConstraintGroupHeader_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaConstraintGroupHeader\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaConstraintGroupHeader",
           (PyObject*)(&PyoaInterPointerAppDef_oaConstraintGroupHeader_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaConstraintGroupHeader\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaConstraintGroupHeader_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaConstraintGroupHeader_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaConstraintGroupMem
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintGroupMem_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaConstraintGroupMem_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaConstraintGroupMemObject* self = (PyoaInterPointerAppDef_oaConstraintGroupMemObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaConstraintGroupMem)
    {
        PyParamoaInterPointerAppDef_oaConstraintGroupMem p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaConstraintGroupMem_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaConstraintGroupMem, Choices are:\n"
        "    (oaInterPointerAppDef_oaConstraintGroupMem)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaConstraintGroupMem_tp_dealloc(PyoaInterPointerAppDef_oaConstraintGroupMemObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintGroupMem_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaConstraintGroupMem value;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroupMem_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[63];
    sprintf(buffer,"<oaInterPointerAppDef_oaConstraintGroupMem::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaConstraintGroupMem_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaConstraintGroupMem v1;
    PyParamoaInterPointerAppDef_oaConstraintGroupMem v2;
    int convert_status1=PyoaInterPointerAppDef_oaConstraintGroupMem_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaConstraintGroupMem_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaConstraintGroupMem_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaConstraintGroupMem* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaConstraintGroupMem_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaConstraintGroupMem**) ((PyoaInterPointerAppDef_oaConstraintGroupMemObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaConstraintGroupMem Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintGroupMem_FromoaInterPointerAppDef_oaConstraintGroupMem(oaInterPointerAppDef_oaConstraintGroupMem** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaConstraintGroupMem* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaConstraintGroupMem_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintGroupMem_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaConstraintGroupMemObject* self = (PyoaInterPointerAppDef_oaConstraintGroupMemObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintGroupMem_FromoaInterPointerAppDef_oaConstraintGroupMem(oaInterPointerAppDef_oaConstraintGroupMem* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaConstraintGroupMem_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintGroupMem_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaConstraintGroupMemObject* self = (PyoaInterPointerAppDef_oaConstraintGroupMemObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupMem_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupMem, Function: get\n"
"  Paramegers: (oaConstraintGroupMem)\n"
"    Calls: oaObject* get(const oaConstraintGroupMem* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaConstraintGroupMem,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupMem_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintGroupMem data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroupMem_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintGroupMemObject* self=(PyoaInterPointerAppDef_oaConstraintGroupMemObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintGroupMem p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaConstraintGroupMem_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupMem_set_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupMem, Function: set\n"
"  Paramegers: (oaConstraintGroupMem,oaObject)\n"
"    Calls: void set(oaConstraintGroupMem* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaConstraintGroupMem,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupMem_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintGroupMem data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroupMem_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintGroupMemObject* self=(PyoaInterPointerAppDef_oaConstraintGroupMemObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintGroupMem p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaConstraintGroupMem_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupMem_isNull_doc[] =
"Class: oaInterPointerAppDef_oaConstraintGroupMem, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupMem_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaConstraintGroupMem data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintGroupMem_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaConstraintGroupMem_assign_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupMem, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupMem_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaConstraintGroupMem data;
  int convert_status=PyoaInterPointerAppDef_oaConstraintGroupMem_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaConstraintGroupMem p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaConstraintGroupMem_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaConstraintGroupMem_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupMem_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupMem_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupMem_set,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupMem_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupMem_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupMem_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupMem_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupMem_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupMem_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupMem\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaConstraintGroupMem)\n"
"    Calls: (const oaInterPointerAppDef_oaConstraintGroupMem&)\n"
"    Signature: oaInterPointerAppDef_oaConstraintGroupMem||cref-oaInterPointerAppDef_oaConstraintGroupMem,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaConstraintGroupMem_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaConstraintGroupMem",
    sizeof(PyoaInterPointerAppDef_oaConstraintGroupMemObject),
    0,
    (destructor)oaInterPointerAppDef_oaConstraintGroupMem_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaConstraintGroupMem_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaConstraintGroupMem_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaConstraintGroupMem_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaConstraintGroupMem_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaConstraintGroupMem_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupMem_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupMem, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupMem* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintGroupMem|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupMem* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintGroupMem|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupMem_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintGroupMemp result= (oaInterPointerAppDef_oaConstraintGroupMem::find(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupMem_FromoaInterPointerAppDef_oaConstraintGroupMem(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintGroupMemp result= (oaInterPointerAppDef_oaConstraintGroupMem::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupMem_FromoaInterPointerAppDef_oaConstraintGroupMem(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintGroupMem, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintGroupMem_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintGroupMem, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupMem* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroupMem|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupMem* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroupMem|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupMem* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroupMem|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintGroupMem* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintGroupMem|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintGroupMem_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintGroupMemp result= (oaInterPointerAppDef_oaConstraintGroupMem::get(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupMem_FromoaInterPointerAppDef_oaConstraintGroupMem(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaConstraintGroupMemp result= (oaInterPointerAppDef_oaConstraintGroupMem::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupMem_FromoaInterPointerAppDef_oaConstraintGroupMem(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintGroupMemp result= (oaInterPointerAppDef_oaConstraintGroupMem::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupMem_FromoaInterPointerAppDef_oaConstraintGroupMem(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintGroupMemp result= (oaInterPointerAppDef_oaConstraintGroupMem::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaConstraintGroupMem_FromoaInterPointerAppDef_oaConstraintGroupMem(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintGroupMem, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaConstraintGroupMem_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupMem_static_find,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupMem_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaConstraintGroupMem_static_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintGroupMem_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaConstraintGroupMem_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaConstraintGroupMem_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaConstraintGroupMem\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaConstraintGroupMem",
           (PyObject*)(&PyoaInterPointerAppDef_oaConstraintGroupMem_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaConstraintGroupMem\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaConstraintGroupMem_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaConstraintGroupMem_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaConstraintParam
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintParam_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaConstraintParam_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaConstraintParamObject* self = (PyoaInterPointerAppDef_oaConstraintParamObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaConstraintParam)
    {
        PyParamoaInterPointerAppDef_oaConstraintParam p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaConstraintParam_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaConstraintParam, Choices are:\n"
        "    (oaInterPointerAppDef_oaConstraintParam)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaConstraintParam_tp_dealloc(PyoaInterPointerAppDef_oaConstraintParamObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintParam_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaConstraintParam value;
    int convert_status=PyoaInterPointerAppDef_oaConstraintParam_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[60];
    sprintf(buffer,"<oaInterPointerAppDef_oaConstraintParam::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaConstraintParam_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaConstraintParam v1;
    PyParamoaInterPointerAppDef_oaConstraintParam v2;
    int convert_status1=PyoaInterPointerAppDef_oaConstraintParam_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaConstraintParam_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaConstraintParam_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaConstraintParam* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaConstraintParam_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaConstraintParam**) ((PyoaInterPointerAppDef_oaConstraintParamObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaConstraintParam Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintParam_FromoaInterPointerAppDef_oaConstraintParam(oaInterPointerAppDef_oaConstraintParam** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaConstraintParam* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaConstraintParam_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintParam_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaConstraintParamObject* self = (PyoaInterPointerAppDef_oaConstraintParamObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintParam_FromoaInterPointerAppDef_oaConstraintParam(oaInterPointerAppDef_oaConstraintParam* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaConstraintParam_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintParam_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaConstraintParamObject* self = (PyoaInterPointerAppDef_oaConstraintParamObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParam_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParam, Function: get\n"
"  Paramegers: (oaConstraintParam)\n"
"    Calls: oaObject* get(const oaConstraintParam* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaConstraintParam,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParam_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintParam data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintParam_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintParamObject* self=(PyoaInterPointerAppDef_oaConstraintParamObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintParam p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaConstraintParam_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParam_set_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParam, Function: set\n"
"  Paramegers: (oaConstraintParam,oaObject)\n"
"    Calls: void set(oaConstraintParam* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaConstraintParam,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParam_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintParam data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintParam_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintParamObject* self=(PyoaInterPointerAppDef_oaConstraintParamObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintParam p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaConstraintParam_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParam_isNull_doc[] =
"Class: oaInterPointerAppDef_oaConstraintParam, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParam_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaConstraintParam data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintParam_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaConstraintParam_assign_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParam, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParam_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaConstraintParam data;
  int convert_status=PyoaInterPointerAppDef_oaConstraintParam_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaConstraintParam p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaConstraintParam_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaConstraintParam_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaConstraintParam_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintParam_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaConstraintParam_set,METH_VARARGS,oaInterPointerAppDef_oaConstraintParam_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaConstraintParam_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaConstraintParam_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaConstraintParam_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaConstraintParam_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParam_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParam\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaConstraintParam)\n"
"    Calls: (const oaInterPointerAppDef_oaConstraintParam&)\n"
"    Signature: oaInterPointerAppDef_oaConstraintParam||cref-oaInterPointerAppDef_oaConstraintParam,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaConstraintParam_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaConstraintParam",
    sizeof(PyoaInterPointerAppDef_oaConstraintParamObject),
    0,
    (destructor)oaInterPointerAppDef_oaConstraintParam_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaConstraintParam_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaConstraintParam_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaConstraintParam_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaConstraintParam_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaConstraintParam_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParam_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParam, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParam* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintParam|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParam* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintParam|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParam_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintParamp result= (oaInterPointerAppDef_oaConstraintParam::find(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintParam_FromoaInterPointerAppDef_oaConstraintParam(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintParamp result= (oaInterPointerAppDef_oaConstraintParam::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintParam_FromoaInterPointerAppDef_oaConstraintParam(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintParam, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParam_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParam, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParam* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintParam|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParam* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintParam|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParam* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintParam|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParam* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintParam|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParam_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintParamp result= (oaInterPointerAppDef_oaConstraintParam::get(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintParam_FromoaInterPointerAppDef_oaConstraintParam(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaConstraintParamp result= (oaInterPointerAppDef_oaConstraintParam::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintParam_FromoaInterPointerAppDef_oaConstraintParam(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintParamp result= (oaInterPointerAppDef_oaConstraintParam::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintParam_FromoaInterPointerAppDef_oaConstraintParam(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintParamp result= (oaInterPointerAppDef_oaConstraintParam::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaConstraintParam_FromoaInterPointerAppDef_oaConstraintParam(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintParam, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaConstraintParam_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaConstraintParam_static_find,METH_VARARGS,oaInterPointerAppDef_oaConstraintParam_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaConstraintParam_static_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintParam_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaConstraintParam_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaConstraintParam_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaConstraintParam\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaConstraintParam",
           (PyObject*)(&PyoaInterPointerAppDef_oaConstraintParam_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaConstraintParam\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaConstraintParam_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaConstraintParam_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaConstraintParamDef
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintParamDef_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaConstraintParamDef_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaConstraintParamDefObject* self = (PyoaInterPointerAppDef_oaConstraintParamDefObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaConstraintParamDef)
    {
        PyParamoaInterPointerAppDef_oaConstraintParamDef p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaConstraintParamDef_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaConstraintParamDef, Choices are:\n"
        "    (oaInterPointerAppDef_oaConstraintParamDef)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaConstraintParamDef_tp_dealloc(PyoaInterPointerAppDef_oaConstraintParamDefObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaConstraintParamDef_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaConstraintParamDef value;
    int convert_status=PyoaInterPointerAppDef_oaConstraintParamDef_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[63];
    sprintf(buffer,"<oaInterPointerAppDef_oaConstraintParamDef::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaConstraintParamDef_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaConstraintParamDef v1;
    PyParamoaInterPointerAppDef_oaConstraintParamDef v2;
    int convert_status1=PyoaInterPointerAppDef_oaConstraintParamDef_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaConstraintParamDef_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaConstraintParamDef_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaConstraintParamDef* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaConstraintParamDef_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaConstraintParamDef**) ((PyoaInterPointerAppDef_oaConstraintParamDefObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaConstraintParamDef Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintParamDef_FromoaInterPointerAppDef_oaConstraintParamDef(oaInterPointerAppDef_oaConstraintParamDef** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaConstraintParamDef* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaConstraintParamDef_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintParamDef_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaConstraintParamDefObject* self = (PyoaInterPointerAppDef_oaConstraintParamDefObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaConstraintParamDef_FromoaInterPointerAppDef_oaConstraintParamDef(oaInterPointerAppDef_oaConstraintParamDef* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaConstraintParamDef_Type.tp_alloc(&PyoaInterPointerAppDef_oaConstraintParamDef_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaConstraintParamDefObject* self = (PyoaInterPointerAppDef_oaConstraintParamDefObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParamDef_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParamDef, Function: get\n"
"  Paramegers: (oaConstraintParamDef)\n"
"    Calls: oaObject* get(const oaConstraintParamDef* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaConstraintParamDef,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParamDef_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintParamDef data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintParamDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintParamDefObject* self=(PyoaInterPointerAppDef_oaConstraintParamDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintParamDef p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaConstraintParamDef_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParamDef_set_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParamDef, Function: set\n"
"  Paramegers: (oaConstraintParamDef,oaObject)\n"
"    Calls: void set(oaConstraintParamDef* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaConstraintParamDef,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParamDef_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaConstraintParamDef data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintParamDef_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaConstraintParamDefObject* self=(PyoaInterPointerAppDef_oaConstraintParamDefObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaConstraintParamDef p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaConstraintParamDef_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParamDef_isNull_doc[] =
"Class: oaInterPointerAppDef_oaConstraintParamDef, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParamDef_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaConstraintParamDef data;
    int convert_status=PyoaInterPointerAppDef_oaConstraintParamDef_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaConstraintParamDef_assign_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParamDef, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParamDef_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaConstraintParamDef data;
  int convert_status=PyoaInterPointerAppDef_oaConstraintParamDef_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaConstraintParamDef p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaConstraintParamDef_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaConstraintParamDef_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaConstraintParamDef_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintParamDef_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaConstraintParamDef_set,METH_VARARGS,oaInterPointerAppDef_oaConstraintParamDef_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaConstraintParamDef_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaConstraintParamDef_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaConstraintParamDef_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaConstraintParamDef_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParamDef_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParamDef\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaConstraintParamDef)\n"
"    Calls: (const oaInterPointerAppDef_oaConstraintParamDef&)\n"
"    Signature: oaInterPointerAppDef_oaConstraintParamDef||cref-oaInterPointerAppDef_oaConstraintParamDef,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaConstraintParamDef_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaConstraintParamDef",
    sizeof(PyoaInterPointerAppDef_oaConstraintParamDefObject),
    0,
    (destructor)oaInterPointerAppDef_oaConstraintParamDef_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaConstraintParamDef_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaConstraintParamDef_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaConstraintParamDef_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaConstraintParamDef_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaConstraintParamDef_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParamDef_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParamDef, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParamDef* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintParamDef|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParamDef* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaConstraintParamDef|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParamDef_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintParamDefp result= (oaInterPointerAppDef_oaConstraintParamDef::find(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintParamDef_FromoaInterPointerAppDef_oaConstraintParamDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintParamDefp result= (oaInterPointerAppDef_oaConstraintParamDef::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintParamDef_FromoaInterPointerAppDef_oaConstraintParamDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintParamDef, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaConstraintParamDef_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaConstraintParamDef, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParamDef* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintParamDef|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParamDef* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintParamDef|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParamDef* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintParamDef|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaConstraintParamDef* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaConstraintParamDef|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaConstraintParamDef_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaConstraintParamDefp result= (oaInterPointerAppDef_oaConstraintParamDef::get(p1.Data()));
            return PyoaInterPointerAppDef_oaConstraintParamDef_FromoaInterPointerAppDef_oaConstraintParamDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaConstraintParamDefp result= (oaInterPointerAppDef_oaConstraintParamDef::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintParamDef_FromoaInterPointerAppDef_oaConstraintParamDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintParamDefp result= (oaInterPointerAppDef_oaConstraintParamDef::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaConstraintParamDef_FromoaInterPointerAppDef_oaConstraintParamDef(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaConstraintParamDefp result= (oaInterPointerAppDef_oaConstraintParamDef::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaConstraintParamDef_FromoaInterPointerAppDef_oaConstraintParamDef(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaConstraintParamDef, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaConstraintParamDef_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaConstraintParamDef_static_find,METH_VARARGS,oaInterPointerAppDef_oaConstraintParamDef_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaConstraintParamDef_static_get,METH_VARARGS,oaInterPointerAppDef_oaConstraintParamDef_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaConstraintParamDef_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaConstraintParamDef_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaConstraintParamDef\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaConstraintParamDef",
           (PyObject*)(&PyoaInterPointerAppDef_oaConstraintParamDef_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaConstraintParamDef\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaConstraintParamDef_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaConstraintParamDef_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaDMData
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDMData_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaDMData_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaDMDataObject* self = (PyoaInterPointerAppDef_oaDMDataObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaDMData)
    {
        PyParamoaInterPointerAppDef_oaDMData p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaDMData_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaDMData, Choices are:\n"
        "    (oaInterPointerAppDef_oaDMData)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaDMData_tp_dealloc(PyoaInterPointerAppDef_oaDMDataObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDMData_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaDMData value;
    int convert_status=PyoaInterPointerAppDef_oaDMData_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[51];
    sprintf(buffer,"<oaInterPointerAppDef_oaDMData::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaDMData_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaDMData v1;
    PyParamoaInterPointerAppDef_oaDMData v2;
    int convert_status1=PyoaInterPointerAppDef_oaDMData_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaDMData_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaDMData_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaDMData* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaDMData_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaDMData**) ((PyoaInterPointerAppDef_oaDMDataObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaDMData Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDMData_FromoaInterPointerAppDef_oaDMData(oaInterPointerAppDef_oaDMData** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaDMData* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaDMData_Type.tp_alloc(&PyoaInterPointerAppDef_oaDMData_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaDMDataObject* self = (PyoaInterPointerAppDef_oaDMDataObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDMData_FromoaInterPointerAppDef_oaDMData(oaInterPointerAppDef_oaDMData* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaDMData_Type.tp_alloc(&PyoaInterPointerAppDef_oaDMData_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaDMDataObject* self = (PyoaInterPointerAppDef_oaDMDataObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMData_get_doc[] = 
"Class: oaInterPointerAppDef_oaDMData, Function: get\n"
"  Paramegers: (oaDMData)\n"
"    Calls: oaObject* get(const oaDMData* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaDMData,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDMData_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDMData data;
    int convert_status=PyoaInterPointerAppDef_oaDMData_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDMDataObject* self=(PyoaInterPointerAppDef_oaDMDataObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDMData p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaDMData_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMData_set_doc[] = 
"Class: oaInterPointerAppDef_oaDMData, Function: set\n"
"  Paramegers: (oaDMData,oaObject)\n"
"    Calls: void set(oaDMData* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaDMData,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDMData_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDMData data;
    int convert_status=PyoaInterPointerAppDef_oaDMData_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDMDataObject* self=(PyoaInterPointerAppDef_oaDMDataObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDMData p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaDMData_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMData_isNull_doc[] =
"Class: oaInterPointerAppDef_oaDMData, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaDMData_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaDMData data;
    int convert_status=PyoaInterPointerAppDef_oaDMData_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaDMData_assign_doc[] = 
"Class: oaInterPointerAppDef_oaDMData, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaDMData_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaDMData data;
  int convert_status=PyoaInterPointerAppDef_oaDMData_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaDMData p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaDMData_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaDMData_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaDMData_get,METH_VARARGS,oaInterPointerAppDef_oaDMData_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaDMData_set,METH_VARARGS,oaInterPointerAppDef_oaDMData_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaDMData_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaDMData_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaDMData_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaDMData_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMData_doc[] = 
"Class: oaInterPointerAppDef_oaDMData\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaDMData)\n"
"    Calls: (const oaInterPointerAppDef_oaDMData&)\n"
"    Signature: oaInterPointerAppDef_oaDMData||cref-oaInterPointerAppDef_oaDMData,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaDMData_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaDMData",
    sizeof(PyoaInterPointerAppDef_oaDMDataObject),
    0,
    (destructor)oaInterPointerAppDef_oaDMData_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaDMData_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaDMData_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaDMData_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaDMData_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaDMData_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMData_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaDMData, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDMData* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDMData|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDMData* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDMData|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaDMData_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDMDatap result= (oaInterPointerAppDef_oaDMData::find(p1.Data()));
            return PyoaInterPointerAppDef_oaDMData_FromoaInterPointerAppDef_oaDMData(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDMDatap result= (oaInterPointerAppDef_oaDMData::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDMData_FromoaInterPointerAppDef_oaDMData(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDMData, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMData_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaDMData, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDMData* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDMData|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDMData* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDMData|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDMData* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDMData|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDMData* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDMData|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaDMData_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDMDatap result= (oaInterPointerAppDef_oaDMData::get(p1.Data()));
            return PyoaInterPointerAppDef_oaDMData_FromoaInterPointerAppDef_oaDMData(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaDMDatap result= (oaInterPointerAppDef_oaDMData::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDMData_FromoaInterPointerAppDef_oaDMData(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDMDatap result= (oaInterPointerAppDef_oaDMData::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDMData_FromoaInterPointerAppDef_oaDMData(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDMDatap result= (oaInterPointerAppDef_oaDMData::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaDMData_FromoaInterPointerAppDef_oaDMData(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDMData, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaDMData_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaDMData_static_find,METH_VARARGS,oaInterPointerAppDef_oaDMData_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaDMData_static_get,METH_VARARGS,oaInterPointerAppDef_oaDMData_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaDMData_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaDMData_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaDMData\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaDMData",
           (PyObject*)(&PyoaInterPointerAppDef_oaDMData_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaDMData\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaDMData_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaDMData_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaDMFile
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDMFile_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaDMFile_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaDMFileObject* self = (PyoaInterPointerAppDef_oaDMFileObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaDMFile)
    {
        PyParamoaInterPointerAppDef_oaDMFile p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaDMFile_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaDMFile, Choices are:\n"
        "    (oaInterPointerAppDef_oaDMFile)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaDMFile_tp_dealloc(PyoaInterPointerAppDef_oaDMFileObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDMFile_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaDMFile value;
    int convert_status=PyoaInterPointerAppDef_oaDMFile_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[51];
    sprintf(buffer,"<oaInterPointerAppDef_oaDMFile::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaDMFile_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaDMFile v1;
    PyParamoaInterPointerAppDef_oaDMFile v2;
    int convert_status1=PyoaInterPointerAppDef_oaDMFile_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaDMFile_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaDMFile_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaDMFile* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaDMFile_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaDMFile**) ((PyoaInterPointerAppDef_oaDMFileObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaDMFile Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDMFile_FromoaInterPointerAppDef_oaDMFile(oaInterPointerAppDef_oaDMFile** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaDMFile* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaDMFile_Type.tp_alloc(&PyoaInterPointerAppDef_oaDMFile_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaDMFileObject* self = (PyoaInterPointerAppDef_oaDMFileObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDMFile_FromoaInterPointerAppDef_oaDMFile(oaInterPointerAppDef_oaDMFile* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaDMFile_Type.tp_alloc(&PyoaInterPointerAppDef_oaDMFile_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaDMFileObject* self = (PyoaInterPointerAppDef_oaDMFileObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMFile_get_doc[] = 
"Class: oaInterPointerAppDef_oaDMFile, Function: get\n"
"  Paramegers: (oaDMFile)\n"
"    Calls: oaObject* get(const oaDMFile* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaDMFile,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDMFile_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDMFile data;
    int convert_status=PyoaInterPointerAppDef_oaDMFile_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDMFileObject* self=(PyoaInterPointerAppDef_oaDMFileObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDMFile p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaDMFile_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMFile_set_doc[] = 
"Class: oaInterPointerAppDef_oaDMFile, Function: set\n"
"  Paramegers: (oaDMFile,oaObject)\n"
"    Calls: void set(oaDMFile* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaDMFile,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDMFile_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDMFile data;
    int convert_status=PyoaInterPointerAppDef_oaDMFile_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDMFileObject* self=(PyoaInterPointerAppDef_oaDMFileObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDMFile p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaDMFile_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMFile_isNull_doc[] =
"Class: oaInterPointerAppDef_oaDMFile, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaDMFile_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaDMFile data;
    int convert_status=PyoaInterPointerAppDef_oaDMFile_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaDMFile_assign_doc[] = 
"Class: oaInterPointerAppDef_oaDMFile, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaDMFile_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaDMFile data;
  int convert_status=PyoaInterPointerAppDef_oaDMFile_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaDMFile p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaDMFile_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaDMFile_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaDMFile_get,METH_VARARGS,oaInterPointerAppDef_oaDMFile_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaDMFile_set,METH_VARARGS,oaInterPointerAppDef_oaDMFile_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaDMFile_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaDMFile_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaDMFile_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaDMFile_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMFile_doc[] = 
"Class: oaInterPointerAppDef_oaDMFile\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaDMFile)\n"
"    Calls: (const oaInterPointerAppDef_oaDMFile&)\n"
"    Signature: oaInterPointerAppDef_oaDMFile||cref-oaInterPointerAppDef_oaDMFile,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaDMFile_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaDMFile",
    sizeof(PyoaInterPointerAppDef_oaDMFileObject),
    0,
    (destructor)oaInterPointerAppDef_oaDMFile_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaDMFile_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaDMFile_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaDMFile_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaDMFile_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaDMFile_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMFile_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaDMFile, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDMFile* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDMFile|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDMFile* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDMFile|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaDMFile_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDMFilep result= (oaInterPointerAppDef_oaDMFile::find(p1.Data()));
            return PyoaInterPointerAppDef_oaDMFile_FromoaInterPointerAppDef_oaDMFile(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDMFilep result= (oaInterPointerAppDef_oaDMFile::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDMFile_FromoaInterPointerAppDef_oaDMFile(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDMFile, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDMFile_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaDMFile, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDMFile* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDMFile|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDMFile* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDMFile|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDMFile* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDMFile|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDMFile* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDMFile|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaDMFile_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDMFilep result= (oaInterPointerAppDef_oaDMFile::get(p1.Data()));
            return PyoaInterPointerAppDef_oaDMFile_FromoaInterPointerAppDef_oaDMFile(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaDMFilep result= (oaInterPointerAppDef_oaDMFile::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDMFile_FromoaInterPointerAppDef_oaDMFile(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDMFilep result= (oaInterPointerAppDef_oaDMFile::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDMFile_FromoaInterPointerAppDef_oaDMFile(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDMFilep result= (oaInterPointerAppDef_oaDMFile::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaDMFile_FromoaInterPointerAppDef_oaDMFile(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDMFile, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaDMFile_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaDMFile_static_find,METH_VARARGS,oaInterPointerAppDef_oaDMFile_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaDMFile_static_get,METH_VARARGS,oaInterPointerAppDef_oaDMFile_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaDMFile_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaDMFile_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaDMFile\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaDMFile",
           (PyObject*)(&PyoaInterPointerAppDef_oaDMFile_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaDMFile\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaDMFile_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaDMFile_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaDerivedLayerParam
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDerivedLayerParam_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaDerivedLayerParam_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaDerivedLayerParamObject* self = (PyoaInterPointerAppDef_oaDerivedLayerParamObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaDerivedLayerParam)
    {
        PyParamoaInterPointerAppDef_oaDerivedLayerParam p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaDerivedLayerParam_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaDerivedLayerParam, Choices are:\n"
        "    (oaInterPointerAppDef_oaDerivedLayerParam)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaDerivedLayerParam_tp_dealloc(PyoaInterPointerAppDef_oaDerivedLayerParamObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDerivedLayerParam_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaDerivedLayerParam value;
    int convert_status=PyoaInterPointerAppDef_oaDerivedLayerParam_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[62];
    sprintf(buffer,"<oaInterPointerAppDef_oaDerivedLayerParam::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaDerivedLayerParam_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaDerivedLayerParam v1;
    PyParamoaInterPointerAppDef_oaDerivedLayerParam v2;
    int convert_status1=PyoaInterPointerAppDef_oaDerivedLayerParam_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaDerivedLayerParam_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaDerivedLayerParam_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaDerivedLayerParam* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaDerivedLayerParam_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaDerivedLayerParam**) ((PyoaInterPointerAppDef_oaDerivedLayerParamObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaDerivedLayerParam Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDerivedLayerParam_FromoaInterPointerAppDef_oaDerivedLayerParam(oaInterPointerAppDef_oaDerivedLayerParam** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaDerivedLayerParam* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaDerivedLayerParam_Type.tp_alloc(&PyoaInterPointerAppDef_oaDerivedLayerParam_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaDerivedLayerParamObject* self = (PyoaInterPointerAppDef_oaDerivedLayerParamObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDerivedLayerParam_FromoaInterPointerAppDef_oaDerivedLayerParam(oaInterPointerAppDef_oaDerivedLayerParam* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaDerivedLayerParam_Type.tp_alloc(&PyoaInterPointerAppDef_oaDerivedLayerParam_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaDerivedLayerParamObject* self = (PyoaInterPointerAppDef_oaDerivedLayerParamObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDerivedLayerParam_get_doc[] = 
"Class: oaInterPointerAppDef_oaDerivedLayerParam, Function: get\n"
"  Paramegers: (oaDerivedLayerParam)\n"
"    Calls: oaObject* get(const oaDerivedLayerParam* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaDerivedLayerParam,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDerivedLayerParam_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDerivedLayerParam data;
    int convert_status=PyoaInterPointerAppDef_oaDerivedLayerParam_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDerivedLayerParamObject* self=(PyoaInterPointerAppDef_oaDerivedLayerParamObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDerivedLayerParam p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaDerivedLayerParam_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDerivedLayerParam_set_doc[] = 
"Class: oaInterPointerAppDef_oaDerivedLayerParam, Function: set\n"
"  Paramegers: (oaDerivedLayerParam,oaObject)\n"
"    Calls: void set(oaDerivedLayerParam* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaDerivedLayerParam,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDerivedLayerParam_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDerivedLayerParam data;
    int convert_status=PyoaInterPointerAppDef_oaDerivedLayerParam_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDerivedLayerParamObject* self=(PyoaInterPointerAppDef_oaDerivedLayerParamObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDerivedLayerParam p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaDerivedLayerParam_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDerivedLayerParam_isNull_doc[] =
"Class: oaInterPointerAppDef_oaDerivedLayerParam, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaDerivedLayerParam_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaDerivedLayerParam data;
    int convert_status=PyoaInterPointerAppDef_oaDerivedLayerParam_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaDerivedLayerParam_assign_doc[] = 
"Class: oaInterPointerAppDef_oaDerivedLayerParam, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaDerivedLayerParam_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaDerivedLayerParam data;
  int convert_status=PyoaInterPointerAppDef_oaDerivedLayerParam_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaDerivedLayerParam p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaDerivedLayerParam_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaDerivedLayerParam_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaDerivedLayerParam_get,METH_VARARGS,oaInterPointerAppDef_oaDerivedLayerParam_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaDerivedLayerParam_set,METH_VARARGS,oaInterPointerAppDef_oaDerivedLayerParam_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaDerivedLayerParam_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaDerivedLayerParam_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaDerivedLayerParam_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaDerivedLayerParam_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDerivedLayerParam_doc[] = 
"Class: oaInterPointerAppDef_oaDerivedLayerParam\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaDerivedLayerParam)\n"
"    Calls: (const oaInterPointerAppDef_oaDerivedLayerParam&)\n"
"    Signature: oaInterPointerAppDef_oaDerivedLayerParam||cref-oaInterPointerAppDef_oaDerivedLayerParam,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaDerivedLayerParam_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaDerivedLayerParam",
    sizeof(PyoaInterPointerAppDef_oaDerivedLayerParamObject),
    0,
    (destructor)oaInterPointerAppDef_oaDerivedLayerParam_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaDerivedLayerParam_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaDerivedLayerParam_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaDerivedLayerParam_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaDerivedLayerParam_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaDerivedLayerParam_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDerivedLayerParam_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaDerivedLayerParam, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDerivedLayerParam* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDerivedLayerParam|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDerivedLayerParam* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDerivedLayerParam|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaDerivedLayerParam_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDerivedLayerParamp result= (oaInterPointerAppDef_oaDerivedLayerParam::find(p1.Data()));
            return PyoaInterPointerAppDef_oaDerivedLayerParam_FromoaInterPointerAppDef_oaDerivedLayerParam(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDerivedLayerParamp result= (oaInterPointerAppDef_oaDerivedLayerParam::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDerivedLayerParam_FromoaInterPointerAppDef_oaDerivedLayerParam(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDerivedLayerParam, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDerivedLayerParam_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaDerivedLayerParam, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDerivedLayerParam* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDerivedLayerParam|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDerivedLayerParam* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDerivedLayerParam|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDerivedLayerParam* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDerivedLayerParam|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDerivedLayerParam* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDerivedLayerParam|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaDerivedLayerParam_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDerivedLayerParamp result= (oaInterPointerAppDef_oaDerivedLayerParam::get(p1.Data()));
            return PyoaInterPointerAppDef_oaDerivedLayerParam_FromoaInterPointerAppDef_oaDerivedLayerParam(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaDerivedLayerParamp result= (oaInterPointerAppDef_oaDerivedLayerParam::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDerivedLayerParam_FromoaInterPointerAppDef_oaDerivedLayerParam(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDerivedLayerParamp result= (oaInterPointerAppDef_oaDerivedLayerParam::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDerivedLayerParam_FromoaInterPointerAppDef_oaDerivedLayerParam(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDerivedLayerParamp result= (oaInterPointerAppDef_oaDerivedLayerParam::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaDerivedLayerParam_FromoaInterPointerAppDef_oaDerivedLayerParam(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDerivedLayerParam, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaDerivedLayerParam_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaDerivedLayerParam_static_find,METH_VARARGS,oaInterPointerAppDef_oaDerivedLayerParam_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaDerivedLayerParam_static_get,METH_VARARGS,oaInterPointerAppDef_oaDerivedLayerParam_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaDerivedLayerParam_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaDerivedLayerParam_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaDerivedLayerParam\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaDerivedLayerParam",
           (PyObject*)(&PyoaInterPointerAppDef_oaDerivedLayerParam_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaDerivedLayerParam\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaDerivedLayerParam_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaDerivedLayerParam_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaDesign
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDesign_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaDesign_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaDesignObject* self = (PyoaInterPointerAppDef_oaDesignObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaDesign)
    {
        PyParamoaInterPointerAppDef_oaDesign p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaDesign_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaDesign, Choices are:\n"
        "    (oaInterPointerAppDef_oaDesign)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaDesign_tp_dealloc(PyoaInterPointerAppDef_oaDesignObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDesign_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaDesign value;
    int convert_status=PyoaInterPointerAppDef_oaDesign_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[51];
    sprintf(buffer,"<oaInterPointerAppDef_oaDesign::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaDesign_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaDesign v1;
    PyParamoaInterPointerAppDef_oaDesign v2;
    int convert_status1=PyoaInterPointerAppDef_oaDesign_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaDesign_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaDesign_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaDesign* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaDesign_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaDesign**) ((PyoaInterPointerAppDef_oaDesignObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaDesign Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDesign_FromoaInterPointerAppDef_oaDesign(oaInterPointerAppDef_oaDesign** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaDesign* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaDesign_Type.tp_alloc(&PyoaInterPointerAppDef_oaDesign_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaDesignObject* self = (PyoaInterPointerAppDef_oaDesignObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDesign_FromoaInterPointerAppDef_oaDesign(oaInterPointerAppDef_oaDesign* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaDesign_Type.tp_alloc(&PyoaInterPointerAppDef_oaDesign_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaDesignObject* self = (PyoaInterPointerAppDef_oaDesignObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesign_get_doc[] = 
"Class: oaInterPointerAppDef_oaDesign, Function: get\n"
"  Paramegers: (oaDesign)\n"
"    Calls: oaObject* get(const oaDesign* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaDesign,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDesign_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDesign data;
    int convert_status=PyoaInterPointerAppDef_oaDesign_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDesignObject* self=(PyoaInterPointerAppDef_oaDesignObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDesign p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaDesign_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesign_set_doc[] = 
"Class: oaInterPointerAppDef_oaDesign, Function: set\n"
"  Paramegers: (oaDesign,oaObject)\n"
"    Calls: void set(oaDesign* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaDesign,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDesign_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDesign data;
    int convert_status=PyoaInterPointerAppDef_oaDesign_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDesignObject* self=(PyoaInterPointerAppDef_oaDesignObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDesign p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaDesign_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesign_isNull_doc[] =
"Class: oaInterPointerAppDef_oaDesign, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaDesign_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaDesign data;
    int convert_status=PyoaInterPointerAppDef_oaDesign_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaDesign_assign_doc[] = 
"Class: oaInterPointerAppDef_oaDesign, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaDesign_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaDesign data;
  int convert_status=PyoaInterPointerAppDef_oaDesign_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaDesign p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaDesign_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaDesign_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaDesign_get,METH_VARARGS,oaInterPointerAppDef_oaDesign_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaDesign_set,METH_VARARGS,oaInterPointerAppDef_oaDesign_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaDesign_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaDesign_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaDesign_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaDesign_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesign_doc[] = 
"Class: oaInterPointerAppDef_oaDesign\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaDesign)\n"
"    Calls: (const oaInterPointerAppDef_oaDesign&)\n"
"    Signature: oaInterPointerAppDef_oaDesign||cref-oaInterPointerAppDef_oaDesign,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaDesign_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaDesign",
    sizeof(PyoaInterPointerAppDef_oaDesignObject),
    0,
    (destructor)oaInterPointerAppDef_oaDesign_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaDesign_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaDesign_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaDesign_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaDesign_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaDesign_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesign_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaDesign, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDesign* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDesign|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDesign* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDesign|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaDesign_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDesignp result= (oaInterPointerAppDef_oaDesign::find(p1.Data()));
            return PyoaInterPointerAppDef_oaDesign_FromoaInterPointerAppDef_oaDesign(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDesignp result= (oaInterPointerAppDef_oaDesign::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDesign_FromoaInterPointerAppDef_oaDesign(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDesign, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesign_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaDesign, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDesign* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDesign|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDesign* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDesign|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDesign* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDesign|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDesign* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDesign|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaDesign_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDesignp result= (oaInterPointerAppDef_oaDesign::get(p1.Data()));
            return PyoaInterPointerAppDef_oaDesign_FromoaInterPointerAppDef_oaDesign(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaDesignp result= (oaInterPointerAppDef_oaDesign::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDesign_FromoaInterPointerAppDef_oaDesign(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDesignp result= (oaInterPointerAppDef_oaDesign::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDesign_FromoaInterPointerAppDef_oaDesign(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDesignp result= (oaInterPointerAppDef_oaDesign::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaDesign_FromoaInterPointerAppDef_oaDesign(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDesign, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaDesign_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaDesign_static_find,METH_VARARGS,oaInterPointerAppDef_oaDesign_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaDesign_static_get,METH_VARARGS,oaInterPointerAppDef_oaDesign_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaDesign_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaDesign_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaDesign\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaDesign",
           (PyObject*)(&PyoaInterPointerAppDef_oaDesign_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaDesign\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaDesign_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaDesign_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaDesignInst
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDesignInst_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaDesignInst_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaDesignInstObject* self = (PyoaInterPointerAppDef_oaDesignInstObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaDesignInst)
    {
        PyParamoaInterPointerAppDef_oaDesignInst p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaDesignInst_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaDesignInst, Choices are:\n"
        "    (oaInterPointerAppDef_oaDesignInst)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaDesignInst_tp_dealloc(PyoaInterPointerAppDef_oaDesignInstObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDesignInst_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaDesignInst value;
    int convert_status=PyoaInterPointerAppDef_oaDesignInst_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[55];
    sprintf(buffer,"<oaInterPointerAppDef_oaDesignInst::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaDesignInst_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaDesignInst v1;
    PyParamoaInterPointerAppDef_oaDesignInst v2;
    int convert_status1=PyoaInterPointerAppDef_oaDesignInst_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaDesignInst_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaDesignInst_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaDesignInst* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaDesignInst_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaDesignInst**) ((PyoaInterPointerAppDef_oaDesignInstObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaDesignInst Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDesignInst_FromoaInterPointerAppDef_oaDesignInst(oaInterPointerAppDef_oaDesignInst** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaDesignInst* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaDesignInst_Type.tp_alloc(&PyoaInterPointerAppDef_oaDesignInst_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaDesignInstObject* self = (PyoaInterPointerAppDef_oaDesignInstObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDesignInst_FromoaInterPointerAppDef_oaDesignInst(oaInterPointerAppDef_oaDesignInst* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaDesignInst_Type.tp_alloc(&PyoaInterPointerAppDef_oaDesignInst_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaDesignInstObject* self = (PyoaInterPointerAppDef_oaDesignInstObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesignInst_get_doc[] = 
"Class: oaInterPointerAppDef_oaDesignInst, Function: get\n"
"  Paramegers: (oaDesignInst)\n"
"    Calls: oaObject* get(const oaDesignInst* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaDesignInst,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDesignInst_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDesignInst data;
    int convert_status=PyoaInterPointerAppDef_oaDesignInst_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDesignInstObject* self=(PyoaInterPointerAppDef_oaDesignInstObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDesignInst p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaDesignInst_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesignInst_set_doc[] = 
"Class: oaInterPointerAppDef_oaDesignInst, Function: set\n"
"  Paramegers: (oaDesignInst,oaObject)\n"
"    Calls: void set(oaDesignInst* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaDesignInst,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDesignInst_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDesignInst data;
    int convert_status=PyoaInterPointerAppDef_oaDesignInst_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDesignInstObject* self=(PyoaInterPointerAppDef_oaDesignInstObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDesignInst p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaDesignInst_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesignInst_isNull_doc[] =
"Class: oaInterPointerAppDef_oaDesignInst, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaDesignInst_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaDesignInst data;
    int convert_status=PyoaInterPointerAppDef_oaDesignInst_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaDesignInst_assign_doc[] = 
"Class: oaInterPointerAppDef_oaDesignInst, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaDesignInst_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaDesignInst data;
  int convert_status=PyoaInterPointerAppDef_oaDesignInst_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaDesignInst p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaDesignInst_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaDesignInst_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaDesignInst_get,METH_VARARGS,oaInterPointerAppDef_oaDesignInst_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaDesignInst_set,METH_VARARGS,oaInterPointerAppDef_oaDesignInst_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaDesignInst_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaDesignInst_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaDesignInst_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaDesignInst_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesignInst_doc[] = 
"Class: oaInterPointerAppDef_oaDesignInst\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaDesignInst)\n"
"    Calls: (const oaInterPointerAppDef_oaDesignInst&)\n"
"    Signature: oaInterPointerAppDef_oaDesignInst||cref-oaInterPointerAppDef_oaDesignInst,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaDesignInst_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaDesignInst",
    sizeof(PyoaInterPointerAppDef_oaDesignInstObject),
    0,
    (destructor)oaInterPointerAppDef_oaDesignInst_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaDesignInst_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaDesignInst_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaDesignInst_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaDesignInst_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaDesignInst_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesignInst_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaDesignInst, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDesignInst* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDesignInst|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDesignInst* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDesignInst|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaDesignInst_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDesignInstp result= (oaInterPointerAppDef_oaDesignInst::find(p1.Data()));
            return PyoaInterPointerAppDef_oaDesignInst_FromoaInterPointerAppDef_oaDesignInst(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDesignInstp result= (oaInterPointerAppDef_oaDesignInst::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDesignInst_FromoaInterPointerAppDef_oaDesignInst(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDesignInst, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDesignInst_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaDesignInst, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDesignInst* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDesignInst|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDesignInst* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDesignInst|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDesignInst* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDesignInst|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDesignInst* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDesignInst|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaDesignInst_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDesignInstp result= (oaInterPointerAppDef_oaDesignInst::get(p1.Data()));
            return PyoaInterPointerAppDef_oaDesignInst_FromoaInterPointerAppDef_oaDesignInst(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaDesignInstp result= (oaInterPointerAppDef_oaDesignInst::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDesignInst_FromoaInterPointerAppDef_oaDesignInst(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDesignInstp result= (oaInterPointerAppDef_oaDesignInst::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDesignInst_FromoaInterPointerAppDef_oaDesignInst(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDesignInstp result= (oaInterPointerAppDef_oaDesignInst::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaDesignInst_FromoaInterPointerAppDef_oaDesignInst(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDesignInst, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaDesignInst_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaDesignInst_static_find,METH_VARARGS,oaInterPointerAppDef_oaDesignInst_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaDesignInst_static_get,METH_VARARGS,oaInterPointerAppDef_oaDesignInst_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaDesignInst_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaDesignInst_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaDesignInst\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaDesignInst",
           (PyObject*)(&PyoaInterPointerAppDef_oaDesignInst_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaDesignInst\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaDesignInst_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaDesignInst_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaDevice
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDevice_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaDevice_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaDeviceObject* self = (PyoaInterPointerAppDef_oaDeviceObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaDevice)
    {
        PyParamoaInterPointerAppDef_oaDevice p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaDevice_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaDevice, Choices are:\n"
        "    (oaInterPointerAppDef_oaDevice)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaDevice_tp_dealloc(PyoaInterPointerAppDef_oaDeviceObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaDevice_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaDevice value;
    int convert_status=PyoaInterPointerAppDef_oaDevice_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[51];
    sprintf(buffer,"<oaInterPointerAppDef_oaDevice::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaDevice_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaDevice v1;
    PyParamoaInterPointerAppDef_oaDevice v2;
    int convert_status1=PyoaInterPointerAppDef_oaDevice_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaDevice_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaDevice_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaDevice* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaDevice_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaDevice**) ((PyoaInterPointerAppDef_oaDeviceObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaDevice Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDevice_FromoaInterPointerAppDef_oaDevice(oaInterPointerAppDef_oaDevice** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaDevice* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaDevice_Type.tp_alloc(&PyoaInterPointerAppDef_oaDevice_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaDeviceObject* self = (PyoaInterPointerAppDef_oaDeviceObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaDevice_FromoaInterPointerAppDef_oaDevice(oaInterPointerAppDef_oaDevice* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaDevice_Type.tp_alloc(&PyoaInterPointerAppDef_oaDevice_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaDeviceObject* self = (PyoaInterPointerAppDef_oaDeviceObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDevice_get_doc[] = 
"Class: oaInterPointerAppDef_oaDevice, Function: get\n"
"  Paramegers: (oaDevice)\n"
"    Calls: oaObject* get(const oaDevice* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaDevice,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDevice_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDevice data;
    int convert_status=PyoaInterPointerAppDef_oaDevice_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDeviceObject* self=(PyoaInterPointerAppDef_oaDeviceObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDevice p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaDevice_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDevice_set_doc[] = 
"Class: oaInterPointerAppDef_oaDevice, Function: set\n"
"  Paramegers: (oaDevice,oaObject)\n"
"    Calls: void set(oaDevice* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaDevice,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaDevice_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaDevice data;
    int convert_status=PyoaInterPointerAppDef_oaDevice_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaDeviceObject* self=(PyoaInterPointerAppDef_oaDeviceObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaDevice p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaDevice_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDevice_isNull_doc[] =
"Class: oaInterPointerAppDef_oaDevice, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaDevice_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaDevice data;
    int convert_status=PyoaInterPointerAppDef_oaDevice_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaDevice_assign_doc[] = 
"Class: oaInterPointerAppDef_oaDevice, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaDevice_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaDevice data;
  int convert_status=PyoaInterPointerAppDef_oaDevice_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaDevice p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaDevice_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaDevice_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaDevice_get,METH_VARARGS,oaInterPointerAppDef_oaDevice_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaDevice_set,METH_VARARGS,oaInterPointerAppDef_oaDevice_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaDevice_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaDevice_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaDevice_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaDevice_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDevice_doc[] = 
"Class: oaInterPointerAppDef_oaDevice\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaDevice)\n"
"    Calls: (const oaInterPointerAppDef_oaDevice&)\n"
"    Signature: oaInterPointerAppDef_oaDevice||cref-oaInterPointerAppDef_oaDevice,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaDevice_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaDevice",
    sizeof(PyoaInterPointerAppDef_oaDeviceObject),
    0,
    (destructor)oaInterPointerAppDef_oaDevice_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaDevice_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaDevice_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaDevice_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaDevice_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaDevice_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDevice_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaDevice, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDevice* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDevice|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDevice* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaDevice|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaDevice_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDevicep result= (oaInterPointerAppDef_oaDevice::find(p1.Data()));
            return PyoaInterPointerAppDef_oaDevice_FromoaInterPointerAppDef_oaDevice(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDevicep result= (oaInterPointerAppDef_oaDevice::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDevice_FromoaInterPointerAppDef_oaDevice(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDevice, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaDevice_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaDevice, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaDevice* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDevice|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDevice* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDevice|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaDevice* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDevice|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaDevice* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaDevice|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaDevice_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaDevicep result= (oaInterPointerAppDef_oaDevice::get(p1.Data()));
            return PyoaInterPointerAppDef_oaDevice_FromoaInterPointerAppDef_oaDevice(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaDevicep result= (oaInterPointerAppDef_oaDevice::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDevice_FromoaInterPointerAppDef_oaDevice(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDevicep result= (oaInterPointerAppDef_oaDevice::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaDevice_FromoaInterPointerAppDef_oaDevice(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaDevicep result= (oaInterPointerAppDef_oaDevice::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaDevice_FromoaInterPointerAppDef_oaDevice(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaDevice, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaDevice_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaDevice_static_find,METH_VARARGS,oaInterPointerAppDef_oaDevice_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaDevice_static_get,METH_VARARGS,oaInterPointerAppDef_oaDevice_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaDevice_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaDevice_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaDevice\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaDevice",
           (PyObject*)(&PyoaInterPointerAppDef_oaDevice_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaDevice\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaDevice_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaDevice_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaElmore
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaElmore_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaElmore_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaElmoreObject* self = (PyoaInterPointerAppDef_oaElmoreObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaElmore)
    {
        PyParamoaInterPointerAppDef_oaElmore p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaElmore_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaElmore, Choices are:\n"
        "    (oaInterPointerAppDef_oaElmore)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaElmore_tp_dealloc(PyoaInterPointerAppDef_oaElmoreObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaElmore_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaElmore value;
    int convert_status=PyoaInterPointerAppDef_oaElmore_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[51];
    sprintf(buffer,"<oaInterPointerAppDef_oaElmore::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaElmore_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaElmore v1;
    PyParamoaInterPointerAppDef_oaElmore v2;
    int convert_status1=PyoaInterPointerAppDef_oaElmore_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaElmore_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaElmore_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaElmore* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaElmore_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaElmore**) ((PyoaInterPointerAppDef_oaElmoreObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaElmore Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaElmore_FromoaInterPointerAppDef_oaElmore(oaInterPointerAppDef_oaElmore** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaElmore* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaElmore_Type.tp_alloc(&PyoaInterPointerAppDef_oaElmore_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaElmoreObject* self = (PyoaInterPointerAppDef_oaElmoreObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaElmore_FromoaInterPointerAppDef_oaElmore(oaInterPointerAppDef_oaElmore* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaElmore_Type.tp_alloc(&PyoaInterPointerAppDef_oaElmore_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaElmoreObject* self = (PyoaInterPointerAppDef_oaElmoreObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaElmore_get_doc[] = 
"Class: oaInterPointerAppDef_oaElmore, Function: get\n"
"  Paramegers: (oaElmore)\n"
"    Calls: oaObject* get(const oaElmore* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaElmore,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaElmore_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaElmore data;
    int convert_status=PyoaInterPointerAppDef_oaElmore_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaElmoreObject* self=(PyoaInterPointerAppDef_oaElmoreObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaElmore p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaElmore_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaElmore_set_doc[] = 
"Class: oaInterPointerAppDef_oaElmore, Function: set\n"
"  Paramegers: (oaElmore,oaObject)\n"
"    Calls: void set(oaElmore* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaElmore,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaElmore_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaElmore data;
    int convert_status=PyoaInterPointerAppDef_oaElmore_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaElmoreObject* self=(PyoaInterPointerAppDef_oaElmoreObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaElmore p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaElmore_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaElmore_isNull_doc[] =
"Class: oaInterPointerAppDef_oaElmore, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaElmore_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaElmore data;
    int convert_status=PyoaInterPointerAppDef_oaElmore_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaElmore_assign_doc[] = 
"Class: oaInterPointerAppDef_oaElmore, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaElmore_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaElmore data;
  int convert_status=PyoaInterPointerAppDef_oaElmore_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaElmore p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaElmore_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaElmore_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaElmore_get,METH_VARARGS,oaInterPointerAppDef_oaElmore_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaElmore_set,METH_VARARGS,oaInterPointerAppDef_oaElmore_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaElmore_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaElmore_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaElmore_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaElmore_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaElmore_doc[] = 
"Class: oaInterPointerAppDef_oaElmore\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaElmore)\n"
"    Calls: (const oaInterPointerAppDef_oaElmore&)\n"
"    Signature: oaInterPointerAppDef_oaElmore||cref-oaInterPointerAppDef_oaElmore,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaElmore_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaElmore",
    sizeof(PyoaInterPointerAppDef_oaElmoreObject),
    0,
    (destructor)oaInterPointerAppDef_oaElmore_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaElmore_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaElmore_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaElmore_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaElmore_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaElmore_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaElmore_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaElmore, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaElmore* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaElmore|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaElmore* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaElmore|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaElmore_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaElmorep result= (oaInterPointerAppDef_oaElmore::find(p1.Data()));
            return PyoaInterPointerAppDef_oaElmore_FromoaInterPointerAppDef_oaElmore(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaElmorep result= (oaInterPointerAppDef_oaElmore::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaElmore_FromoaInterPointerAppDef_oaElmore(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaElmore, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaElmore_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaElmore, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaElmore* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaElmore|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaElmore* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaElmore|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaElmore* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaElmore|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaElmore* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaElmore|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaElmore_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaElmorep result= (oaInterPointerAppDef_oaElmore::get(p1.Data()));
            return PyoaInterPointerAppDef_oaElmore_FromoaInterPointerAppDef_oaElmore(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaElmorep result= (oaInterPointerAppDef_oaElmore::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaElmore_FromoaInterPointerAppDef_oaElmore(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaElmorep result= (oaInterPointerAppDef_oaElmore::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaElmore_FromoaInterPointerAppDef_oaElmore(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaElmorep result= (oaInterPointerAppDef_oaElmore::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaElmore_FromoaInterPointerAppDef_oaElmore(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaElmore, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaElmore_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaElmore_static_find,METH_VARARGS,oaInterPointerAppDef_oaElmore_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaElmore_static_get,METH_VARARGS,oaInterPointerAppDef_oaElmore_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaElmore_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaElmore_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaElmore\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaElmore",
           (PyObject*)(&PyoaInterPointerAppDef_oaElmore_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaElmore\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaElmore_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaElmore_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaFigGroup
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaFigGroup_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaFigGroup_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaFigGroupObject* self = (PyoaInterPointerAppDef_oaFigGroupObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaFigGroup)
    {
        PyParamoaInterPointerAppDef_oaFigGroup p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaFigGroup_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaFigGroup, Choices are:\n"
        "    (oaInterPointerAppDef_oaFigGroup)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaFigGroup_tp_dealloc(PyoaInterPointerAppDef_oaFigGroupObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaFigGroup_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaFigGroup value;
    int convert_status=PyoaInterPointerAppDef_oaFigGroup_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[53];
    sprintf(buffer,"<oaInterPointerAppDef_oaFigGroup::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaFigGroup_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaFigGroup v1;
    PyParamoaInterPointerAppDef_oaFigGroup v2;
    int convert_status1=PyoaInterPointerAppDef_oaFigGroup_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaFigGroup_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaFigGroup_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaFigGroup* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaFigGroup_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaFigGroup**) ((PyoaInterPointerAppDef_oaFigGroupObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaFigGroup Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaFigGroup_FromoaInterPointerAppDef_oaFigGroup(oaInterPointerAppDef_oaFigGroup** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaFigGroup* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaFigGroup_Type.tp_alloc(&PyoaInterPointerAppDef_oaFigGroup_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaFigGroupObject* self = (PyoaInterPointerAppDef_oaFigGroupObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaFigGroup_FromoaInterPointerAppDef_oaFigGroup(oaInterPointerAppDef_oaFigGroup* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaFigGroup_Type.tp_alloc(&PyoaInterPointerAppDef_oaFigGroup_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaFigGroupObject* self = (PyoaInterPointerAppDef_oaFigGroupObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroup_get_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroup, Function: get\n"
"  Paramegers: (oaFigGroup)\n"
"    Calls: oaObject* get(const oaFigGroup* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaFigGroup,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroup_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaFigGroup data;
    int convert_status=PyoaInterPointerAppDef_oaFigGroup_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaFigGroupObject* self=(PyoaInterPointerAppDef_oaFigGroupObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaFigGroup p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaFigGroup_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroup_set_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroup, Function: set\n"
"  Paramegers: (oaFigGroup,oaObject)\n"
"    Calls: void set(oaFigGroup* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaFigGroup,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroup_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaFigGroup data;
    int convert_status=PyoaInterPointerAppDef_oaFigGroup_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaFigGroupObject* self=(PyoaInterPointerAppDef_oaFigGroupObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaFigGroup p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaFigGroup_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroup_isNull_doc[] =
"Class: oaInterPointerAppDef_oaFigGroup, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroup_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaFigGroup data;
    int convert_status=PyoaInterPointerAppDef_oaFigGroup_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaFigGroup_assign_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroup, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroup_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaFigGroup data;
  int convert_status=PyoaInterPointerAppDef_oaFigGroup_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaFigGroup p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaFigGroup_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaFigGroup_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaFigGroup_get,METH_VARARGS,oaInterPointerAppDef_oaFigGroup_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaFigGroup_set,METH_VARARGS,oaInterPointerAppDef_oaFigGroup_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaFigGroup_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaFigGroup_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaFigGroup_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaFigGroup_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroup_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroup\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaFigGroup)\n"
"    Calls: (const oaInterPointerAppDef_oaFigGroup&)\n"
"    Signature: oaInterPointerAppDef_oaFigGroup||cref-oaInterPointerAppDef_oaFigGroup,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaFigGroup_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaFigGroup",
    sizeof(PyoaInterPointerAppDef_oaFigGroupObject),
    0,
    (destructor)oaInterPointerAppDef_oaFigGroup_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaFigGroup_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaFigGroup_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaFigGroup_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaFigGroup_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaFigGroup_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroup_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroup, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaFigGroup* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaFigGroup|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaFigGroup* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaFigGroup|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroup_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaFigGroupp result= (oaInterPointerAppDef_oaFigGroup::find(p1.Data()));
            return PyoaInterPointerAppDef_oaFigGroup_FromoaInterPointerAppDef_oaFigGroup(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFigGroupp result= (oaInterPointerAppDef_oaFigGroup::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFigGroup_FromoaInterPointerAppDef_oaFigGroup(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaFigGroup, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroup_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroup, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaFigGroup* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFigGroup|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaFigGroup* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFigGroup|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaFigGroup* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFigGroup|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaFigGroup* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFigGroup|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroup_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaFigGroupp result= (oaInterPointerAppDef_oaFigGroup::get(p1.Data()));
            return PyoaInterPointerAppDef_oaFigGroup_FromoaInterPointerAppDef_oaFigGroup(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaFigGroupp result= (oaInterPointerAppDef_oaFigGroup::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFigGroup_FromoaInterPointerAppDef_oaFigGroup(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFigGroupp result= (oaInterPointerAppDef_oaFigGroup::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFigGroup_FromoaInterPointerAppDef_oaFigGroup(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFigGroupp result= (oaInterPointerAppDef_oaFigGroup::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaFigGroup_FromoaInterPointerAppDef_oaFigGroup(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaFigGroup, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaFigGroup_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaFigGroup_static_find,METH_VARARGS,oaInterPointerAppDef_oaFigGroup_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaFigGroup_static_get,METH_VARARGS,oaInterPointerAppDef_oaFigGroup_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaFigGroup_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaFigGroup_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaFigGroup\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaFigGroup",
           (PyObject*)(&PyoaInterPointerAppDef_oaFigGroup_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaFigGroup\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaFigGroup_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaFigGroup_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaFigGroupMem
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaFigGroupMem_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaFigGroupMem_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaFigGroupMemObject* self = (PyoaInterPointerAppDef_oaFigGroupMemObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaFigGroupMem)
    {
        PyParamoaInterPointerAppDef_oaFigGroupMem p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaFigGroupMem_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaFigGroupMem, Choices are:\n"
        "    (oaInterPointerAppDef_oaFigGroupMem)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaFigGroupMem_tp_dealloc(PyoaInterPointerAppDef_oaFigGroupMemObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaFigGroupMem_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaFigGroupMem value;
    int convert_status=PyoaInterPointerAppDef_oaFigGroupMem_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[56];
    sprintf(buffer,"<oaInterPointerAppDef_oaFigGroupMem::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaFigGroupMem_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaFigGroupMem v1;
    PyParamoaInterPointerAppDef_oaFigGroupMem v2;
    int convert_status1=PyoaInterPointerAppDef_oaFigGroupMem_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaFigGroupMem_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaFigGroupMem_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaFigGroupMem* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaFigGroupMem_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaFigGroupMem**) ((PyoaInterPointerAppDef_oaFigGroupMemObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaFigGroupMem Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaFigGroupMem_FromoaInterPointerAppDef_oaFigGroupMem(oaInterPointerAppDef_oaFigGroupMem** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaFigGroupMem* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaFigGroupMem_Type.tp_alloc(&PyoaInterPointerAppDef_oaFigGroupMem_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaFigGroupMemObject* self = (PyoaInterPointerAppDef_oaFigGroupMemObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaFigGroupMem_FromoaInterPointerAppDef_oaFigGroupMem(oaInterPointerAppDef_oaFigGroupMem* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaFigGroupMem_Type.tp_alloc(&PyoaInterPointerAppDef_oaFigGroupMem_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaFigGroupMemObject* self = (PyoaInterPointerAppDef_oaFigGroupMemObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroupMem_get_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroupMem, Function: get\n"
"  Paramegers: (oaFigGroupMem)\n"
"    Calls: oaObject* get(const oaFigGroupMem* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaFigGroupMem,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroupMem_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaFigGroupMem data;
    int convert_status=PyoaInterPointerAppDef_oaFigGroupMem_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaFigGroupMemObject* self=(PyoaInterPointerAppDef_oaFigGroupMemObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaFigGroupMem p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaFigGroupMem_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroupMem_set_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroupMem, Function: set\n"
"  Paramegers: (oaFigGroupMem,oaObject)\n"
"    Calls: void set(oaFigGroupMem* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaFigGroupMem,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroupMem_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaFigGroupMem data;
    int convert_status=PyoaInterPointerAppDef_oaFigGroupMem_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaFigGroupMemObject* self=(PyoaInterPointerAppDef_oaFigGroupMemObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaFigGroupMem p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaFigGroupMem_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroupMem_isNull_doc[] =
"Class: oaInterPointerAppDef_oaFigGroupMem, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroupMem_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaFigGroupMem data;
    int convert_status=PyoaInterPointerAppDef_oaFigGroupMem_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaFigGroupMem_assign_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroupMem, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroupMem_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaFigGroupMem data;
  int convert_status=PyoaInterPointerAppDef_oaFigGroupMem_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaFigGroupMem p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaFigGroupMem_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaFigGroupMem_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaFigGroupMem_get,METH_VARARGS,oaInterPointerAppDef_oaFigGroupMem_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaFigGroupMem_set,METH_VARARGS,oaInterPointerAppDef_oaFigGroupMem_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaFigGroupMem_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaFigGroupMem_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaFigGroupMem_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaFigGroupMem_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroupMem_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroupMem\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaFigGroupMem)\n"
"    Calls: (const oaInterPointerAppDef_oaFigGroupMem&)\n"
"    Signature: oaInterPointerAppDef_oaFigGroupMem||cref-oaInterPointerAppDef_oaFigGroupMem,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaFigGroupMem_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaFigGroupMem",
    sizeof(PyoaInterPointerAppDef_oaFigGroupMemObject),
    0,
    (destructor)oaInterPointerAppDef_oaFigGroupMem_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaFigGroupMem_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaFigGroupMem_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaFigGroupMem_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaFigGroupMem_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaFigGroupMem_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroupMem_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroupMem, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaFigGroupMem* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaFigGroupMem|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaFigGroupMem* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaFigGroupMem|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroupMem_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaFigGroupMemp result= (oaInterPointerAppDef_oaFigGroupMem::find(p1.Data()));
            return PyoaInterPointerAppDef_oaFigGroupMem_FromoaInterPointerAppDef_oaFigGroupMem(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFigGroupMemp result= (oaInterPointerAppDef_oaFigGroupMem::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFigGroupMem_FromoaInterPointerAppDef_oaFigGroupMem(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaFigGroupMem, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFigGroupMem_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaFigGroupMem, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaFigGroupMem* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFigGroupMem|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaFigGroupMem* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFigGroupMem|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaFigGroupMem* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFigGroupMem|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaFigGroupMem* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFigGroupMem|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaFigGroupMem_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaFigGroupMemp result= (oaInterPointerAppDef_oaFigGroupMem::get(p1.Data()));
            return PyoaInterPointerAppDef_oaFigGroupMem_FromoaInterPointerAppDef_oaFigGroupMem(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaFigGroupMemp result= (oaInterPointerAppDef_oaFigGroupMem::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFigGroupMem_FromoaInterPointerAppDef_oaFigGroupMem(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFigGroupMemp result= (oaInterPointerAppDef_oaFigGroupMem::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFigGroupMem_FromoaInterPointerAppDef_oaFigGroupMem(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFigGroupMemp result= (oaInterPointerAppDef_oaFigGroupMem::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaFigGroupMem_FromoaInterPointerAppDef_oaFigGroupMem(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaFigGroupMem, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaFigGroupMem_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaFigGroupMem_static_find,METH_VARARGS,oaInterPointerAppDef_oaFigGroupMem_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaFigGroupMem_static_get,METH_VARARGS,oaInterPointerAppDef_oaFigGroupMem_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaFigGroupMem_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaFigGroupMem_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaFigGroupMem\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaFigGroupMem",
           (PyObject*)(&PyoaInterPointerAppDef_oaFigGroupMem_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaFigGroupMem\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaFigGroupMem_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaFigGroupMem_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaFrame
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaFrame_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaFrame_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaFrameObject* self = (PyoaInterPointerAppDef_oaFrameObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaFrame)
    {
        PyParamoaInterPointerAppDef_oaFrame p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaFrame_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaFrame, Choices are:\n"
        "    (oaInterPointerAppDef_oaFrame)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaFrame_tp_dealloc(PyoaInterPointerAppDef_oaFrameObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaFrame_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaFrame value;
    int convert_status=PyoaInterPointerAppDef_oaFrame_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[50];
    sprintf(buffer,"<oaInterPointerAppDef_oaFrame::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaFrame_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaFrame v1;
    PyParamoaInterPointerAppDef_oaFrame v2;
    int convert_status1=PyoaInterPointerAppDef_oaFrame_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaFrame_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaFrame_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaFrame* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaFrame_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaFrame**) ((PyoaInterPointerAppDef_oaFrameObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaFrame Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaFrame_FromoaInterPointerAppDef_oaFrame(oaInterPointerAppDef_oaFrame** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaFrame* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaFrame_Type.tp_alloc(&PyoaInterPointerAppDef_oaFrame_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaFrameObject* self = (PyoaInterPointerAppDef_oaFrameObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaFrame_FromoaInterPointerAppDef_oaFrame(oaInterPointerAppDef_oaFrame* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaFrame_Type.tp_alloc(&PyoaInterPointerAppDef_oaFrame_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaFrameObject* self = (PyoaInterPointerAppDef_oaFrameObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrame_get_doc[] = 
"Class: oaInterPointerAppDef_oaFrame, Function: get\n"
"  Paramegers: (oaFrame)\n"
"    Calls: oaObject* get(const oaFrame* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaFrame,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaFrame_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaFrame data;
    int convert_status=PyoaInterPointerAppDef_oaFrame_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaFrameObject* self=(PyoaInterPointerAppDef_oaFrameObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaFrame p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaFrame_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrame_set_doc[] = 
"Class: oaInterPointerAppDef_oaFrame, Function: set\n"
"  Paramegers: (oaFrame,oaObject)\n"
"    Calls: void set(oaFrame* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaFrame,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaFrame_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaFrame data;
    int convert_status=PyoaInterPointerAppDef_oaFrame_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaFrameObject* self=(PyoaInterPointerAppDef_oaFrameObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaFrame p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaFrame_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrame_isNull_doc[] =
"Class: oaInterPointerAppDef_oaFrame, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaFrame_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaFrame data;
    int convert_status=PyoaInterPointerAppDef_oaFrame_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaFrame_assign_doc[] = 
"Class: oaInterPointerAppDef_oaFrame, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaFrame_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaFrame data;
  int convert_status=PyoaInterPointerAppDef_oaFrame_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaFrame p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaFrame_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaFrame_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaFrame_get,METH_VARARGS,oaInterPointerAppDef_oaFrame_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaFrame_set,METH_VARARGS,oaInterPointerAppDef_oaFrame_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaFrame_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaFrame_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaFrame_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaFrame_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrame_doc[] = 
"Class: oaInterPointerAppDef_oaFrame\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaFrame)\n"
"    Calls: (const oaInterPointerAppDef_oaFrame&)\n"
"    Signature: oaInterPointerAppDef_oaFrame||cref-oaInterPointerAppDef_oaFrame,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaFrame_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaFrame",
    sizeof(PyoaInterPointerAppDef_oaFrameObject),
    0,
    (destructor)oaInterPointerAppDef_oaFrame_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaFrame_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaFrame_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaFrame_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaFrame_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaFrame_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrame_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaFrame, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaFrame* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaFrame|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaFrame* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaFrame|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaFrame_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaFramep result= (oaInterPointerAppDef_oaFrame::find(p1.Data()));
            return PyoaInterPointerAppDef_oaFrame_FromoaInterPointerAppDef_oaFrame(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFramep result= (oaInterPointerAppDef_oaFrame::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFrame_FromoaInterPointerAppDef_oaFrame(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaFrame, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrame_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaFrame, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaFrame* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFrame|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaFrame* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFrame|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaFrame* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFrame|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaFrame* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFrame|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaFrame_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaFramep result= (oaInterPointerAppDef_oaFrame::get(p1.Data()));
            return PyoaInterPointerAppDef_oaFrame_FromoaInterPointerAppDef_oaFrame(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaFramep result= (oaInterPointerAppDef_oaFrame::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFrame_FromoaInterPointerAppDef_oaFrame(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFramep result= (oaInterPointerAppDef_oaFrame::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFrame_FromoaInterPointerAppDef_oaFrame(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFramep result= (oaInterPointerAppDef_oaFrame::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaFrame_FromoaInterPointerAppDef_oaFrame(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaFrame, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaFrame_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaFrame_static_find,METH_VARARGS,oaInterPointerAppDef_oaFrame_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaFrame_static_get,METH_VARARGS,oaInterPointerAppDef_oaFrame_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaFrame_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaFrame_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaFrame\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaFrame",
           (PyObject*)(&PyoaInterPointerAppDef_oaFrame_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaFrame\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaFrame_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaFrame_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}


/********************************************************************
 *   Copyright 2002-2008  LSI Corporation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 *******************************************************************/

#include "pyoa_header.h"


// ==================================================================
// Wrapper Implementation for Class: oaInterPointerAppDef_oaFrameInst
// ==================================================================


// ==================================================================
// Alloc/Dealloc Routines
// ==================================================================

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaFrameInst_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
  try {
    int is_raw=(type==&PyoaInterPointerAppDef_oaFrameInst_Type);
    PyObject* bself = type->tp_alloc(type,0);
    if (bself == NULL) return bself;
    PyoaInterPointerAppDef_oaFrameInstObject* self = (PyoaInterPointerAppDef_oaFrameInstObject*)bself;
    self->locks = NULL;
    self->borrow = 0;
    static char *kwlist [] = { NULL } ;
    // Case: (oaInterPointerAppDef_oaFrameInst)
    {
        PyParamoaInterPointerAppDef_oaFrameInst p1;
        if (PyArg_ParseTuple(args,(char*)"O&",
              &PyoaInterPointerAppDef_oaFrameInst_Convert,&p1)) {
            self->data=p1.Data();
            self->value=&(self->data);
            return bself;
        }
    }
    PyErr_Clear();
    // Case: ()
    {
        if (PyArg_ParseTuple(args,(char*)"")) {
          self->data=NULL;
          self->value=&(self->data);
          return bself;
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Constructor found for class: oaInterPointerAppDef_oaFrameInst, Choices are:\n"
        "    (oaInterPointerAppDef_oaFrameInst)\n"
    );
    Py_DECREF(self);
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static void
oaInterPointerAppDef_oaFrameInst_tp_dealloc(PyoaInterPointerAppDef_oaFrameInstObject* self)
{
    self->ob_type->tp_free((PyObject*)self);
}

// ------------------------------------------------------------------
static PyObject*
oaInterPointerAppDef_oaFrameInst_tp_repr(PyObject *ob)
{
    PyParamoaInterPointerAppDef_oaFrameInst value;
    int convert_status=PyoaInterPointerAppDef_oaFrameInst_Convert(ob,&value);
    assert(convert_status!=0);
    PyObject* result;

    char buffer[54];
    sprintf(buffer,"<oaInterPointerAppDef_oaFrameInst::" DISPLAY_FORMAT ">",POINTER_AS_DISPLAY(value.DataCall()));
    result=PyString_FromString(buffer);
    return result;
}
        
// ------------------------------------------------------------------
static int
oaInterPointerAppDef_oaFrameInst_tp_compare(PyObject *ob1,PyObject* ob2)
{
    PyParamoaInterPointerAppDef_oaFrameInst v1;
    PyParamoaInterPointerAppDef_oaFrameInst v2;
    int convert_status1=PyoaInterPointerAppDef_oaFrameInst_Convert(ob1,&v1);
    int convert_status2=PyoaInterPointerAppDef_oaFrameInst_Convert(ob2,&v2);
    assert(convert_status1!=0);
    assert(convert_status2!=0);
    if (v1.DataCall()==v2.DataCall()) return 0;
    return 1;
}
        
// ------------------------------------------------------------------
int
PyoaInterPointerAppDef_oaFrameInst_Convert(PyObject* ob,PyParamoaInterPointerAppDef_oaFrameInst* result)
{
    if (ob == NULL) return 1;
    if (PyoaInterPointerAppDef_oaFrameInst_Check(ob)) {
        result->SetData( (oaInterPointerAppDef_oaFrameInst**) ((PyoaInterPointerAppDef_oaFrameInstObject*)ob)->value);
        return 1;
    }
    PyErr_SetString(PyExc_TypeError,
        "Convertion of parameter to class: oaInterPointerAppDef_oaFrameInst Failed");
    return 0;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaFrameInst_FromoaInterPointerAppDef_oaFrameInst(oaInterPointerAppDef_oaFrameInst** value,int borrow,PyObject* lock)
{
    if (value && *value) {
        oaInterPointerAppDef_oaFrameInst* data=*value;
        PyObject* bself = PyoaInterPointerAppDef_oaFrameInst_Type.tp_alloc(&PyoaInterPointerAppDef_oaFrameInst_Type,0);
        if (bself == NULL) return bself;
        PyoaInterPointerAppDef_oaFrameInstObject* self = (PyoaInterPointerAppDef_oaFrameInstObject*)bself;
        self->value = (oaObject**) value;
        self->data = NULL;
        self->locks = NULL;
        self->borrow = 0; // Ignore borrow flag, since we copied
       if (lock) PyoaLockObject(self->locks,lock);
        return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}
// ------------------------------------------------------------------
PyObject* PyoaInterPointerAppDef_oaFrameInst_FromoaInterPointerAppDef_oaFrameInst(oaInterPointerAppDef_oaFrameInst* data)
{
    if (data) {
       PyObject* bself = PyoaInterPointerAppDef_oaFrameInst_Type.tp_alloc(&PyoaInterPointerAppDef_oaFrameInst_Type,0);
       if (bself == NULL) return bself;
       PyoaInterPointerAppDef_oaFrameInstObject* self = (PyoaInterPointerAppDef_oaFrameInstObject*)bself;
       self->data = (oaObject*) data;
       self->value = &(self->data);
       self->borrow = 0; 
       self->locks = NULL;
       return bself;
    }
    Py_INCREF(Py_None);
    return Py_None;
}

// ------------------------------------------------------------------
// FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrameInst_get_doc[] = 
"Class: oaInterPointerAppDef_oaFrameInst, Function: get\n"
"  Paramegers: (oaFrameInst)\n"
"    Calls: oaObject* get(const oaFrameInst* object)\n"
"    Signature: get|ptr-oaObject|cptr-oaFrameInst,\n"
"    This function returns the value associated with this extension for the specified object . The value is returned as a pointer to an oaObject .\n"
"    object\n"
"    The object whose extension value to return\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaFrameInst_get(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaFrameInst data;
    int convert_status=PyoaInterPointerAppDef_oaFrameInst_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaFrameInstObject* self=(PyoaInterPointerAppDef_oaFrameInstObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaFrameInst p1;
    if (PyArg_ParseTuple(args,"O&",
          &PyoaFrameInst_Convert,&p1)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        oaObjectp result= (data.DataCall()->get(p1.Data()));
        return PyoaObject_FromoaObject(result);
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrameInst_set_doc[] = 
"Class: oaInterPointerAppDef_oaFrameInst, Function: set\n"
"  Paramegers: (oaFrameInst,oaObject)\n"
"    Calls: void set(oaFrameInst* object,const oaObject* otherObject)\n"
"    Signature: set|void-void|ptr-oaFrameInst,cptr-oaObject,\n"
"    This function sets the value associated with this extension for the specified object to the specified value .\n"
"    object\n"
"    The object whose extension value to set\n"
"    otherObject\n"
"    The value to assign to the specified object\n"
"    oacInvalidDesignObjectForAppDef\n"
;

static PyObject*
oaInterPointerAppDef_oaFrameInst_set(PyObject* ob, PyObject *args)
{
  try {
    PyParamoaInterPointerAppDef_oaFrameInst data;
    int convert_status=PyoaInterPointerAppDef_oaFrameInst_Convert(ob,&data);
    assert(convert_status!=0);
    PyoaInterPointerAppDef_oaFrameInstObject* self=(PyoaInterPointerAppDef_oaFrameInstObject*)ob;
    if (!PyValidateDbObject(data.Data(),0)) return NULL;

    PyParamoaFrameInst p1;
    PyParamoaObject p2;
    if (PyArg_ParseTuple(args,"O&O&",
          &PyoaFrameInst_Convert,&p1,
          &PyoaObject_Convert,&p2)) {
        if (!PyValidateDbObject(p1.Data(),1)) return NULL;
        if (!PyValidateDbObject(p2.Data(),2)) return NULL;
        data.DataCall()->set(p1.Data(),p2.Data());
        Py_INCREF(Py_None);
        return Py_None;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrameInst_isNull_doc[] =
"Class: oaInterPointerAppDef_oaFrameInst, Function: isNull\n"
"  Parameters: () \n"
"    This functions returns 1 if the DbPointer is NULL, and 0 otherwise.\n"
;

static PyObject*
oaInterPointerAppDef_oaFrameInst_tp_isNull(PyObject* ob, PyObject *args)
{
    PyParamoaInterPointerAppDef_oaFrameInst data;
    int convert_status=PyoaInterPointerAppDef_oaFrameInst_Convert(ob,&data);
    assert(convert_status!=0);
    if (data.DataCall()==NULL)
        return PyInt_FromLong(1);
    else
        return PyInt_FromLong(0);
}
static char oaInterPointerAppDef_oaFrameInst_assign_doc[] = 
"Class: oaInterPointerAppDef_oaFrameInst, Function: set\n"
"  Paramegers: (oaDouble)\n"
"    This function sets the current value.\n"
;

static PyObject*
oaInterPointerAppDef_oaFrameInst_tp_assign(PyObject* ob, PyObject *args)
{
  PyParamoaInterPointerAppDef_oaFrameInst data;
  int convert_status=PyoaInterPointerAppDef_oaFrameInst_Convert(ob,&data);
  assert(convert_status!=0);
  try {
    PyParamoaInterPointerAppDef_oaFrameInst p1;
    if (PyArg_ParseTuple(args,(char*)"O&",
          &PyoaInterPointerAppDef_oaFrameInst_Convert,&p1)) {
        data.Data()=p1.Data();
        Py_INCREF(ob);
        return ob;
    }
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}


// ------------------------------------------------------------------
//  Function Methods Table:
// ------------------------------------------------------------------

static PyMethodDef oaInterPointerAppDef_oaFrameInst_methodlist[] = {
    {"get",(PyCFunction)oaInterPointerAppDef_oaFrameInst_get,METH_VARARGS,oaInterPointerAppDef_oaFrameInst_get_doc},
    {"set",(PyCFunction)oaInterPointerAppDef_oaFrameInst_set,METH_VARARGS,oaInterPointerAppDef_oaFrameInst_set_doc},
    {"isNull",(PyCFunction)oaInterPointerAppDef_oaFrameInst_tp_isNull,METH_VARARGS,oaInterPointerAppDef_oaFrameInst_isNull_doc},
    {"assign",(PyCFunction)oaInterPointerAppDef_oaFrameInst_tp_assign,METH_VARARGS,oaInterPointerAppDef_oaFrameInst_assign_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Object:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrameInst_doc[] = 
"Class: oaInterPointerAppDef_oaFrameInst\n"
"  The oaInterPointerAppDef class implements an application-specific extension to a particular type of data in a database.\n"
"  Once created, a database object pointer field is added to each object of the specified dataType. The default value for the object pointer is NULL. Applications can use the new field for whatever purpose is necessary.\n"
"  Note: The pointer must be NULL or must point to a persistent object in the same database. The pointer must not point at objects in another database, objects not in a database, the database itself ( oaDesign or oaTech ), or utility objects.\n"
"  This extension is similar to the oaIntraPointerAppDef , except that oaInterPointerAppDef supports pointers to other types of objects within the same database. If only pointers to objects of the same type are created, use oaIntraPointerAppDef , since it requires slightly less memory and is slightly faster.\n"
"  For additional information on defining and using AppDefs, see oaAppDef and Extending the Database in the Programmer's Guide.\n"
"Constructors:\n"
"  Paramegers: (oaInterPointerAppDef_oaFrameInst)\n"
"    Calls: (const oaInterPointerAppDef_oaFrameInst&)\n"
"    Signature: oaInterPointerAppDef_oaFrameInst||cref-oaInterPointerAppDef_oaFrameInst,\n"
;

// ------------------------------------------------------------------
PyTypeObject PyoaInterPointerAppDef_oaFrameInst_Type = {
    PyObject_HEAD_INIT(&PyType_Type)
    0,
    "oaInterPointerAppDef_oaFrameInst",
    sizeof(PyoaInterPointerAppDef_oaFrameInstObject),
    0,
    (destructor)oaInterPointerAppDef_oaFrameInst_tp_dealloc,	/* tp_dealloc */
    0,	/* tp_print */
    0,					/* tp_getattr */
    0,					/* tp_setattr */
    (cmpfunc)oaInterPointerAppDef_oaFrameInst_tp_compare,	/* tp_compare */
    (reprfunc)oaInterPointerAppDef_oaFrameInst_tp_repr,	/* tp_repr */
    0,					/* tp_as_number */
    0,					/* tp_as_sequence */
    0,					/* tp_as_mapping */
    0,					/* tp_as_hash */
    0,					/* tp_as_call */
    0,					/* tp_str */
    0,					/* tp_getattro */
    0,					/* tp_setattro */
    0,					/* tp_as_buffer */
    Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
    oaInterPointerAppDef_oaFrameInst_doc,	/* tp_doc */
    0,					/* tp_traverse */
    0,					/* tp_clear */
    0,					/* tp_richcompre */
    0,					/* tp_weaklistoffset */
    0,					/* tp_iter */
    0,					/* tp_iternext */
    oaInterPointerAppDef_oaFrameInst_methodlist,	/* tp_methods */
    0,					/* tp_members */
    0,					/* tp_getset */
    &PyoaAppDef_Type,	/* tp_base */
    0,					/* tp_dict */
    0,					/* tp_descr_get */
    0,					/* tp_descr_set */
    0,					/* tp_dictoffset */
    0,					/* tp_init */
    PyType_GenericAlloc,	/* tp_alloc */
    oaInterPointerAppDef_oaFrameInst_new,	/* tp_new */
    _PyObject_Del,	/* tp_free */
};


// ------------------------------------------------------------------
// Static FunctionMethods:
// ------------------------------------------------------------------

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrameInst_static_find_doc[] = 
"Class: oaInterPointerAppDef_oaFrameInst, Function: find\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaFrameInst* find(const oaString& name)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaFrameInst|cref-oaString,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' if it exists.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaFrameInst* find(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: find|ptr-oaInterPointerAppDef_oaFrameInst|cref-oaString,cptr-oaAppObjectDef,\n"
"    This function returns an oaInterPointerAppDef object with this dataType and the specified 'name' that is associated with the specified object extension 'objDef'.\n"
"    name\n"
"    The name of the oaAppDef object to look for\n"
"    objDef\n"
"    A constant pointer to the object extension\n"
;

static PyObject*
oaInterPointerAppDef_oaFrameInst_static_find(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaFrameInstp result= (oaInterPointerAppDef_oaFrameInst::find(p1.Data()));
            return PyoaInterPointerAppDef_oaFrameInst_FromoaInterPointerAppDef_oaFrameInst(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFrameInstp result= (oaInterPointerAppDef_oaFrameInst::find(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFrameInst_FromoaInterPointerAppDef_oaFrameInst(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaFrameInst, function: find, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaAppObjectDef)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static char oaInterPointerAppDef_oaFrameInst_static_get_doc[] = 
"Class: oaInterPointerAppDef_oaFrameInst, Function: get\n"
"  Paramegers: (oaString)\n"
"    Calls: oaInterPointerAppDef_oaFrameInst* get(const oaString& name)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFrameInst|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaFrameInst* get(const oaString& name,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFrameInst|cref-oaString,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name . The name must be unique for all extension types. You can create an oaInterPointerAppDef extension on any object except another extension.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef)\n"
"    Calls: oaInterPointerAppDef_oaFrameInst* get(const oaString& name,const oaAppObjectDef* objDef)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFrameInst|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
"  Paramegers: (oaString,oaAppObjectDef,oaBoolean)\n"
"    Calls: oaInterPointerAppDef_oaFrameInst* get(const oaString& name,const oaAppObjectDef* objDef,oaBoolean persist)\n"
"    Signature: get|ptr-oaInterPointerAppDef_oaFrameInst|cref-oaString,cptr-oaAppObjectDef,simple-oaBoolean,\n"
"    This function constructs an oaInterPointerAppDef with the specified name and associates it with the specified oaAppObjectDef class. The name must be unique for all extension types.\n"
"    name\n"
"    The name given to the oaInterPointerAppDef object\n"
"    objDef\n"
"    The object extension with which to associate the extension\n"
"    persist\n"
"    Saves the oaInterPointerAppDef data in the database\n"
"    oacAppDefExists\n"
;

static PyObject*
oaInterPointerAppDef_oaFrameInst_static_get(PyObject* ob, PyObject *args)
{
  try {
    // Case: (oaString)
    {
        PyParamoaString p1;
        if (PyArg_ParseTuple(args,"O&",
              &PyoaString_Convert,&p1)) {
            oaInterPointerAppDef_oaFrameInstp result= (oaInterPointerAppDef_oaFrameInst::get(p1.Data()));
            return PyoaInterPointerAppDef_oaFrameInst_FromoaInterPointerAppDef_oaFrameInst(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaBoolean p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaBoolean_Convert,&p2)) {
            oaInterPointerAppDef_oaFrameInstp result= (oaInterPointerAppDef_oaFrameInst::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFrameInst_FromoaInterPointerAppDef_oaFrameInst(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        if (PyArg_ParseTuple(args,"O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFrameInstp result= (oaInterPointerAppDef_oaFrameInst::get(p1.Data(),p2.Data()));
            return PyoaInterPointerAppDef_oaFrameInst_FromoaInterPointerAppDef_oaFrameInst(result);
        }
    }
    PyErr_Clear();
    // Case: (oaString,oaAppObjectDef,oaBoolean)
    {
        PyParamoaString p1;
        PyParamoaAppObjectDef p2;
        PyParamoaBoolean p3;
        if (PyArg_ParseTuple(args,"O&O&O&",
              &PyoaString_Convert,&p1,
              &PyoaAppObjectDef_Convert,&p2,
              &PyoaBoolean_Convert,&p3)) {
            if (!PyValidateDbObject(p2.Data(),2)) return NULL;
            oaInterPointerAppDef_oaFrameInstp result= (oaInterPointerAppDef_oaFrameInst::get(p1.Data(),p2.Data(),p3.Data()));
            return PyoaInterPointerAppDef_oaFrameInst_FromoaInterPointerAppDef_oaFrameInst(result);
        }
    }
    PyErr_Clear();
    PyErr_SetString(PyExc_TypeError,
        "No Arg-Matching Function found for class: oaInterPointerAppDef_oaFrameInst, function: get, Choices are:\n"
        "    (oaString)\n"
        "    (oaString,oaBoolean)\n"
        "    (oaString,oaAppObjectDef)\n"
        "    (oaString,oaAppObjectDef,oaBoolean)\n"
    );
    return NULL;
  }
  catch (oaException &excp) {
    PyErr_OpenAccess(excp);
    return NULL;
  }
}

// ------------------------------------------------------------------
static PyMethodDef oaInterPointerAppDef_oaFrameInst_staticmethodlist[] = {
    {"static_find",(PyCFunction)oaInterPointerAppDef_oaFrameInst_static_find,METH_VARARGS,oaInterPointerAppDef_oaFrameInst_static_find_doc},
    {"static_get",(PyCFunction)oaInterPointerAppDef_oaFrameInst_static_get,METH_VARARGS,oaInterPointerAppDef_oaFrameInst_static_get_doc},
   {NULL,NULL,0,NULL}
};


// ------------------------------------------------------------------
//  Type Init:
// ------------------------------------------------------------------

int
PyoaInterPointerAppDef_oaFrameInst_TypeInit(PyObject* mod_dict)
{
    if (PyType_Ready(&PyoaInterPointerAppDef_oaFrameInst_Type)<0) {
      printf("** PyType_Ready failed for: oaInterPointerAppDef_oaFrameInst\n");
      return -1;
    }

    if (PyDict_SetItemString(mod_dict,"oaInterPointerAppDef_oaFrameInst",
           (PyObject*)(&PyoaInterPointerAppDef_oaFrameInst_Type))<0) {
       printf("** Failed to add type name to module dictionary for: oaInterPointerAppDef_oaFrameInst\n");
       return -1;
    }

    PyObject *dict, *value;
    PyMethodDef *method;
    dict=PyoaInterPointerAppDef_oaFrameInst_Type.tp_dict;
    for(method=oaInterPointerAppDef_oaFrameInst_staticmethodlist;method->ml_name!=NULL;method++) {
        value=PyCFunction_New(method,NULL);
    if (value==NULL) return -1;
        if (PyDict_SetItemString(dict,method->ml_name,value)!=0) {
        Py_DECREF(value);
            printf("** Failed to add static function to module dictionary for: %s\n",
                method->ml_name);
            return -1;
        }
        Py_DECREF(value);
    }
    return 0;
}

