//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/declaration.h>
#include <language/duchain/declarationid.h>
#include <language/duchain/types/indexedtype.h>
#include <language/duchain/topducontext.h>

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

		Q_SCRIPTABLE KDevelop::Declaration* declaration() const { return wrapped->declaration(); }
		Q_SCRIPTABLE KDevelop::Declaration* data() const { return wrapped->data(); }
		Q_SCRIPTABLE bool operator==(const KDevelop::IndexedDeclaration& x0) const { return wrapped->operator==(x0); }
		Q_SCRIPTABLE unsigned int hash() const { return wrapped->hash(); }
		Q_SCRIPTABLE bool isValid() const { return wrapped->isValid(); }
		Q_SCRIPTABLE bool operator<(const KDevelop::IndexedDeclaration& x0) const { return wrapped->operator<(x0); }
		Q_SCRIPTABLE unsigned int localIndex() const { return wrapped->localIndex(); }
		Q_SCRIPTABLE unsigned int topContextIndex() const { return wrapped->topContextIndex(); }
		Q_SCRIPTABLE KDevelop::IndexedTopDUContext indexedTopContext() const { return wrapped->indexedTopContext(); }
		Q_SCRIPTABLE void setIsDummy(bool x0) { wrapped->setIsDummy(x0); }
		Q_SCRIPTABLE bool isDummy() const { return wrapped->isDummy(); }
		Q_SCRIPTABLE QPair< unsigned int, unsigned int > dummyData() const { return wrapped->dummyData(); }
		Q_SCRIPTABLE void setDummyData(QPair< unsigned int, unsigned int > x0) { wrapped->setDummyData(x0); }
	private:
		KDevelop::IndexedDeclaration* wrapped;
};

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

		Q_SCRIPTABLE KDevelop::Declaration* data(KDevelop::TopDUContext* x0) const { return wrapped->data(x0); }
		Q_SCRIPTABLE bool operator==(const KDevelop::LocalIndexedDeclaration& x0) const { return wrapped->operator==(x0); }
		Q_SCRIPTABLE unsigned int hash() const { return wrapped->hash(); }
		Q_SCRIPTABLE bool isValid() const { return wrapped->isValid(); }
		Q_SCRIPTABLE bool operator<(const KDevelop::LocalIndexedDeclaration& x0) const { return wrapped->operator<(x0); }
		Q_SCRIPTABLE unsigned int localIndex() const { return wrapped->localIndex(); }
		Q_SCRIPTABLE bool isLoaded(KDevelop::TopDUContext* x0) const { return wrapped->isLoaded(x0); }
	private:
		KDevelop::LocalIndexedDeclaration* wrapped;
};

class KrossKDevelopDeclaration : public QObject, public Kross::WrapperInterface
{
	Q_OBJECT
	Q_ENUMS(AccessPolicy)
	Q_FLAGS(AccessPolicy Public Protected Private)

	Q_ENUMS(Kind)
	Q_FLAGS(Kind Type Instance NamespaceAlias Alias)

	public:
		enum KrossAccessPolicy { Public=KDevelop::Declaration::Public, Protected=KDevelop::Declaration::Protected, Private=KDevelop::Declaration::Private };
		enum KrossKind { Type=KDevelop::Declaration::Type, Instance=KDevelop::Declaration::Instance, NamespaceAlias=KDevelop::Declaration::NamespaceAlias, Alias=KDevelop::Declaration::Alias };
		KrossKDevelopDeclaration(KDevelop::Declaration* obj, QObject* parent=0) : QObject(parent), wrapped(obj)		{ setObjectName("KDevelop::Declaration"); }
		void* wrappedObject() const { return wrapped; }

