generation/qr-parameters.js

const _MwWrapper = require("../_mwbridge/_mw-wrapper.js");
const  QrStructuredAppendParameters = require("./qr-structured-append-parameters");
const {javaFloat} = require("../_mwbridge/_mw-bridge");


/**
 * QR parameters.
 */
class QrParameters extends _MwWrapper
{
    structuredAppend;

    constructor(mwObject)
    {
        super(mwObject);
        this._initializeWrapperMembers();
    }

    _initializeWrapperMembers()
    {
        this.structuredAppend = new QrStructuredAppendParameters(this.getJavaClass().getStructuredAppendSync());
    }

    /**
     * <p>
     * Extended Channel Interpretation Identifiers. It is used to tell the barcode reader details
     * about the used references for encoding the data in the symbol.
     * Current implementation consists all well known charset encodings.
     * Not supported by MicroQR.
     * </p>
     */
    getECIEncoding()
    {
        return this.getJavaClass().getECIEncodingSync();
    }

    /**
     * <p>
     * Extended Channel Interpretation Identifiers. It is used to tell the barcode reader details
     * about the used references for encoding the data in the symbol.
     * Current implementation consists all well known charset encodings.
     * Not supported by MicroQR.
     * </p>
     */
    setECIEncoding( value)
    {
        this.getJavaClass().setECIEncodingSync(value);
    }

    /**
     * QR structured append parameters.
     */
    getStructuredAppend()
    {
        return this.structuredAppend;
    }

    /**
     * QR structured append parameters.
     */
    setStructuredAppend(value)
    {
        this.structuredAppend = value;
        this.getJavaClass().setStructuredAppendSync(value.getJavaClass());
    }

    /**
     * Extended Channel Interpretation Identifiers. It is used to tell the barcode reader details<br>
     * about the used references for encoding the data in the symbol.<br>
     * Current implementation consists all well known charset encodings.
     * @deprecated This property is obsolete and will be removed in future releases. Instead, use the getECIEncoding().
     */
    getQrECIEncoding()
    {
        return this.getJavaClass().getQrECIEncodingSync();
    }

    /**
     * <p>
     * QR symbology type of BarCode's encoding mode.
     * Default value: QREncodeMode.Auto.
     * </p>
     */
    getEncodeMode()
    {
        return this.getJavaClass().getEncodeModeSync();
    }

    /**
     * <p>
     * QR symbology type of BarCode's encoding mode.
     * Default value: QREncodeMode.Auto.
     * </p>
     */
    setEncodeMode(value)
    {
        this.getJavaClass().setEncodeModeSync(value);
    }

    /**
     * Extended Channel Interpretation Identifiers. It is used to tell the barcode reader details<br>
     * about the used references for encoding the data in the symbol.<br>
     * Current implementation consists all well known charset encodings.
     * @deprecated This property is obsolete and will be removed in future releases. Instead, use the setECIEncoding().
     */
    setQrECIEncoding(value)
    {
        this.getJavaClass().setECIEncodingSync(value);
    }

    /**
     * QR symbology type of BarCode's encoding mode.<br>
     * Default value: QREncodeMode.AUTO.
     */
    getQrEncodeMode()
    {
        return this.getJavaClass().getQrEncodeModeSync();
    }

    /**
     * QR symbology type of BarCode's encoding mode.<br>
     * Default value: QREncodeMode.AUTO.
     * @deprecated This property is obsolete and will be removed in future releases. Instead, use the setEncodeMode().
     */
    setQrEncodeMode(value)
    {
        this.getJavaClass().setEncodeModeSync(value);
    }

    /**
     * QR / MicroQR selector mode. Select ForceQR for standard QR symbols, Auto for MicroQR.
     * @deprecated This property is obsolete and will be removed in future releases. Instead, use the getEncodeMode().
     */
    getQrEncodeType()
    {
        let value = this.getJavaClass().getQrEncodeTypeSync();
        return value;
    }

    /**
     * QR / MicroQR selector mode. Select ForceQR for standard QR symbols, Auto for MicroQR.
     * @deprecated This property is obsolete and will be removed in future releases. Instead, use the setEncodeMode().
     */
    setQrEncodeType(value)
    {
        this.getJavaClass().setQrEncodeTypeSync(value);
    }

    /**
     * <p>
     *  Level of Reed-Solomon error correction for QR, MicroQR and RectMicroQR barcode.
     *  From low to high: LevelL, LevelM, LevelQ, LevelH. See QRErrorLevel.
     * </p>
     */
    getErrorLevel()
    {
        return this.getJavaClass().getErrorLevelSync();
    }

    /**
     * <p>
     *  Level of Reed-Solomon error correction for QR, MicroQR and RectMicroQR barcode.
     *  From low to high: LevelL, LevelM, LevelQ, LevelH. See QRErrorLevel.
     * </p>
     */
    setErrorLevel(value)
    {
        this.getJavaClass().setErrorLevelSync(value);
    }

    /**
     *  Level of Reed-Solomon error correction for QR barcode.<br>
     *  From low to high: LEVEL_L, LEVEL_M, LEVEL_Q, LEVEL_H. see QRErrorLevel.
     * @deprecated This property is obsolete and will be removed in future releases. Instead, use the getErrorLevel().
     */
    getQrErrorLevel()
    {
        return this.getJavaClass().getQrErrorLevelSync();
    }

