Search in sources :

Example 1 with KeepIf

use of biblemulticonverter.format.paratext.ParatextCharacterContent.KeepIf in project BibleMultiConverter by schierlm.

the class AbstractParatextFormat method filterContents.

private void filterContents(List<ParatextCharacterContentPart> parts, EnumSet<KeepIf> partsToKeep) {
    for (int i = 0; i < parts.size(); i++) {
        ParatextCharacterContentPart part = parts.get(i);
        if (part instanceof AutoClosingFormatting) {
            KeepIf keepCondition = ((AutoClosingFormatting) part).getKind().getKeepIf();
            if (keepCondition != null && !partsToKeep.contains(keepCondition)) {
                parts.remove(i);
                i--;
                continue;
            }
        }
        if (part instanceof ParatextCharacterContentContainer) {
            filterContents(((ParatextCharacterContentContainer) part).getContent(), partsToKeep);
        }
    }
}
Also used : ParatextCharacterContentPart(biblemulticonverter.format.paratext.ParatextCharacterContent.ParatextCharacterContentPart) AutoClosingFormatting(biblemulticonverter.format.paratext.ParatextCharacterContent.AutoClosingFormatting) ParatextCharacterContentContainer(biblemulticonverter.format.paratext.ParatextBook.ParatextCharacterContentContainer) KeepIf(biblemulticonverter.format.paratext.ParatextCharacterContent.KeepIf)

Example 2 with KeepIf

use of biblemulticonverter.format.paratext.ParatextCharacterContent.KeepIf in project BibleMultiConverter by schierlm.

the class AbstractParatextFormat method doImportBooks.

public final List<ParatextBook> doImportBooks(File inputFile) throws Exception {
    List<ParatextBook> result = doImportAllBooks(inputFile);
    String keepParts = System.getProperty("biblemulticonverter.paratext.keepparts", null);
    if (keepParts != null) {
        EnumSet<KeepIf> partsToKeep = EnumSet.noneOf(KeepIf.class);
        for (String flag : keepParts.split("[^A-Za-z]+")) {
            partsToKeep.add(KeepIf.valueOf(flag.toUpperCase()));
        }
        for (int i = 0; i < result.size(); i++) {
            ParatextBook book = result.get(i);
            boolean keep = true;
            if (book.getId().getId().isDeuterocanonical()) {
                keep = partsToKeep.contains(KeepIf.DC);
            } else if (book.getId().getId().isNT()) {
                keep = partsToKeep.contains(KeepIf.NT);
            } else if (book.getId().getId().getZefID() > 0) {
                keep = partsToKeep.contains(KeepIf.OT);
            }
            if (!keep) {
                result.remove(i);
                i--;
                continue;
            }
            for (int j = 0; j < book.getContent().size(); j++) {
                ParatextBookContentPart part = book.getContent().get(i);
                if (part instanceof ParatextCharacterContent) {
                    filterContents(((ParatextCharacterContent) part).getContent(), partsToKeep);
                }
            }
        }
    }
    return result;
}
Also used : ParatextBookContentPart(biblemulticonverter.format.paratext.ParatextBook.ParatextBookContentPart) KeepIf(biblemulticonverter.format.paratext.ParatextCharacterContent.KeepIf)

Aggregations

KeepIf (biblemulticonverter.format.paratext.ParatextCharacterContent.KeepIf)2 ParatextBookContentPart (biblemulticonverter.format.paratext.ParatextBook.ParatextBookContentPart)1 ParatextCharacterContentContainer (biblemulticonverter.format.paratext.ParatextBook.ParatextCharacterContentContainer)1 AutoClosingFormatting (biblemulticonverter.format.paratext.ParatextCharacterContent.AutoClosingFormatting)1 ParatextCharacterContentPart (biblemulticonverter.format.paratext.ParatextCharacterContent.ParatextCharacterContentPart)1