		Q_SCRIPTABLE KDevelop::TopDUContext* topContext() const { return wrapped->topContext(); }
		Q_SCRIPTABLE bool isForwardDeclaration() const { return wrapped->isForwardDeclaration(); }
		Q_SCRIPTABLE KDevelop::ForwardDeclaration* toForwardDeclaration() { return wrapped->toForwardDeclaration(); }
		Q_SCRIPTABLE const KDevelop::ForwardDeclaration* toForwardDeclaration() const { return wrapped->toForwardDeclaration(); }
		Q_SCRIPTABLE bool isFunctionDeclaration() const { return wrapped->isFunctionDeclaration(); }
		Q_SCRIPTABLE bool inDUChain() const { return wrapped->inDUChain(); }
		Q_SCRIPTABLE bool isDefinition() const { return wrapped->isDefinition(); }
		Q_SCRIPTABLE void setDeclarationIsDefinition(bool x0) { wrapped->setDeclarationIsDefinition(x0); }
		Q_SCRIPTABLE bool isTypeAlias() const { return wrapped->isTypeAlias(); }
		Q_SCRIPTABLE void setIsTypeAlias(bool x0) { wrapped->setIsTypeAlias(x0); }
		Q_SCRIPTABLE KDevelop::Declaration* specialize(unsigned int x0, const KDevelop::TopDUContext* x1, int x2=0) { return wrapped->specialize(x0, x1, x2); }
		Q_SCRIPTABLE KDevelop::DUContext* internalContext() const { return wrapped->internalContext(); }
		Q_SCRIPTABLE void setInternalContext(KDevelop::DUContext* x0) { wrapped->setInternalContext(x0); }
		Q_SCRIPTABLE KDevelop::DUContext* logicalInternalContext(const KDevelop::TopDUContext* x0) const { return wrapped->logicalInternalContext(x0); }
		Q_SCRIPTABLE const KDevelop::Declaration* logicalDeclaration(const KDevelop::TopDUContext* x0) const { return wrapped->logicalDeclaration(x0); }
		Q_SCRIPTABLE KDevelop::Declaration* logicalDeclaration(const KDevelop::TopDUContext* x0) { return wrapped->logicalDeclaration(x0); }
		Q_SCRIPTABLE KDevelop::DUContext* context() const { return wrapped->context(); }
		Q_SCRIPTABLE void setContext(KDevelop::DUContext* x0, bool x1=false) { wrapped->setContext(x0, x1); }
		Q_SCRIPTABLE TypePtr< KDevelop::AbstractType > abstractType() const { return wrapped->abstractType(); }
		Q_SCRIPTABLE void setAbstractType(TypePtr< KDevelop::AbstractType > x0) { wrapped->setAbstractType(x0); }
		Q_SCRIPTABLE KDevelop::IndexedType indexedType() const { return wrapped->indexedType(); }
		Q_SCRIPTABLE void setIdentifier(const KDevelop::Identifier& x0) { wrapped->setIdentifier(x0); }
		Q_SCRIPTABLE KDevelop::Identifier identifier() const { return wrapped->identifier(); }
		Q_SCRIPTABLE KDevelop::IndexedIdentifier indexedIdentifier() const { return wrapped->indexedIdentifier(); }
		Q_SCRIPTABLE KDevelop::QualifiedIdentifier qualifiedIdentifier() const { return wrapped->qualifiedIdentifier(); }
		Q_SCRIPTABLE bool equalQualifiedIdentifier(const KDevelop::Declaration* x0) const { return wrapped->equalQualifiedIdentifier(x0); }
		Q_SCRIPTABLE KDevelop::Declaration::Kind kind() const { return wrapped->kind(); }
		Q_SCRIPTABLE void setKind(KDevelop::Declaration::Kind x0) { wrapped->setKind(x0); }
		Q_SCRIPTABLE QByteArray comment() const { return wrapped->comment(); }
		Q_SCRIPTABLE void setComment(const QByteArray& x0) { wrapped->setComment(x0); }
		Q_SCRIPTABLE void setComment(const QString& x0) { wrapped->setComment(x0); }
		Q_SCRIPTABLE bool inSymbolTable() const { return wrapped->inSymbolTable(); }
		Q_SCRIPTABLE void setInSymbolTable(bool x0) { wrapped->setInSymbolTable(x0); }
		Q_SCRIPTABLE bool operator==(const KDevelop::Declaration& x0) const { return wrapped->operator==(x0); }
		Q_SCRIPTABLE QString toString() const { return wrapped->toString(); }
		Q_SCRIPTABLE QMap< KDevelop::IndexedString, QList< KDevelop::SimpleRange > > uses() const { return wrapped->uses(); }
		Q_SCRIPTABLE QList< KTextEditor::SmartRange* > smartUses() const { return wrapped->smartUses(); }
		Q_SCRIPTABLE unsigned int additionalIdentity() const { return wrapped->additionalIdentity(); }
		Q_SCRIPTABLE unsigned int specialization() const { return wrapped->specialization(); }
		Q_SCRIPTABLE KDevelop::DeclarationId id(bool x0=false) const { return wrapped->id(x0); }
		Q_SCRIPTABLE unsigned int ownIndex() const { return wrapped->ownIndex(); }
		Q_SCRIPTABLE void clearOwnIndex() { wrapped->clearOwnIndex(); }
		Q_SCRIPTABLE void allocateOwnIndex() { wrapped->allocateOwnIndex(); }
		Q_SCRIPTABLE KDevelop::Declaration* clone() const { return wrapped->clone(); }
		Q_SCRIPTABLE void activateSpecialization() { wrapped->activateSpecialization(); }
	private:
		KDevelop::Declaration* wrapped;
};

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

