
// Auto generated

#ifndef QURL_H_WRAPPER
#define QURL_H_WRAPPER

// include header:
//#include "header_h.h"

#include "../RJSHelper.h"


#include "RJSWrapperObj.h"

#include <QUrlQuery>

#include <QUrl>

#include <QQmlEngine>

#include "RJSType.h"

#include <QUrl>

// singleton class wrapper for static functions:
class QTJSAPI_EXPORT QUrl_WrapperSingleton: public QObject {
    Q_OBJECT
    QML_INTERFACE

    // constants:


    // static properties:


public:
    //Q_INVOKABLE
    QUrl_WrapperSingleton(RJSApi& h)
        : QObject(),
          handler(h)

    {}



    // static functions:

    // Class: QUrl
    // Function: fromEncoded
    // Source:
    // Static: true
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    fromEncoded
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: fromUserInput
    // Source:
    // Static: true
    // Parameters: 3
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    fromUserInput
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()
          ,
        const QJSValue&
        a3
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: fromLocalFile
    // Source:
    // Static: true
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    fromLocalFile
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: fromPercentEncoding
    // Source:
    // Static: true
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    fromPercentEncoding
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: toPercentEncoding
    // Source:
    // Static: true
    // Parameters: 3
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    toPercentEncoding
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()
          ,
        const QJSValue&
        a3
        = QJSValue()

    )

    ;

#if defined(Q_OS_DARWIN)||defined(Q_QDOC)

#endif

    // Class: QUrl
    // Function: fromAce
    // Source:
    // Static: true
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    fromAce
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: toAce
    // Source:
    // Static: true
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    toAce
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: idnWhitelist
    // Source:
    // Static: true
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    idnWhitelist
    (


    )

    ;

    // Class: QUrl
    // Function: toStringList
    // Source:
    // Static: true
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    toStringList
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: fromStringList
    // Source:
    // Static: true
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    fromStringList
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: setIdnWhitelist
    // Source:
    // Static: true
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setIdnWhitelist
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    ;


private:
    RJSApi& handler;
    //static QUrl_WrapperSingleton* _singleInstance;

    // constants:

};

// static functions implementation in singleton wrapper:

// wrapper class for QUrl
class QTJSAPI_EXPORT QUrl_Wrapper : public RJSWrapperObj {


    Q_OBJECT
    QML_INTERFACE


private:
    // disable copy constructor:
    QUrl_Wrapper(const QUrl_Wrapper&);

public:
    // initialization of QUrl:
    static void init(RJSApi& handler);


    static QUrl* castToBase(void* vp, /*RJSType ID*/ int t) {

        // check if pointer points to derrived type:


        // hook for modules to cast from other types to base QUrl:
        for (int i=0; i<basecasters_QUrl.length(); i++) {
            RJSBasecaster_QUrl* basecaster = basecasters_QUrl[i];
            QUrl* ret = basecaster->castToBase(t, vp);
            if (ret!=nullptr) {
                return ret;
            }
        }

        // object is a pointer to base class QUrl:
        if (t==RJSType_QUrl::getIdStatic()) {
            return (QUrl*)vp;
        }

        qWarning() << "QUrl_Wrapper::castToBase: type not found: " << RJSHelper::getTypeName(t);

        return nullptr;

    }

    static QUrl* getWrappedBase(RJSWrapper* wrapper) {
        int t = wrapper->getWrappedType();
        void* vp = wrapper->getWrappedVoid();
        if (vp==nullptr) {
            //qWarning() << "getWrapped_QUrl*: wrapper wraps NULL";
        }

        QUrl* ret = castToBase(vp, t);
        if (ret==nullptr && vp!=nullptr) {
            qWarning() << "QUrl*_Wrapper::getWrappedBase: extracted type " << t << "from wrapper is NULL";
        }
        return ret;
    }

    // enums:

    enum ParsingMode {
        TolerantMode = QUrl::TolerantMode,
        StrictMode = QUrl::StrictMode,
        DecodedMode = QUrl::DecodedMode,

    };
    Q_ENUM(ParsingMode)

    enum UrlFormattingOption {
        None = QUrl::None,
        RemoveScheme = QUrl::RemoveScheme,
        RemovePassword = QUrl::RemovePassword,
        RemoveUserInfo = QUrl::RemoveUserInfo,
        RemovePort = QUrl::RemovePort,
        RemoveAuthority = QUrl::RemoveAuthority,
        RemovePath = QUrl::RemovePath,
        RemoveQuery = QUrl::RemoveQuery,
        RemoveFragment = QUrl::RemoveFragment,
        PreferLocalFile = QUrl::PreferLocalFile,
        StripTrailingSlash = QUrl::StripTrailingSlash,
        RemoveFilename = QUrl::RemoveFilename,
        NormalizePathSegments = QUrl::NormalizePathSegments,

    };
    Q_ENUM(UrlFormattingOption)

    enum ComponentFormattingOption {
        PrettyDecoded = QUrl::PrettyDecoded,
        EncodeSpaces = QUrl::EncodeSpaces,
        EncodeUnicode = QUrl::EncodeUnicode,
        EncodeDelimiters = QUrl::EncodeDelimiters,
        EncodeReserved = QUrl::EncodeReserved,
        DecodeReserved = QUrl::DecodeReserved,
        FullyEncoded = QUrl::FullyEncoded,
        FullyDecoded = QUrl::FullyDecoded,

    };
    Q_ENUM(ComponentFormattingOption)

    enum UserInputResolutionOption {
        DefaultResolution = QUrl::DefaultResolution,
        AssumeLocalFile = QUrl::AssumeLocalFile,

    };
    Q_ENUM(UserInputResolutionOption)

    /*
    // special constructor used as prototype:

          Q_INVOKABLE
          QUrl_Wrapper(QJSEngine* e);

    */


