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

"""
PCDM module, see official documentation at
https://www.opencascade.com/doc/occt-7.6.0/refman/html/package_pcdm.html
"""

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _PCDM
else:
    import _PCDM

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


class SwigPyIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _PCDM.delete_SwigPyIterator

    def value(self) -> "PyObject *":
        return _PCDM.SwigPyIterator_value(self)

    def incr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _PCDM.SwigPyIterator_incr(self, n)

    def decr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _PCDM.SwigPyIterator_decr(self, n)

    def distance(self, x: "SwigPyIterator") -> "ptrdiff_t":
        return _PCDM.SwigPyIterator_distance(self, x)

    def equal(self, x: "SwigPyIterator") -> "bool":
        return _PCDM.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _PCDM.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _PCDM.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _PCDM.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _PCDM.SwigPyIterator_previous(self)

    def advance(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _PCDM.SwigPyIterator_advance(self, n)

    def __eq__(self, x: "SwigPyIterator") -> "bool":
        return _PCDM.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: "SwigPyIterator") -> "bool":
        return _PCDM.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _PCDM.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _PCDM.SwigPyIterator___isub__(self, n)

    def __add__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _PCDM.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        return _PCDM.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _PCDM:
_PCDM.SwigPyIterator_swigregister(SwigPyIterator)


def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