namespace Handlers
{
QVariant _kDevelopDeclarationHandler(void* type)
{
	if(!type) return QVariant();
	KDevelop::Declaration* t=static_cast<KDevelop::Declaration*>(type);
	Q_ASSERT(dynamic_cast<KDevelop::Declaration*>(t));
	return qVariantFromValue((QObject*) new KrossKDevelopDeclaration(t, 0));
}
bool b_KDevelopDeclaration1=krossdeclaration_registerHandler("Declaration*", _kDevelopDeclarationHandler);
bool b_KDevelopDeclaration=krossdeclaration_registerHandler("KDevelop::Declaration*", _kDevelopDeclarationHandler);
QVariant kDevelopDeclarationHandler(KDevelop::Declaration* type){ return _kDevelopDeclarationHandler(type); }
QVariant kDevelopDeclarationHandler(const KDevelop::Declaration* type) { return _kDevelopDeclarationHandler((void*) type); }

QVariant _kDevelopLocalIndexedDeclarationHandler(void* type)
{
	if(!type) return QVariant();
	KDevelop::LocalIndexedDeclaration* t=static_cast<KDevelop::LocalIndexedDeclaration*>(type);
	Q_ASSERT(dynamic_cast<KDevelop::LocalIndexedDeclaration*>(t));
	return qVariantFromValue((QObject*) new KrossKDevelopLocalIndexedDeclaration(t, 0));
}
bool b_KDevelopLocalIndexedDeclaration1=krossdeclaration_registerHandler("LocalIndexedDeclaration*", _kDevelopLocalIndexedDeclarationHandler);
bool b_KDevelopLocalIndexedDeclaration=krossdeclaration_registerHandler("KDevelop::LocalIndexedDeclaration*", _kDevelopLocalIndexedDeclarationHandler);
QVariant kDevelopLocalIndexedDeclarationHandler(KDevelop::LocalIndexedDeclaration* type){ return _kDevelopLocalIndexedDeclarationHandler(type); }
QVariant kDevelopLocalIndexedDeclarationHandler(const KDevelop::LocalIndexedDeclaration* type) { return _kDevelopLocalIndexedDeclarationHandler((void*) type); }

QVariant _kDevelopIndexedDeclarationHandler(void* type)
{
	if(!type) return QVariant();
	KDevelop::IndexedDeclaration* t=static_cast<KDevelop::IndexedDeclaration*>(type);
	Q_ASSERT(dynamic_cast<KDevelop::IndexedDeclaration*>(t));
	return qVariantFromValue((QObject*) new KrossKDevelopIndexedDeclaration(t, 0));
}
bool b_KDevelopIndexedDeclaration1=krossdeclaration_registerHandler("IndexedDeclaration*", _kDevelopIndexedDeclarationHandler);
bool b_KDevelopIndexedDeclaration=krossdeclaration_registerHandler("KDevelop::IndexedDeclaration*", _kDevelopIndexedDeclarationHandler);
QVariant kDevelopIndexedDeclarationHandler(KDevelop::IndexedDeclaration* type){ return _kDevelopIndexedDeclarationHandler(type); }
QVariant kDevelopIndexedDeclarationHandler(const KDevelop::IndexedDeclaration* type) { return _kDevelopIndexedDeclarationHandler((void*) type); }

}
#include "krossdeclaration.moc"
