//This is file has been generated by xmltokross, you should not edit this file but the files used to generate it.

#include <QtCore/QObject>
#include <QtCore/QVariant>
#include <kross/core/manager.h>
#include <kross/core/wrapperinterface.h>
#include <language/duchain/topducontext.h>
#include <language/duchain/parsingenvironment.h>
#include <language/interfaces/iproblem.h>
#include <language/editor/simplecursor.h>

class KrossKDevelopRecursiveImportRepository : public QObject, public Kross::WrapperInterface
{
	Q_OBJECT
	public:
		KrossKDevelopRecursiveImportRepository(KDevelop::RecursiveImportRepository* obj, QObject* parent=0) : QObject(parent), wrapped(obj)		{ setObjectName("KDevelop::RecursiveImportRepository"); }
		void* wrappedObject() const { return wrapped; }

		Q_SCRIPTABLE Utils::BasicSetRepository* repository() { return wrapped->repository(); }
	private:
		KDevelop::RecursiveImportRepository* wrapped;
};

class KrossKDevelopReferencedTopDUContext : public QObject, public Kross::WrapperInterface
{
	Q_OBJECT
	public:
		KrossKDevelopReferencedTopDUContext(KDevelop::ReferencedTopDUContext* obj, QObject* parent=0) : QObject(parent), wrapped(obj)		{ setObjectName("KDevelop::ReferencedTopDUContext"); }
		void* wrappedObject() const { return wrapped; }

		Q_SCRIPTABLE KDevelop::ReferencedTopDUContext operator=(const KDevelop::ReferencedTopDUContext& x0) { return wrapped->operator=(x0); }
		Q_SCRIPTABLE KDevelop::TopDUContext* data() const { return wrapped->data(); }
		Q_SCRIPTABLE bool operator==(const KDevelop::ReferencedTopDUContext& x0) const { return wrapped->operator==(x0); }
		Q_SCRIPTABLE bool operator!=(const KDevelop::ReferencedTopDUContext& x0) const { return wrapped->operator!=(x0); }
		Q_SCRIPTABLE KDevelop::TopDUContext* operator->() const { return wrapped->operator->(); }
		Q_SCRIPTABLE uint hash() const { return wrapped->hash(); }
	private:
		KDevelop::ReferencedTopDUContext* wrapped;
};

class KrossKDevelopTopDUContext : public QObject, public Kross::WrapperInterface
{
	Q_OBJECT
	Q_ENUMS(Flags)
	Q_FLAGS(Flags NoFlags UpdatingContext LastFlag)

	Q_ENUMS(Features)
	Q_FLAGS(Features Empty SimplifiedVisibleDeclarationsAndContexts VisibleDeclarationsAndContexts AllDeclarationsAndContexts AllDeclarationsContextsAndUses AST AllDeclarationsContextsUsesAndAST Recursive ForceUpdate ForceUpdateRecursive)

	public:
		enum KrossFlags { NoFlags=KDevelop::TopDUContext::NoFlags, UpdatingContext=KDevelop::TopDUContext::UpdatingContext, LastFlag=KDevelop::TopDUContext::LastFlag };
		enum KrossFeatures { Empty=KDevelop::TopDUContext::Empty, SimplifiedVisibleDeclarationsAndContexts=KDevelop::TopDUContext::SimplifiedVisibleDeclarationsAndContexts, VisibleDeclarationsAndContexts=KDevelop::TopDUContext::VisibleDeclarationsAndContexts, AllDeclarationsAndContexts=KDevelop::TopDUContext::AllDeclarationsAndContexts, AllDeclarationsContextsAndUses=KDevelop::TopDUContext::AllDeclarationsContextsAndUses, AST=KDevelop::TopDUContext::AST, AllDeclarationsContextsUsesAndAST=KDevelop::TopDUContext::AllDeclarationsContextsUsesAndAST, Recursive=KDevelop::TopDUContext::Recursive, ForceUpdate=KDevelop::TopDUContext::ForceUpdate, ForceUpdateRecursive=KDevelop::TopDUContext::ForceUpdateRecursive };
		KrossKDevelopTopDUContext(KDevelop::TopDUContext* obj, QObject* parent=0) : QObject(parent), wrapped(obj)		{ setObjectName("KDevelop::TopDUContext"); }
		void* wrappedObject() const { return wrapped; }