def process_exception(error: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _PCDM.process_exception(error, method_name, class_name)

from six import with_metaclass
import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.Storage
import OCC.Core.TCollection
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.TColStd
import OCC.Core.CDM
import OCC.Core.Resource

from enum import IntEnum
from OCC.Core.Exception import *

PCDM_SS_OK = _PCDM.PCDM_SS_OK
PCDM_SS_DriverFailure = _PCDM.PCDM_SS_DriverFailure
PCDM_SS_WriteFailure = _PCDM.PCDM_SS_WriteFailure
PCDM_SS_Failure = _PCDM.PCDM_SS_Failure
PCDM_SS_Doc_IsNull = _PCDM.PCDM_SS_Doc_IsNull
PCDM_SS_No_Obj = _PCDM.PCDM_SS_No_Obj
PCDM_SS_Info_Section_Error = _PCDM.PCDM_SS_Info_Section_Error
PCDM_SS_UserBreak = _PCDM.PCDM_SS_UserBreak
PCDM_SS_UnrecognizedFormat = _PCDM.PCDM_SS_UnrecognizedFormat
PCDM_TOFD_File = _PCDM.PCDM_TOFD_File
PCDM_TOFD_CmpFile = _PCDM.PCDM_TOFD_CmpFile
PCDM_TOFD_XmlFile = _PCDM.PCDM_TOFD_XmlFile
PCDM_TOFD_Unknown = _PCDM.PCDM_TOFD_Unknown
PCDM_RS_OK = _PCDM.PCDM_RS_OK
PCDM_RS_NoDriver = _PCDM.PCDM_RS_NoDriver
PCDM_RS_UnknownFileDriver = _PCDM.PCDM_RS_UnknownFileDriver
PCDM_RS_OpenError = _PCDM.PCDM_RS_OpenError
PCDM_RS_NoVersion = _PCDM.PCDM_RS_NoVersion
PCDM_RS_NoSchema = _PCDM.PCDM_RS_NoSchema
PCDM_RS_NoDocument = _PCDM.PCDM_RS_NoDocument
PCDM_RS_ExtensionFailure = _PCDM.PCDM_RS_ExtensionFailure
PCDM_RS_WrongStreamMode = _PCDM.PCDM_RS_WrongStreamMode
PCDM_RS_FormatFailure = _PCDM.PCDM_RS_FormatFailure
PCDM_RS_TypeFailure = _PCDM.PCDM_RS_TypeFailure
PCDM_RS_TypeNotFoundInSchema = _PCDM.PCDM_RS_TypeNotFoundInSchema
PCDM_RS_UnrecognizedFileFormat = _PCDM.PCDM_RS_UnrecognizedFileFormat
PCDM_RS_MakeFailure = _PCDM.PCDM_RS_MakeFailure
PCDM_RS_PermissionDenied = _PCDM.PCDM_RS_PermissionDenied
PCDM_RS_DriverFailure = _PCDM.PCDM_RS_DriverFailure
PCDM_RS_AlreadyRetrievedAndModified = _PCDM.PCDM_RS_AlreadyRetrievedAndModified
PCDM_RS_AlreadyRetrieved = _PCDM.PCDM_RS_AlreadyRetrieved
PCDM_RS_UnknownDocument = _PCDM.PCDM_RS_UnknownDocument
PCDM_RS_WrongResource = _PCDM.PCDM_RS_WrongResource
PCDM_RS_ReaderException = _PCDM.PCDM_RS_ReaderException
PCDM_RS_NoModel = _PCDM.PCDM_RS_NoModel
PCDM_RS_UserBreak = _PCDM.PCDM_RS_UserBreak


class PCDM_StoreStatus(IntEnum):
	PCDM_SS_OK = 0
	PCDM_SS_DriverFailure = 1
	PCDM_SS_WriteFailure = 2
	PCDM_SS_Failure = 3
	PCDM_SS_Doc_IsNull = 4
	PCDM_SS_No_Obj = 5
	PCDM_SS_Info_Section_Error = 6
	PCDM_SS_UserBreak = 7
	PCDM_SS_UnrecognizedFormat = 8
PCDM_SS_OK = PCDM_StoreStatus.PCDM_SS_OK
PCDM_SS_DriverFailure = PCDM_StoreStatus.PCDM_SS_DriverFailure
PCDM_SS_WriteFailure = PCDM_StoreStatus.PCDM_SS_WriteFailure
PCDM_SS_Failure = PCDM_StoreStatus.PCDM_SS_Failure
PCDM_SS_Doc_IsNull = PCDM_StoreStatus.PCDM_SS_Doc_IsNull
PCDM_SS_No_Obj = PCDM_StoreStatus.PCDM_SS_No_Obj
PCDM_SS_Info_Section_Error = PCDM_StoreStatus.PCDM_SS_Info_Section_Error
PCDM_SS_UserBreak = PCDM_StoreStatus.PCDM_SS_UserBreak
PCDM_SS_UnrecognizedFormat = PCDM_StoreStatus.PCDM_SS_UnrecognizedFormat

class PCDM_TypeOfFileDriver(IntEnum):
	PCDM_TOFD_File = 0
	PCDM_TOFD_CmpFile = 1
	PCDM_TOFD_XmlFile = 2
	PCDM_TOFD_Unknown = 3
PCDM_TOFD_File = PCDM_TypeOfFileDriver.PCDM_TOFD_File
PCDM_TOFD_CmpFile = PCDM_TypeOfFileDriver.PCDM_TOFD_CmpFile
PCDM_TOFD_XmlFile = PCDM_TypeOfFileDriver.PCDM_TOFD_XmlFile
PCDM_TOFD_Unknown = PCDM_TypeOfFileDriver.PCDM_TOFD_Unknown

class PCDM_ReaderStatus(IntEnum):
	PCDM_RS_OK = 0
	PCDM_RS_NoDriver = 1
	PCDM_RS_UnknownFileDriver = 2
	PCDM_RS_OpenError = 3
	PCDM_RS_NoVersion = 4
	PCDM_RS_NoSchema = 5
	PCDM_RS_NoDocument = 6
	PCDM_RS_ExtensionFailure = 7
	PCDM_RS_WrongStreamMode = 8
	PCDM_RS_FormatFailure = 9
	PCDM_RS_TypeFailure = 10
	PCDM_RS_TypeNotFoundInSchema = 11
	PCDM_RS_UnrecognizedFileFormat = 12
	PCDM_RS_MakeFailure = 13
	PCDM_RS_PermissionDenied = 14
	PCDM_RS_DriverFailure = 15
	PCDM_RS_AlreadyRetrievedAndModified = 16
	PCDM_RS_AlreadyRetrieved = 17
	PCDM_RS_UnknownDocument = 18
	PCDM_RS_WrongResource = 19
	PCDM_RS_ReaderException = 20
	PCDM_RS_NoModel = 21
	PCDM_RS_UserBreak = 22
PCDM_RS_OK = PCDM_ReaderStatus.PCDM_RS_OK
PCDM_RS_NoDriver = PCDM_ReaderStatus.PCDM_RS_NoDriver
PCDM_RS_UnknownFileDriver = PCDM_ReaderStatus.PCDM_RS_UnknownFileDriver
PCDM_RS_OpenError = PCDM_ReaderStatus.PCDM_RS_OpenError
PCDM_RS_NoVersion = PCDM_ReaderStatus.PCDM_RS_NoVersion
PCDM_RS_NoSchema = PCDM_ReaderStatus.PCDM_RS_NoSchema
PCDM_RS_NoDocument = PCDM_ReaderStatus.PCDM_RS_NoDocument
PCDM_RS_ExtensionFailure = PCDM_ReaderStatus.PCDM_RS_ExtensionFailure
PCDM_RS_WrongStreamMode = PCDM_ReaderStatus.PCDM_RS_WrongStreamMode
PCDM_RS_FormatFailure = PCDM_ReaderStatus.PCDM_RS_FormatFailure
PCDM_RS_TypeFailure = PCDM_ReaderStatus.PCDM_RS_TypeFailure
PCDM_RS_TypeNotFoundInSchema = PCDM_ReaderStatus.PCDM_RS_TypeNotFoundInSchema
PCDM_RS_UnrecognizedFileFormat = PCDM_ReaderStatus.PCDM_RS_UnrecognizedFileFormat
PCDM_RS_MakeFailure = PCDM_ReaderStatus.PCDM_RS_MakeFailure
PCDM_RS_PermissionDenied = PCDM_ReaderStatus.PCDM_RS_PermissionDenied
PCDM_RS_DriverFailure = PCDM_ReaderStatus.PCDM_RS_DriverFailure
PCDM_RS_AlreadyRetrievedAndModified = PCDM_ReaderStatus.PCDM_RS_AlreadyRetrievedAndModified
PCDM_RS_AlreadyRetrieved = PCDM_ReaderStatus.PCDM_RS_AlreadyRetrieved
PCDM_RS_UnknownDocument = PCDM_ReaderStatus.PCDM_RS_UnknownDocument
PCDM_RS_WrongResource = PCDM_ReaderStatus.PCDM_RS_WrongResource
PCDM_RS_ReaderException = PCDM_ReaderStatus.PCDM_RS_ReaderException
PCDM_RS_NoModel = PCDM_ReaderStatus.PCDM_RS_NoModel
PCDM_RS_UserBreak = PCDM_ReaderStatus.PCDM_RS_UserBreak


def Handle_PCDM_ReadWriter_Create() -> "opencascade::handle< PCDM_ReadWriter >":
    return _PCDM.Handle_PCDM_ReadWriter_Create()

def Handle_PCDM_ReadWriter_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PCDM_ReadWriter >":
    return _PCDM.Handle_PCDM_ReadWriter_DownCast(t)

def Handle_PCDM_ReadWriter_IsNull(t: "opencascade::handle< PCDM_ReadWriter > const &") -> "bool":
    return _PCDM.Handle_PCDM_ReadWriter_IsNull(t)

def Handle_PCDM_Reader_Create() -> "opencascade::handle< PCDM_Reader >":
    return _PCDM.Handle_PCDM_Reader_Create()

def Handle_PCDM_Reader_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PCDM_Reader >":
    return _PCDM.Handle_PCDM_Reader_DownCast(t)

def Handle_PCDM_Reader_IsNull(t: "opencascade::handle< PCDM_Reader > const &") -> "bool":
    return _PCDM.Handle_PCDM_Reader_IsNull(t)

def Handle_PCDM_ReaderFilter_Create() -> "opencascade::handle< PCDM_ReaderFilter >":
    return _PCDM.Handle_PCDM_ReaderFilter_Create()

def Handle_PCDM_ReaderFilter_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PCDM_ReaderFilter >":
    return _PCDM.Handle_PCDM_ReaderFilter_DownCast(t)

def Handle_PCDM_ReaderFilter_IsNull(t: "opencascade::handle< PCDM_ReaderFilter > const &") -> "bool":
    return _PCDM.Handle_PCDM_ReaderFilter_IsNull(t)

def Handle_PCDM_ReferenceIterator_Create() -> "opencascade::handle< PCDM_ReferenceIterator >":
    return _PCDM.Handle_PCDM_ReferenceIterator_Create()

def Handle_PCDM_ReferenceIterator_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PCDM_ReferenceIterator >":
    return _PCDM.Handle_PCDM_ReferenceIterator_DownCast(t)

def Handle_PCDM_ReferenceIterator_IsNull(t: "opencascade::handle< PCDM_ReferenceIterator > const &") -> "bool":
    return _PCDM.Handle_PCDM_ReferenceIterator_IsNull(t)

def Handle_PCDM_Writer_Create() -> "opencascade::handle< PCDM_Writer >":
    return _PCDM.Handle_PCDM_Writer_Create()

def Handle_PCDM_Writer_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PCDM_Writer >":
    return _PCDM.Handle_PCDM_Writer_DownCast(t)

def Handle_PCDM_Writer_IsNull(t: "opencascade::handle< PCDM_Writer > const &") -> "bool":
    return _PCDM.Handle_PCDM_Writer_IsNull(t)

def Handle_PCDM_ReadWriter_1_Create() -> "opencascade::handle< PCDM_ReadWriter_1 >":
    return _PCDM.Handle_PCDM_ReadWriter_1_Create()

def Handle_PCDM_ReadWriter_1_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PCDM_ReadWriter_1 >":
    return _PCDM.Handle_PCDM_ReadWriter_1_DownCast(t)

def Handle_PCDM_ReadWriter_1_IsNull(t: "opencascade::handle< PCDM_ReadWriter_1 > const &") -> "bool":
    return _PCDM.Handle_PCDM_ReadWriter_1_IsNull(t)

def Handle_PCDM_RetrievalDriver_Create() -> "opencascade::handle< PCDM_RetrievalDriver >":
    return _PCDM.Handle_PCDM_RetrievalDriver_Create()

def Handle_PCDM_RetrievalDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PCDM_RetrievalDriver >":
    return _PCDM.Handle_PCDM_RetrievalDriver_DownCast(t)

def Handle_PCDM_RetrievalDriver_IsNull(t: "opencascade::handle< PCDM_RetrievalDriver > const &") -> "bool":
    return _PCDM.Handle_PCDM_RetrievalDriver_IsNull(t)

def Handle_PCDM_StorageDriver_Create() -> "opencascade::handle< PCDM_StorageDriver >":
    return _PCDM.Handle_PCDM_StorageDriver_Create()

def Handle_PCDM_StorageDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PCDM_StorageDriver >":
    return _PCDM.Handle_PCDM_StorageDriver_DownCast(t)

def Handle_PCDM_StorageDriver_IsNull(t: "opencascade::handle< PCDM_StorageDriver > const &") -> "bool":
    return _PCDM.Handle_PCDM_StorageDriver_IsNull(t)
class PCDM_BaseDriverPointer(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _PCDM.PCDM_BaseDriverPointer_swiginit(self, _PCDM.new_PCDM_BaseDriverPointer())
    __swig_destroy__ = _PCDM.delete_PCDM_BaseDriverPointer

# Register PCDM_BaseDriverPointer in _PCDM:
_PCDM.PCDM_BaseDriverPointer_swigregister(PCDM_BaseDriverPointer)

class PCDM_SequenceOfDocument(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self) -> "NCollection_Sequence< opencascade::handle< PCDM_Document > >::iterator":
        return _PCDM.PCDM_SequenceOfDocument_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< PCDM_Document > >::iterator":
        return _PCDM.PCDM_SequenceOfDocument_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< PCDM_Document > >::const_iterator":
        return _PCDM.PCDM_SequenceOfDocument_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< PCDM_Document > >::const_iterator":
        return _PCDM.PCDM_SequenceOfDocument_cend(self)

    def __init__(self, *args):
        _PCDM.PCDM_SequenceOfDocument_swiginit(self, _PCDM.new_PCDM_SequenceOfDocument(*args))

    def Size(self) -> "Standard_Integer":
        return _PCDM.PCDM_SequenceOfDocument_Size(self)

    def Length(self) -> "Standard_Integer":
        return _PCDM.PCDM_SequenceOfDocument_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _PCDM.PCDM_SequenceOfDocument_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _PCDM.PCDM_SequenceOfDocument_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _PCDM.PCDM_SequenceOfDocument_IsEmpty(self)

    def Reverse(self) -> "void":
        return _PCDM.PCDM_SequenceOfDocument_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _PCDM.PCDM_SequenceOfDocument_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
        return _PCDM.PCDM_SequenceOfDocument_delNode(theNode, theAl)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _PCDM.PCDM_SequenceOfDocument_Clear(self, theAllocator)

    def Assign(self, theOther: "PCDM_SequenceOfDocument") -> "NCollection_Sequence< opencascade::handle< PCDM_Document > > &":
        return _PCDM.PCDM_SequenceOfDocument_Assign(self, theOther)

    def Set(self, theOther: "PCDM_SequenceOfDocument") -> "NCollection_Sequence< opencascade::handle< PCDM_Document > > &":
        return _PCDM.PCDM_SequenceOfDocument_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _PCDM.PCDM_SequenceOfDocument_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _PCDM.PCDM_SequenceOfDocument_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _PCDM.PCDM_SequenceOfDocument_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _PCDM.PCDM_SequenceOfDocument_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _PCDM.PCDM_SequenceOfDocument_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "PCDM_SequenceOfDocument") -> "void":
        return _PCDM.PCDM_SequenceOfDocument_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< PCDM_Document > const &":
        return _PCDM.PCDM_SequenceOfDocument_First(self)

    def ChangeFirst(self) -> "opencascade::handle< PCDM_Document > &":
        return _PCDM.PCDM_SequenceOfDocument_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< PCDM_Document > const &":
        return _PCDM.PCDM_SequenceOfDocument_Last(self)

    def ChangeLast(self) -> "opencascade::handle< PCDM_Document > &":
        return _PCDM.PCDM_SequenceOfDocument_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< PCDM_Document > const &":
        return _PCDM.PCDM_SequenceOfDocument_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< PCDM_Document > &":
        return _PCDM.PCDM_SequenceOfDocument_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< PCDM_Document > &":
        return _PCDM.PCDM_SequenceOfDocument___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< PCDM_Document > const &") -> "void":
        return _PCDM.PCDM_SequenceOfDocument_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _PCDM.delete_PCDM_SequenceOfDocument

    def __len__(self):
        return self.Size()


# Register PCDM_SequenceOfDocument in _PCDM:
_PCDM.PCDM_SequenceOfDocument_swigregister(PCDM_SequenceOfDocument)

def PCDM_SequenceOfDocument_delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
    return _PCDM.PCDM_SequenceOfDocument_delNode(theNode, theAl)

class PCDM_SequenceOfReference(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self) -> "NCollection_Sequence< PCDM_Reference >::iterator":
        return _PCDM.PCDM_SequenceOfReference_begin(self)

    def end(self) -> "NCollection_Sequence< PCDM_Reference >::iterator":
        return _PCDM.PCDM_SequenceOfReference_end(self)

    def cbegin(self) -> "NCollection_Sequence< PCDM_Reference >::const_iterator":
        return _PCDM.PCDM_SequenceOfReference_cbegin(self)

    def cend(self) -> "NCollection_Sequence< PCDM_Reference >::const_iterator":
        return _PCDM.PCDM_SequenceOfReference_cend(self)

    def __init__(self, *args):
        _PCDM.PCDM_SequenceOfReference_swiginit(self, _PCDM.new_PCDM_SequenceOfReference(*args))

    def Size(self) -> "Standard_Integer":
        return _PCDM.PCDM_SequenceOfReference_Size(self)

    def Length(self) -> "Standard_Integer":
        return _PCDM.PCDM_SequenceOfReference_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _PCDM.PCDM_SequenceOfReference_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _PCDM.PCDM_SequenceOfReference_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _PCDM.PCDM_SequenceOfReference_IsEmpty(self)

    def Reverse(self) -> "void":
        return _PCDM.PCDM_SequenceOfReference_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _PCDM.PCDM_SequenceOfReference_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
        return _PCDM.PCDM_SequenceOfReference_delNode(theNode, theAl)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _PCDM.PCDM_SequenceOfReference_Clear(self, theAllocator)

    def Assign(self, theOther: "PCDM_SequenceOfReference") -> "NCollection_Sequence< PCDM_Reference > &":
        return _PCDM.PCDM_SequenceOfReference_Assign(self, theOther)

    def Set(self, theOther: "PCDM_SequenceOfReference") -> "NCollection_Sequence< PCDM_Reference > &":
        return _PCDM.PCDM_SequenceOfReference_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _PCDM.PCDM_SequenceOfReference_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _PCDM.PCDM_SequenceOfReference_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _PCDM.PCDM_SequenceOfReference_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _PCDM.PCDM_SequenceOfReference_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _PCDM.PCDM_SequenceOfReference_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "PCDM_SequenceOfReference") -> "void":
        return _PCDM.PCDM_SequenceOfReference_Split(self, theIndex, theSeq)

    def First(self) -> "PCDM_Reference const &":
        return _PCDM.PCDM_SequenceOfReference_First(self)

    def ChangeFirst(self) -> "PCDM_Reference &":
        return _PCDM.PCDM_SequenceOfReference_ChangeFirst(self)

    def Last(self) -> "PCDM_Reference const &":
        return _PCDM.PCDM_SequenceOfReference_Last(self)

    def ChangeLast(self) -> "PCDM_Reference &":
        return _PCDM.PCDM_SequenceOfReference_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "PCDM_Reference const &":
        return _PCDM.PCDM_SequenceOfReference_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "PCDM_Reference &":
        return _PCDM.PCDM_SequenceOfReference_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "PCDM_Reference &":
        return _PCDM.PCDM_SequenceOfReference___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "PCDM_Reference") -> "void":
        return _PCDM.PCDM_SequenceOfReference_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _PCDM.delete_PCDM_SequenceOfReference

    def __len__(self):
        return self.Size()