    /**
     *  Level of Reed-Solomon error correction for QR barcode.<br>
     *  From low to high: LEVEL_L, LEVEL_M, LEVEL_Q, LEVEL_H. see QRErrorLevel.
     * @deprecated This property is obsolete and will be removed in future releases. Instead, use the setErrorLevel().
     */
    setQrErrorLevel(value)
    {
        this.getJavaClass().setErrorLevelSync(value);
    }

    /**
     * <p>
     * Version of QR Code.From Version1 to Version40.
     * Default value is QRVersion.Auto.
     * </p>
     */
    getVersion()
    {
        return this.getJavaClass().getVersionSync();
    }

    /**
     * <p>
     * Version of QR Code.From Version1 to Version40.
     * Default value is QRVersion.Auto.
     * </p>
     */
    setVersion(value)
    {
        this.getJavaClass().setVersionSync(value);
    }

    /**
     * Version of QR Code.<br>
     * From Version1 to Version40 for QR code and from M1 to M4 for MicroQr.<br>
     * Default value is QRVersion.AUTO.
     * @deprecated This property is obsolete and will be removed in future releases. Instead, use the getVersion().
     */
    getQrVersion()
    {
        return this.getJavaClass().getQrVersionSync();
    }

    /**
     * Version of QR Code.<br>
     * From Version1 to Version40 for QR code and from M1 to M4 for MicroQr.<br>
     * Default value is QRVersion.AUTO.
     * @deprecated This property is obsolete and will be removed in future releases. Instead, use the setVersion().
     */
    setQrVersion(value)
    {
        this.getJavaClass().setVersionSync(value);
    }

    /**
     * <p>
     * Version of MicroQR Code. From version M1 to version M4.
     * Default value is MicroQRVersion.Auto.
     * </p>
     */
    getMicroQRVersion()
    {
        return this.getJavaClass().getMicroQRVersionSync();
    }

    /**
     * <p>
     * Version of MicroQR Code. From version M1 to version M4.
     * Default value is MicroQRVersion.Auto.
     * </p>
     */
    setMicroQRVersion(value)
    {
        this.getJavaClass().setMicroQRVersionSync(value);
    }

    /**
     * <p>
     * Version of RectMicroQR Code. From version R7x59 to version R17x139.
     * Default value is RectMicroQRVersion.Auto.
     * </p>
     */
    getRectMicroQrVersion()
    {
        return this.getJavaClass().getRectMicroQrVersionSync();
    }

    /**
     * <p>
     * Version of RectMicroQR Code. From version R7x59 to version R17x139.
     * Default value is RectMicroQRVersion.Auto.
     * </p>
     */
    setRectMicroQrVersion(value)
    {
        this.getJavaClass().setRectMicroQrVersionSync(value);
    }

    /**
     * Height/Width ratio of 2D BarCode module.
     */
    getAspectRatio()
    {
        return this.getJavaClass().getAspectRatioSync();
    }

    /**
     * Height/Width ratio of 2D BarCode module.
     */
    setAspectRatio(value)
    {
        this.getJavaClass().setAspectRatioSync(javaFloat(value));
    }


    /**
     * <p>
     * <p>Gets or sets a value indicating whether GS1 special characters should be encoded in Byte mode for QR and RectMicroQR barcodes.</p>
     * <p>If false, GS1 separators may be encoded as '%' in Alphanumeric mode according to QR specification.</p>
     * <p>If true, GS1 group separators are encoded in Byte mode as the 0x1D character, and '%' characters are also encoded in Byte mode to preserve them as data.</p>
     * <p>This option may improve compatibility with decoders that expect byte-level GS1 group separators and prevents '%' data characters from being interpreted as GS1 separators.</p>
     * </p>
     *
     * @return a value indicating whether GS1 special characters should be encoded in Byte mode for QR and RectMicroQR barcodes.
     */
     getEncodeGS1SeparatorInByteMode()
     {
         return this.getJavaClass().getEncodeGS1SeparatorInByteModeSync();
     }

    /**
     * <p>
     * <p>Gets or sets a value indicating whether GS1 special characters should be encoded in Byte mode for QR and RectMicroQR barcodes.</p>
     * <p>If false, GS1 separators may be encoded as '%' in Alphanumeric mode according to QR specification.</p>
     * <p>If true, GS1 group separators are encoded in Byte mode as the 0x1D character, and '%' characters are also encoded in Byte mode to preserve them as data.</p>
     * <p>This option may improve compatibility with decoders that expect byte-level GS1 group separators and prevents '%' data characters from being interpreted as GS1 separators.</p>
     * </p>
     *
     * @param value a value indicating whether GS1 special characters should be encoded in Byte mode for QR and RectMicroQR barcodes.
     */
    setEncodeGS1SeparatorInByteMode(value)
    {
        this.getJavaClass().setEncodeGS1SeparatorInByteModeSync(value);
    }

    /**
     * Returns a human-readable string representation of this QrParameters.<br>
     * @return A string that represents this QrParameters.
     */
    toString()
    {
        return this.getJavaClass().toStringSync();
    }
}

module.exports = QrParameters;