		Q_SCRIPTABLE void deleteSelf() { wrapped->deleteSelf(); }
		Q_SCRIPTABLE KDevelop::TopDUContext* sharedDataOwner() const { return wrapped->sharedDataOwner(); }
		Q_SCRIPTABLE KDevelop::TopDUContext* topContext() const { return wrapped->topContext(); }
		Q_SCRIPTABLE KDevelop::IndexedTopDUContext indexed() const { return wrapped->indexed(); }
		Q_SCRIPTABLE uint ownIndex() const { return wrapped->ownIndex(); }
		Q_SCRIPTABLE KDevelop::IndexedString url() const { return wrapped->url(); }
		Q_SCRIPTABLE KSharedPtr< KDevelop::ParsingEnvironmentFile > parsingEnvironmentFile() const { return wrapped->parsingEnvironmentFile(); }
		Q_SCRIPTABLE bool deleting() const { return wrapped->deleting(); }
		Q_SCRIPTABLE bool inDUChain() const { return wrapped->inDUChain(); }
		Q_SCRIPTABLE void setInDuChain(bool x0) { wrapped->setInDuChain(x0); }
		Q_SCRIPTABLE bool isOnDisk() const { return wrapped->isOnDisk(); }
		Q_SCRIPTABLE QList< KDevelop::ProblemPointer > problems() const { return wrapped->problems(); }
		Q_SCRIPTABLE void addProblem(const KDevelop::ProblemPointer& x0) { wrapped->addProblem(x0); }
		Q_SCRIPTABLE void clearProblems() { wrapped->clearProblems(); }
		Q_SCRIPTABLE bool imports(const KDevelop::DUContext* x0, const KDevelop::SimpleCursor& x1) const { return wrapped->imports(x0, x1); }
		Q_SCRIPTABLE KDevelop::TopDUContext::Features features() const { return wrapped->features(); }
		Q_SCRIPTABLE void setFeatures(KDevelop::TopDUContext::Features x0) { wrapped->setFeatures(x0); }
		Q_SCRIPTABLE int indexForUsedDeclaration(KDevelop::Declaration* x0, bool x1=true) { return wrapped->indexForUsedDeclaration(x0, x1); }
		Q_SCRIPTABLE KDevelop::Declaration* usedDeclarationForIndex(unsigned int x0) const { return wrapped->usedDeclarationForIndex(x0); }
		Q_SCRIPTABLE void clearUsedDeclarationIndices() { wrapped->clearUsedDeclarationIndices(); }
		Q_SCRIPTABLE void deleteUsesRecursively() { wrapped->deleteUsesRecursively(); }
		Q_SCRIPTABLE KDevelop::TopDUContext::Flags flags() const { return wrapped->flags(); }
		Q_SCRIPTABLE void setFlags(KDevelop::TopDUContext::Flags x0) { wrapped->setFlags(x0); }
		Q_SCRIPTABLE KSharedPtr< KDevelop::IAstContainer > ast() const { return wrapped->ast(); }
		Q_SCRIPTABLE void setAst(KSharedPtr< KDevelop::IAstContainer > x0) { wrapped->setAst(x0); }
		Q_SCRIPTABLE void clearAst() { wrapped->clearAst(); }
		Q_SCRIPTABLE void addImportedParentContext(KDevelop::DUContext* x0, const KDevelop::SimpleCursor& x1=KDevelop::SimpleCursor(), bool x2=false, bool x3=false) { wrapped->addImportedParentContext(x0, x1, x2, x3); }
		Q_SCRIPTABLE void addImportedParentContexts(const QList< QPair< KDevelop::TopDUContext*, KDevelop::SimpleCursor > >& x0, bool x1=false) { wrapped->addImportedParentContexts(x0, x1); }
		Q_SCRIPTABLE void removeImportedParentContext(KDevelop::DUContext* x0) { wrapped->removeImportedParentContext(x0); }
		Q_SCRIPTABLE void removeImportedParentContexts(const QList< KDevelop::TopDUContext* >& x0) { wrapped->removeImportedParentContexts(x0); }
		Q_SCRIPTABLE void clearImportedParentContexts() { wrapped->clearImportedParentContexts(); }
		Q_SCRIPTABLE QVector< KDevelop::DUContext::Import > importedParentContexts() const { return wrapped->importedParentContexts(); }
		Q_SCRIPTABLE QVector< KDevelop::DUContext* > importers() const { return wrapped->importers(); }
		Q_SCRIPTABLE QList< KDevelop::DUContext* > loadedImporters() const { return wrapped->loadedImporters(); }
		Q_SCRIPTABLE KDevelop::SimpleCursor importPosition(const KDevelop::DUContext* x0) const { return wrapped->importPosition(x0); }
		Q_SCRIPTABLE KDevelop::TopDUContext::IndexedRecursiveImports recursiveImportIndices() const { return wrapped->recursiveImportIndices(); }
		Q_SCRIPTABLE void updateImportsCache() { wrapped->updateImportsCache(); }
		Q_SCRIPTABLE bool usingImportsCache() const { return wrapped->usingImportsCache(); }
		Q_SCRIPTABLE bool findDeclarationsInternal(const KDevelop::DUContext::SearchItem::PtrList& x0, const KDevelop::SimpleCursor& x1, const KDevelop::AbstractType::Ptr& x2, KDevelop::DUContext::DeclarationList& x3, const KDevelop::TopDUContext* x4, KDevelop::DUContext::SearchFlags x5, uint x6) const { return wrapped->findDeclarationsInternal(x0, x1, x2, x3, x4, x5, x6); }
	private:
		KDevelop::TopDUContext* wrapped;
};