    // special constructor to wrap existing object:

    //Q_INVOKABLE
    QUrl_Wrapper(RJSApi& h, QUrl* o, bool wrappedCreated);


    // destructor:

    virtual ~QUrl_Wrapper();

    // initialization of signal forwarding

    void initConnections();


    // constructors:

    // Class: QUrl
    // Function:
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE
    QUrl_Wrapper

    (


        // RJSApi:
        QObject* h

        ,

        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

#if defined(Q_OS_DARWIN)||defined(Q_QDOC)

#endif


    // non-static functions:

    // Class: QUrl
    // Function: setUrl
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setUrl
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: url
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    url
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: toString
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    toString
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: toDisplayString
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    toDisplayString
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: adjusted
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    adjusted
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: toEncoded
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    toEncoded
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: isValid
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    isValid
    (


    )

    const

    ;

    // Class: QUrl
    // Function: errorString
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    errorString
    (


    )

    const

    ;

    // Class: QUrl
    // Function: isEmpty
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    isEmpty
    (


    )

    const

    ;

    // Class: QUrl
    // Function: clear
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    clear
    (


    )

    ;

    // Class: QUrl
    // Function: setScheme
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setScheme
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: scheme
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    scheme
    (


    )

    const

    ;

    // Class: QUrl
    // Function: setAuthority
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setAuthority
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: authority
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    authority
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: setUserInfo
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setUserInfo
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: userInfo
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    userInfo
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: setUserName
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setUserName
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: userName
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    userName
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: setPassword
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setPassword
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: password
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    password
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: setHost
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setHost
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: host
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    host
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: setPort
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setPort
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: port
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    port
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: setPath
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setPath
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: path
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    path
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: fileName
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    fileName
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: hasQuery
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    hasQuery
    (


    )

    const

    ;

    // Class: QUrl
    // Function: setQuery
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setQuery
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: query
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    query
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: hasFragment
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    hasFragment
    (


    )

    const

    ;

    // Class: QUrl
    // Function: fragment
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    fragment
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: setFragment
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    setFragment
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    ;

    // Class: QUrl
    // Function: resolved
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    resolved
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: isRelative
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    isRelative
    (


    )

    const

    ;

    // Class: QUrl
    // Function: isParentOf
    // Source:
    // Static: false
    // Parameters: 1
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    isParentOf
    (


        const QJSValue&
        a1
        = QJSValue()

    )

    const

    ;

    // Class: QUrl
    // Function: isLocalFile
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    isLocalFile
    (


    )

    const

    ;

    // Class: QUrl
    // Function: toLocalFile
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    toLocalFile
    (


    )

    const

    ;

    // Class: QUrl
    // Function: detach
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    detach
    (


    )

    ;

    // Class: QUrl
    // Function: isDetached
    // Source:
    // Static: false
    // Parameters: 0
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    isDetached
    (


    )

    const

    ;

    // Class: QUrl
    // Function: matches
    // Source:
    // Static: false
    // Parameters: 2
    // preceding Parameters: -1

public:
    Q_INVOKABLE

    QJSValue
    matches
    (


        const QJSValue&
        a1
        = QJSValue()
          ,
        const QJSValue&
        a2
        = QJSValue()

    )

    const

    ;

#if defined(Q_OS_DARWIN)||defined(Q_QDOC)

#endif

    // destroy function for non-copyable objects:
    Q_INVOKABLE void destr() {
        if (wrapped!=nullptr) {

            delete wrapped;

            wrapped = nullptr;
        }

    }


    //public:
    // set engine:
    //Q_INVOKABLE void setHandler(RJSApi* h) {
    //  RJSWrapperObj::setHandler(h);
    //}


    // member functions for static properties, forward to static function



    // protected overwritten functions / events and their public invokable counterparts:

public:

    // get type of wrapped object:
    Q_INVOKABLE
    virtual /*RJSType ID*/ int getWrappedType() const {
        return RJSType_QUrl::getIdStatic();
    }

    // return true if wrapped object is owned by C++ (not deleted):
    Q_INVOKABLE
    virtual bool isCppOwnership() const {

        return false;

    }

    // get wrapped object:
    QUrl* getWrapped() {
        if (wrapped!=nullptr) {
            return wrapped;
        }

        return nullptr;
    }

    // get wrapped object (const):
    QUrl* getWrapped() const {
        if (wrapped!=nullptr) {
            return wrapped;
        }

        return nullptr;
    }

    // get wrapped object as void*:
    virtual void* getWrappedVoid() {
        if (wrapped!=nullptr) {
            return wrapped;
        }

        return nullptr;
    }



    bool hasWrapped() const {
        return wrapped!=nullptr

               ;
    }

    Q_INVOKABLE
    bool isNullWrapper() const {
        return !hasWrapped();
    }

    Q_INVOKABLE
    unsigned long long int getAddress() const {
        if (wrapped!=nullptr) {
            return (unsigned long long int)wrapped;
        }

        return (unsigned long long int)0;
    }



    //public slots:
    //void slotDestroyed(QObject* obj) {
    //  qDebug() << "destroying QObject:" << (long int)obj;
    //}



private:
    // wrapped object:
    QUrl* wrapped;



    bool wrappedCreated;

private:
    // list of registered base casters for this wrapper class:
    static QList<RJSBasecaster_QUrl*> basecasters_QUrl;

public:
    static void registerBasecaster_QUrl(RJSBasecaster_QUrl* bc) {
        basecasters_QUrl.append(bc);
    }

};

Q_DECLARE_METATYPE(QUrl_Wrapper*)

Q_DECLARE_INTERFACE(QUrl_Wrapper, "org.qcad.QUrl_Wrapper")


#endif