# Register PCDM_SequenceOfReference in _PCDM:
_PCDM.PCDM_SequenceOfReference_swigregister(PCDM_SequenceOfReference)

def PCDM_SequenceOfReference_delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
    return _PCDM.PCDM_SequenceOfReference_delNode(theNode, theAl)

class pcdm(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def FileDriverType(*args) -> "PCDM_TypeOfFileDriver":
        r"""
        No available documentation.

        Parameters
        ----------
        aFileName: TCollection_AsciiString
        aBaseDriver: Storage_BaseDriver

        Returns
        -------
        PCDM_TypeOfFileDriver

        """
        return _PCDM.pcdm_FileDriverType(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _PCDM.pcdm_swiginit(self, _PCDM.new_pcdm())
    __swig_destroy__ = _PCDM.delete_pcdm

# Register pcdm in _PCDM:
_PCDM.pcdm_swigregister(pcdm)

def pcdm_FileDriverType(*args) -> "PCDM_TypeOfFileDriver":
    r"""
    No available documentation.

    Parameters
    ----------
    aFileName: TCollection_AsciiString
    aBaseDriver: Storage_BaseDriver

    Returns
    -------
    PCDM_TypeOfFileDriver

    """
    return _PCDM.pcdm_FileDriverType(*args)

class PCDM_ReadWriter(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def FileFormat(*args) -> "TCollection_ExtendedString":
        r"""
        Tries to get a format in the file. returns an empty string if the file could not be read or does not have a fileformat information.

        Parameters
        ----------
        aFileName: TCollection_ExtendedString

        Returns
        -------
        TCollection_ExtendedString

        """
        return _PCDM.PCDM_ReadWriter_FileFormat(*args)

    @staticmethod
    def Open(*args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aDriver: Storage_BaseDriver
        aFileName: TCollection_ExtendedString
        anOpenMode: Storage_OpenMode

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReadWriter_Open(*args)

    def ReadDocumentVersion(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        aFileName: TCollection_ExtendedString
        theMsgDriver: Message_Messenger

        Returns
        -------
        int

        """
        return _PCDM.PCDM_ReadWriter_ReadDocumentVersion(self, *args)

    def ReadExtensions(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aFileName: TCollection_ExtendedString
        theExtensions: TColStd_SequenceOfExtendedString
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReadWriter_ReadExtensions(self, *args)

    def ReadReferenceCounter(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        theFileName: TCollection_ExtendedString
        theMsgDriver: Message_Messenger

        Returns
        -------
        int

        """
        return _PCDM.PCDM_ReadWriter_ReadReferenceCounter(self, *args)

    def ReadReferences(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aFileName: TCollection_ExtendedString
        theReferences: PCDM_SequenceOfReference
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReadWriter_ReadReferences(self, *args)

    @staticmethod
    def Reader(*args) -> "opencascade::handle< PCDM_ReadWriter >":
        r"""
        Returns the convenient reader for a file.

        Parameters
        ----------
        aFileName: TCollection_ExtendedString

        Returns
        -------
        opencascade::handle<PCDM_ReadWriter>

        """
        return _PCDM.PCDM_ReadWriter_Reader(*args)

    def Version(self, *args) -> "TCollection_AsciiString":
        r"""
        Returns pcdm_readwriter_1.

        Returns
        -------
        TCollection_AsciiString

        """
        return _PCDM.PCDM_ReadWriter_Version(self, *args)

    def WriteExtensions(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aData: Storage_Data
        aDocument: CDM_Document

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReadWriter_WriteExtensions(self, *args)

    @staticmethod
    def WriteFileFormat(*args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aData: Storage_Data
        aDocument: CDM_Document

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReadWriter_WriteFileFormat(*args)

    def WriteReferenceCounter(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aData: Storage_Data
        aDocument: CDM_Document

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReadWriter_WriteReferenceCounter(self, *args)

    def WriteReferences(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aData: Storage_Data
        aDocument: CDM_Document
        theReferencerFileName: TCollection_ExtendedString

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReadWriter_WriteReferences(self, *args)

    def WriteVersion(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aData: Storage_Data
        aDocument: CDM_Document

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReadWriter_WriteVersion(self, *args)

    @staticmethod
    def Writer(*args) -> "opencascade::handle< PCDM_ReadWriter >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<PCDM_ReadWriter>

        """
        return _PCDM.PCDM_ReadWriter_Writer(*args)


    @staticmethod
    def DownCast(t):
      return Handle_PCDM_ReadWriter_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _PCDM.delete_PCDM_ReadWriter

# Register PCDM_ReadWriter in _PCDM:
_PCDM.PCDM_ReadWriter_swigregister(PCDM_ReadWriter)

def PCDM_ReadWriter_FileFormat(*args) -> "TCollection_ExtendedString":
    r"""
    Tries to get a format in the file. returns an empty string if the file could not be read or does not have a fileformat information.

    Parameters
    ----------
    aFileName: TCollection_ExtendedString

    Returns
    -------
    TCollection_ExtendedString

    """
    return _PCDM.PCDM_ReadWriter_FileFormat(*args)

def PCDM_ReadWriter_Open(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    aDriver: Storage_BaseDriver
    aFileName: TCollection_ExtendedString
    anOpenMode: Storage_OpenMode

    Returns
    -------
    None

    """
    return _PCDM.PCDM_ReadWriter_Open(*args)

def PCDM_ReadWriter_Reader(*args) -> "opencascade::handle< PCDM_ReadWriter >":
    r"""
    Returns the convenient reader for a file.

    Parameters
    ----------
    aFileName: TCollection_ExtendedString

    Returns
    -------
    opencascade::handle<PCDM_ReadWriter>

    """
    return _PCDM.PCDM_ReadWriter_Reader(*args)

def PCDM_ReadWriter_WriteFileFormat(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    aData: Storage_Data
    aDocument: CDM_Document

    Returns
    -------
    None

    """
    return _PCDM.PCDM_ReadWriter_WriteFileFormat(*args)

def PCDM_ReadWriter_Writer(*args) -> "opencascade::handle< PCDM_ReadWriter >":
    r"""
    No available documentation.

    Returns
    -------
    opencascade::handle<PCDM_ReadWriter>

    """
    return _PCDM.PCDM_ReadWriter_Writer(*args)

class PCDM_Reader(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def GetStatus(self, *args) -> "PCDM_ReaderStatus":
        r"""
        No available documentation.

        Returns
        -------
        PCDM_ReaderStatus

        """
        return _PCDM.PCDM_Reader_GetStatus(self, *args)

    def Read(self, *args) -> "void":
        r"""
        Retrieves the content of the file into a new document.

        Parameters
        ----------
        aFileName: TCollection_ExtendedString
        aNewDocument: CDM_Document
        anApplication: CDM_Application
        theFilter: PCDM_ReaderFilter,optional
        	default value is opencascade::handle<PCDM_ReaderFilter>()
        theProgress: Message_ProgressRange,optional
        	default value is Message_ProgressRange()

        Returns
        -------
        None

        """
        return _PCDM.PCDM_Reader_Read(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_PCDM_Reader_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _PCDM.delete_PCDM_Reader

# Register PCDM_Reader in _PCDM:
_PCDM.PCDM_Reader_swigregister(PCDM_Reader)

class PCDM_ReaderFilter(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AppendMode_Forbid = _PCDM.PCDM_ReaderFilter_AppendMode_Forbid
    AppendMode_Protect = _PCDM.PCDM_ReaderFilter_AppendMode_Protect
    AppendMode_Overwrite = _PCDM.PCDM_ReaderFilter_AppendMode_Overwrite


    class AppendMode(IntEnum):
    	AppendMode_Forbid = 0
    	AppendMode_Protect = 1
    	AppendMode_Overwrite = 2
    AppendMode_Forbid = AppendMode.AppendMode_Forbid
    AppendMode_Protect = AppendMode.AppendMode_Protect
    AppendMode_Overwrite = AppendMode.AppendMode_Overwrite


    def __init__(self, *args):
        r"""
        Creates an empty filter, so, all will be retrieved if nothing else is defined.

        Returns
        -------
        None
        Creates a filter to skip only one type of attributes.

        Parameters
        ----------
        theSkipped: Standard_Type

        Returns
        -------
        None
        Creates a filter to read only sub-labels of a label-path. like, for '0:2' it will read all attributes for labels '0:2', '0:2:1', etc.

        Parameters
        ----------
        theEntryToRead: TCollection_AsciiString

        Returns
        -------
        None
        Creates a filter to append the content of file to open to existing document.

        Parameters
        ----------
        theAppend: AppendMode

        Returns
        -------
        None

        """
        _PCDM.PCDM_ReaderFilter_swiginit(self, _PCDM.new_PCDM_ReaderFilter(*args))

    def AddPath(self, *args) -> "void":
        r"""
        Adds sub-tree path (like '0:2').

        Parameters
        ----------
        theEntryToRead: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReaderFilter_AddPath(self, *args)

    def AddRead(self, *args) -> "void":
        r"""
        Adds attribute to read by type. disables the skipped attributes added.

        Parameters
        ----------
        theRead: Standard_Type

        Returns
        -------
        None
        Adds attribute to read by type name. disables the skipped attributes added.

        Parameters
        ----------
        theRead: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReaderFilter_AddRead(self, *args)

    def AddSkipped(self, *args) -> "void":
        r"""
        Adds skipped attribute by type.

        Parameters
        ----------
        theSkipped: Standard_Type

        Returns
        -------
        None
        Adds skipped attribute by type name.

        Parameters
        ----------
        theSkipped: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReaderFilter_AddSkipped(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Makes filter pass all data.

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReaderFilter_Clear(self, *args)

    def Down(self, *args) -> "void":
        r"""
        Iteration to the child with defined tag.

        Parameters
        ----------
        theTag: int

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReaderFilter_Down(self, *args)

    def IsAppendMode(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if appending to the document is performed.

        Returns
        -------
        bool

        """
        return _PCDM.PCDM_ReaderFilter_IsAppendMode(self, *args)

    def IsPartTree(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if only part of the document tree will be retrieved.

        Returns
        -------
        bool

        """
        return _PCDM.PCDM_ReaderFilter_IsPartTree(self, *args)

    def IsPassed(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if attribute must be read.

        Parameters
        ----------
        theAttributeID: Standard_Type

        Returns
        -------
        bool
        Returns true if content of the label must be read.

        Parameters
        ----------
        theEntry: TCollection_AsciiString

        Returns
        -------
        bool
        Returns true if content of the currently iterated label must be read.

        Returns
        -------
        bool

        """
        return _PCDM.PCDM_ReaderFilter_IsPassed(self, *args)

    def IsPassedAttr(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if attribute must be read.

        Parameters
        ----------
        theAttributeType: TCollection_AsciiString

        Returns
        -------
        bool

        """
        return _PCDM.PCDM_ReaderFilter_IsPassedAttr(self, *args)

    def IsSubPassed(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if some sub-label of the given label is passed.

        Parameters
        ----------
        theEntry: TCollection_AsciiString

        Returns
        -------
        bool
        Returns true if some sub-label of the currently iterated label is passed.

        Returns
        -------
        bool

        """
        return _PCDM.PCDM_ReaderFilter_IsSubPassed(self, *args)

    def Mode(self, *args) -> "PCDM_ReaderFilter::AppendMode":
        r"""
        Returns the append mode.

        Returns
        -------
        PCDM_ReaderFilter::AppendMode

        """
        return _PCDM.PCDM_ReaderFilter_Mode(self, *args)

    def StartIteration(self, *args) -> "void":
        r"""
        Starts the tree iterator. it is used for fast searching of passed labels if the whole tree of labels is parsed. so, on each iteration step the methods up and down must be called after the iteration start.

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReaderFilter_StartIteration(self, *args)

    def Up(self, *args) -> "void":
        r"""
        Iteration to the child label.

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReaderFilter_Up(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_PCDM_ReaderFilter_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _PCDM.delete_PCDM_ReaderFilter

# Register PCDM_ReaderFilter in _PCDM:
_PCDM.PCDM_ReaderFilter_swigregister(PCDM_ReaderFilter)

class PCDM_Reference(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        aReferenceIdentifier: int
        aFileName: TCollection_ExtendedString
        aDocumentVersion: int

        Returns
        -------
        None

        """
        _PCDM.PCDM_Reference_swiginit(self, _PCDM.new_PCDM_Reference(*args))

    def DocumentVersion(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _PCDM.PCDM_Reference_DocumentVersion(self, *args)

    def FileName(self, *args) -> "TCollection_ExtendedString":
        r"""
        No available documentation.

        Returns
        -------
        TCollection_ExtendedString

        """
        return _PCDM.PCDM_Reference_FileName(self, *args)

    def ReferenceIdentifier(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _PCDM.PCDM_Reference_ReferenceIdentifier(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _PCDM.delete_PCDM_Reference

# Register PCDM_Reference in _PCDM:
_PCDM.PCDM_Reference_swigregister(PCDM_Reference)

class PCDM_ReferenceIterator(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Warning! the constructor does not initialization.

        Parameters
        ----------
        theMessageDriver: Message_Messenger

        Returns
        -------
        None

        """
        _PCDM.PCDM_ReferenceIterator_swiginit(self, _PCDM.new_PCDM_ReferenceIterator(*args))

    def Init(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aMetaData: CDM_MetaData

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReferenceIterator_Init(self, *args)

    def LoadReferences(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aDocument: CDM_Document
        aMetaData: CDM_MetaData
        anApplication: CDM_Application
        UseStorageConfiguration: bool

        Returns
        -------
        None

        """
        return _PCDM.PCDM_ReferenceIterator_LoadReferences(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_PCDM_ReferenceIterator_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _PCDM.delete_PCDM_ReferenceIterator

# Register PCDM_ReferenceIterator in _PCDM:
_PCDM.PCDM_ReferenceIterator_swigregister(PCDM_ReferenceIterator)

class PCDM_Writer(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    def Write(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aDocument: CDM_Document
        aFileName: TCollection_ExtendedString
        theRange: Message_ProgressRange,optional
        	default value is Message_ProgressRange()

        Returns
        -------
        None

        """
        return _PCDM.PCDM_Writer_Write(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_PCDM_Writer_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _PCDM.delete_PCDM_Writer

# Register PCDM_Writer in _PCDM:
_PCDM.PCDM_Writer_swigregister(PCDM_Writer)

class PCDM_ReadWriter_1(PCDM_ReadWriter):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _PCDM.PCDM_ReadWriter_1_swiginit(self, _PCDM.new_PCDM_ReadWriter_1(*args))


    @staticmethod
    def DownCast(t):
      return Handle_PCDM_ReadWriter_1_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _PCDM.delete_PCDM_ReadWriter_1

# Register PCDM_ReadWriter_1 in _PCDM:
_PCDM.PCDM_ReadWriter_1_swigregister(PCDM_ReadWriter_1)

class PCDM_RetrievalDriver(PCDM_Reader):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

    @staticmethod
    def DocumentVersion(*args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        theFileName: TCollection_ExtendedString
        theMsgDriver: Message_Messenger

        Returns
        -------
        int

        """
        return _PCDM.PCDM_RetrievalDriver_DocumentVersion(*args)

    def GetFormat(self, *args) -> "TCollection_ExtendedString":
        r"""
        No available documentation.

        Returns
        -------
        TCollection_ExtendedString

        """
        return _PCDM.PCDM_RetrievalDriver_GetFormat(self, *args)

    @staticmethod
    def ReferenceCounter(*args) -> "Standard_Integer":
        r"""
        No available documentation.

        Parameters
        ----------
        theFileName: TCollection_ExtendedString
        theMsgDriver: Message_Messenger

        Returns
        -------
        int

        """
        return _PCDM.PCDM_RetrievalDriver_ReferenceCounter(*args)

    def SetFormat(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aformat: TCollection_ExtendedString

        Returns
        -------
        None

        """
        return _PCDM.PCDM_RetrievalDriver_SetFormat(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_PCDM_RetrievalDriver_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _PCDM.delete_PCDM_RetrievalDriver

# Register PCDM_RetrievalDriver in _PCDM:
_PCDM.PCDM_RetrievalDriver_swigregister(PCDM_RetrievalDriver)

def PCDM_RetrievalDriver_DocumentVersion(*args) -> "Standard_Integer":
    r"""
    No available documentation.

    Parameters
    ----------
    theFileName: TCollection_ExtendedString
    theMsgDriver: Message_Messenger

    Returns
    -------
    int

    """
    return _PCDM.PCDM_RetrievalDriver_DocumentVersion(*args)

def PCDM_RetrievalDriver_ReferenceCounter(*args) -> "Standard_Integer":
    r"""
    No available documentation.

    Parameters
    ----------
    theFileName: TCollection_ExtendedString
    theMsgDriver: Message_Messenger

    Returns
    -------
    int

    """
    return _PCDM.PCDM_RetrievalDriver_ReferenceCounter(*args)

class PCDM_StorageDriver(PCDM_Writer):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def GetFormat(self, *args) -> "TCollection_ExtendedString":
        r"""
        No available documentation.

        Returns
        -------
        TCollection_ExtendedString

        """
        return _PCDM.PCDM_StorageDriver_GetFormat(self, *args)

    def GetStoreStatus(self, *args) -> "PCDM_StoreStatus":
        r"""
        No available documentation.

        Returns
        -------
        PCDM_StoreStatus

        """
        return _PCDM.PCDM_StorageDriver_GetStoreStatus(self, *args)

    def IsError(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

        """
        return _PCDM.PCDM_StorageDriver_IsError(self, *args)

    def Make(self, *args) -> "void":
        r"""
        Raises notimplemented.

        Parameters
        ----------
        aDocument: CDM_Document

        Returns
        -------
        opencascade::handle<PCDM_Document>
        By default, puts in the sequence the document returns by the previous make method.

        Parameters
        ----------
        aDocument: CDM_Document
        Documents: PCDM_SequenceOfDocument

        Returns
        -------
        None

        """
        return _PCDM.PCDM_StorageDriver_Make(self, *args)

    def SetFormat(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        aformat: TCollection_ExtendedString

        Returns
        -------
        None

        """
        return _PCDM.PCDM_StorageDriver_SetFormat(self, *args)

    def SetIsError(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        theIsError: bool

        Returns
        -------
        None

        """
        return _PCDM.PCDM_StorageDriver_SetIsError(self, *args)

    def SetStoreStatus(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        theStoreStatus: PCDM_StoreStatus

        Returns
        -------
        None

        """
        return _PCDM.PCDM_StorageDriver_SetStoreStatus(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_PCDM_StorageDriver_DownCast(t)


    __repr__ = _dumps_object


    def __init__(self):
        _PCDM.PCDM_StorageDriver_swiginit(self, _PCDM.new_PCDM_StorageDriver())
    __swig_destroy__ = _PCDM.delete_PCDM_StorageDriver

# Register PCDM_StorageDriver in _PCDM:
_PCDM.PCDM_StorageDriver_swigregister(PCDM_StorageDriver)


@classnotwrapped
class PCDM_DOMHeaderParser:
	pass

@classnotwrapped
class PCDM_Document:
	pass






