/*
 * SDK Pullenti Unitext, version 4.33, fabruary 2026. Copyright (c) 2013-2026, Pullenti. All rights reserved. 
 * Non-Commercial Freeware and Commercial Software. 
 * This class is generated using the converter Unisharping (www.unisharping.ru) from Pullenti C# project. 
 * The latest version of the code is available on the site www.pullenti.ru
 */

package com.pullenti.unitext;

/**
 * Параметры корректировки (оптимизации) представления в параметрах создания CreateDocumentParam.CorrextParams.
 * Параметры корректировки документа
 */
public class CorrectDocumentParam {

    /**
     * Если есть разбивка на страницы, при этом идут нумерация или колонтитулы вверху или внизу страницы, 
     * то они удаляются из документа. По умолчанию, true.
     */
    public boolean removePageBreakNumeration = true;

    /**
     * Если документ принудительно отформатирован так, что переходы на новую строку 
     * фактически не являтся окончаниями параграфов, то эта ситуация будет определена и 
     * соответствующие переходы будут заменены на пробелы. По умолчанию, true.
     */
    public boolean removeFalseNewLines = true;

    /**
     * Восстановить сноски, которые оформляются прямо в тексте в угловых скобках, 
     * а сама сноска чуть ниже по тексту. По умолчанию, true.
     */
    public boolean restoreTextFootnotes = true;

    /**
     * Восстановить таблицы, которые в тексте оформляются псевдографикой. По умолчанию, true.
     */
    public boolean restoreTables = true;

    /**
     * Удалять пустые колонки и строки в таблицах, а также таблицы из одного элемента
     */
    public boolean removeEmptyTables = true;

    /**
     * Если две таблицы на разных страницах имеют одинаковое число столбцов и идут стык в стык, 
     * то объединять их
     */
    public boolean concatTables = true;

    /**
     * Заменять неразрывные пробелы на обычные пробелы. По умолчанию, true.
     */
    public boolean replaceNbspBySpace = true;

    /**
     * Оптимизировать структуру, удалив лишние элементы
     */
    public boolean optimizeStructure = true;

    /**
     * Преобразовывать списки (UnitextList) в контейнеры (UnitextContainer)
     */
    public boolean transformListsToContainers = false;

    public boolean getChooseAll() {
        return (((removePageBreakNumeration & removeFalseNewLines & restoreTextFootnotes) & restoreTables & replaceNbspBySpace) & optimizeStructure & removeEmptyTables) & concatTables;
    }

    public boolean setChooseAll(boolean value) {
        removePageBreakNumeration = value;
        removeFalseNewLines = value;
        restoreTextFootnotes = value;
        restoreTables = value;
        replaceNbspBySpace = value;
        optimizeStructure = value;
        removeEmptyTables = value;
        concatTables = value;
        return value;
    }

    public CorrectDocumentParam() {
    }
}