class KrossKDevelopTopDUContextCache : public QObject, public Kross::WrapperInterface
{
	Q_OBJECT
	public:
		KrossKDevelopTopDUContextCache(KDevelop::TopDUContext::Cache* obj, QObject* parent=0) : QObject(parent), wrapped(obj)		{ setObjectName("KDevelop::TopDUContext::Cache"); }
		void* wrappedObject() const { return wrapped; }

	private:
		KDevelop::TopDUContext::Cache* wrapped;
};

bool krosstopducontext_registerHandler(const QByteArray& name, Kross::MetaTypeHandler::FunctionPtr* handler)
{ Kross::Manager::self().registerMetaTypeHandler(name, handler); return false; }

namespace Handlers
{
QVariant _kDevelopTopDUContextCacheHandler(void* type)
{
	if(!type) return QVariant();
	KDevelop::TopDUContext::Cache* t=static_cast<KDevelop::TopDUContext::Cache*>(type);
	Q_ASSERT(dynamic_cast<KDevelop::TopDUContext::Cache*>(t));
	return qVariantFromValue((QObject*) new KrossKDevelopTopDUContextCache(t, 0));
}
bool b_KDevelopTopDUContextCache1=krosstopducontext_registerHandler("TopDUContext::Cache*", _kDevelopTopDUContextCacheHandler);
bool b_KDevelopTopDUContextCache=krosstopducontext_registerHandler("KDevelop::TopDUContext::Cache*", _kDevelopTopDUContextCacheHandler);
QVariant kDevelopTopDUContextCacheHandler(KDevelop::TopDUContext::Cache* type){ return _kDevelopTopDUContextCacheHandler(type); }
QVariant kDevelopTopDUContextCacheHandler(const KDevelop::TopDUContext::Cache* type) { return _kDevelopTopDUContextCacheHandler((void*) type); }

QVariant _kDevelopTopDUContextHandler(void* type)
{
	if(!type) return QVariant();
	KDevelop::TopDUContext* t=static_cast<KDevelop::TopDUContext*>(type);
	Q_ASSERT(dynamic_cast<KDevelop::TopDUContext*>(t));
	return qVariantFromValue((QObject*) new KrossKDevelopTopDUContext(t, 0));
}
bool b_KDevelopTopDUContext1=krosstopducontext_registerHandler("TopDUContext*", _kDevelopTopDUContextHandler);
bool b_KDevelopTopDUContext=krosstopducontext_registerHandler("KDevelop::TopDUContext*", _kDevelopTopDUContextHandler);
QVariant kDevelopTopDUContextHandler(KDevelop::TopDUContext* type){ return _kDevelopTopDUContextHandler(type); }
QVariant kDevelopTopDUContextHandler(const KDevelop::TopDUContext* type) { return _kDevelopTopDUContextHandler((void*) type); }

QVariant _kDevelopReferencedTopDUContextHandler(void* type)
{
	if(!type) return QVariant();
	KDevelop::ReferencedTopDUContext* t=static_cast<KDevelop::ReferencedTopDUContext*>(type);
	Q_ASSERT(dynamic_cast<KDevelop::ReferencedTopDUContext*>(t));
	return qVariantFromValue((QObject*) new KrossKDevelopReferencedTopDUContext(t, 0));
}
bool b_KDevelopReferencedTopDUContext1=krosstopducontext_registerHandler("ReferencedTopDUContext*", _kDevelopReferencedTopDUContextHandler);
bool b_KDevelopReferencedTopDUContext=krosstopducontext_registerHandler("KDevelop::ReferencedTopDUContext*", _kDevelopReferencedTopDUContextHandler);
QVariant kDevelopReferencedTopDUContextHandler(KDevelop::ReferencedTopDUContext* type){ return _kDevelopReferencedTopDUContextHandler(type); }
QVariant kDevelopReferencedTopDUContextHandler(const KDevelop::ReferencedTopDUContext* type) { return _kDevelopReferencedTopDUContextHandler((void*) type); }

QVariant _kDevelopRecursiveImportRepositoryHandler(void* type)
{
	if(!type) return QVariant();
	KDevelop::RecursiveImportRepository* t=static_cast<KDevelop::RecursiveImportRepository*>(type);
	Q_ASSERT(dynamic_cast<KDevelop::RecursiveImportRepository*>(t));
	return qVariantFromValue((QObject*) new KrossKDevelopRecursiveImportRepository(t, 0));
}
bool b_KDevelopRecursiveImportRepository1=krosstopducontext_registerHandler("RecursiveImportRepository*", _kDevelopRecursiveImportRepositoryHandler);
bool b_KDevelopRecursiveImportRepository=krosstopducontext_registerHandler("KDevelop::RecursiveImportRepository*", _kDevelopRecursiveImportRepositoryHandler);
QVariant kDevelopRecursiveImportRepositoryHandler(KDevelop::RecursiveImportRepository* type){ return _kDevelopRecursiveImportRepositoryHandler(type); }
QVariant kDevelopRecursiveImportRepositoryHandler(const KDevelop::RecursiveImportRepository* type) { return _kDevelopRecursiveImportRepositoryHandler((void*) type); }

}
#include "krosstopducontext.moc"
