Search in sources :

Example 1 with VERSE

use of biblemulticonverter.schema.haggai.VERSE in project BibleMultiConverter by schierlm.

the class HaggaiXML method parseChapterObject.

private void parseChapterObject(Object e3, Chapter chapter, Map<BookID, String> abbrMap, List<Headline> headlineBuffer) throws IOException {
    if (e3 instanceof CAPTION) {
        CAPTION caption = (CAPTION) e3;
        Headline h = new Headline(9);
        if (parseContent(h.getAppendVisitor(), caption.getContent(), abbrMap)) {
            h.trimWhitespace();
            h.finished();
            headlineBuffer.add(h);
        }
    } else if (e3 instanceof REMARK) {
        REMARK remark = (REMARK) e3;
        Verse v = chapter.getVerses().get(chapter.getVerses().size() - 1);
        if (remark.getContent().size() != 1)
            return;
        String remarkText = normalize((String) remark.getContent().get(0), true).trim();
        v.getAppendVisitor().visitFootnote().visitText(remarkText);
    } else if (e3 instanceof PROLOG) {
        PROLOG prolog = (PROLOG) e3;
        if (chapter.getProlog() != null)
            return;
        FormattedText prologText = new FormattedText();
        if (parseContent(prologText.getAppendVisitor(), prolog.getContent(), abbrMap)) {
            prologText.trimWhitespace();
            prologText.finished();
            chapter.setProlog(prologText);
        }
    } else if (e3 instanceof PARAGRAPH) {
        PARAGRAPH para = (PARAGRAPH) e3;
        for (Object ee3 : para.getCAPTIONOrPROLOGOrREMARK()) {
            parseChapterObject(ee3, chapter, abbrMap, headlineBuffer);
        }
        chapter.getVerses().get(chapter.getVerses().size() - 1).getAppendVisitor().visitLineBreak(LineBreakKind.PARAGRAPH);
    } else if (e3 instanceof JAXBElement<?>) {
        JAXBElement<?> je = (JAXBElement<?>) e3;
        if (je.getName().getLocalPart().equals("VERSE") && je.getValue() instanceof VERSE) {
            VERSE vers = (VERSE) je.getValue();
            int vnumber = vers.getVnumber().intValue();
            if (vnumber == 0)
                vnumber = chapter.getVerses().size() + 1;
            String verseNumber = "" + vnumber;
            while (chapter.getVerseIndex(verseNumber) != -1) {
                String infix = "";
                for (char ch = 'a'; ch <= 'z'; ch++) {
                    if (chapter.getVerseIndex(vnumber + infix + ch) == -1) {
                        verseNumber = vnumber + infix + ch;
                        break;
                    }
                }
                infix += "-";
            }
            Verse verse = new Verse(verseNumber);
            Visitor<RuntimeException> visitor = verse.getAppendVisitor();
            boolean contentFound = false;
            if (headlineBuffer.size() > 0) {
                for (Headline h : headlineBuffer) {
                    h.accept(visitor.visitHeadline(h.getDepth()));
                }
                headlineBuffer.clear();
                contentFound = true;
            }
            contentFound |= parseContent(visitor, vers.getContent(), abbrMap);
            if (contentFound) {
                verse.trimWhitespace();
                chapter.getVerses().add(verse);
            }
        } else {
            throw new IOException(je.getName() + "/" + je.getDeclaredType());
        }
    } else {
        throw new IOException(e3.getClass().toString());
    }
}
Also used : PARAGRAPH(biblemulticonverter.schema.haggai.PARAGRAPH) VERSE(biblemulticonverter.schema.haggai.VERSE) FormattedText(biblemulticonverter.data.FormattedText) JAXBElement(javax.xml.bind.JAXBElement) IOException(java.io.IOException) Headline(biblemulticonverter.data.FormattedText.Headline) PROLOG(biblemulticonverter.schema.haggai.PROLOG) CAPTION(biblemulticonverter.schema.haggai.CAPTION) REMARK(biblemulticonverter.schema.haggai.REMARK) VirtualVerse(biblemulticonverter.data.VirtualVerse) Verse(biblemulticonverter.data.Verse)

Example 2 with VERSE

use of biblemulticonverter.schema.haggai.VERSE in project BibleMultiConverter by schierlm.

the class HaggaiXML method createXMLBible.

protected XMLBIBLE createXMLBible(Bible bible) throws Exception {
    ObjectFactory of = new ObjectFactory();
    XMLBIBLE doc = of.createXMLBIBLE();
    doc.setBiblename(bible.getName());
    doc.setINFORMATION(new JAXBElement<INFORMATION>(new QName("INFORMATION"), INFORMATION.class, of.createINFORMATION()));
    MetadataBook metadata = bible.getMetadataBook();
    if (metadata != null) {
        for (String key : metadata.getKeys()) {
            String value = metadata.getValue(key);
            if (value.equals("-empty-"))
                value = "";
            if (key.equals(MetadataBookKey.status.toString())) {
                doc.setStatus(ModuleStatus.fromValue(value));
            } else if (key.equals(MetadataBookKey.version.toString())) {
                doc.setVersion(value);
            } else if (key.equals(MetadataBookKey.revision.toString())) {
                doc.setRevision(new BigInteger(value));
            } else if (!key.contains("@")) {
                Pattern regex = INFORMATION_FIELDS.get(MetadataBookKey.valueOf(key));
                if (regex != null && regex.matcher(value).matches())
                    doc.getINFORMATION().getValue().getTitleOrCreatorOrDescription().add(new JAXBElement<String>(new QName(key), String.class, value));
            }
        }
    }
    for (Book bk : bible.getBooks()) {
        if (bk.getId().equals(BookID.METADATA))
            continue;
        if (bk.getId().getZefID() <= 0) {
            System.out.println("WARNING: Unable to export book " + bk.getAbbr());
            continue;
        }
        BIBLEBOOK bb = of.createBIBLEBOOK();
        bb.setBnumber(BigInteger.valueOf(bk.getId().getZefID()));
        bb.setBsname(bk.getShortName());
        bb.setBname(bk.getLongName());
        int cnumber = 0;
        for (Chapter ccc : bk.getChapters()) {
            cnumber++;
            if (ccc.getVerses().size() == 0)
                continue;
            CHAPTER cc = of.createCHAPTER();
            cc.setCnumber(BigInteger.valueOf(cnumber));
            bb.getCAPTIONOrPROLOGOrREMARK().add(new JAXBElement<CHAPTER>(new QName("CHAPTER"), CHAPTER.class, cc));
            if (ccc.getProlog() != null) {
                PROLOG prolog = of.createPROLOG();
                ccc.getProlog().accept(new CreateContentVisitor(of, prolog.getContent(), null));
                cc.getCAPTIONOrPARAGRAPHOrVERSE().add(new JAXBElement<PROLOG>(new QName("PROLOG"), PROLOG.class, prolog));
            }
            for (VirtualVerse vv : ccc.createVirtualVerses()) {
                for (Headline h : vv.getHeadlines()) {
                    CAPTION caption = of.createCAPTION();
                    h.accept(new CreateContentVisitor(of, caption.getContent(), null));
                    cc.getCAPTIONOrPARAGRAPHOrVERSE().add(new JAXBElement<CAPTION>(new QName("CAPTION"), CAPTION.class, caption));
                }
                VERSE vers = of.createVERSE();
                vers.setVnumber(BigInteger.valueOf(vv.getNumber()));
                for (Verse v : vv.getVerses()) {
                    if (!v.getNumber().equals("" + vv.getNumber())) {
                        STYLE verseNum = of.createSTYLE();
                        verseNum.setFs(TStyleFix.BOLD);
                        verseNum.getContent().add("(" + v.getNumber() + ")");
                        vers.getContent().add(new JAXBElement<STYLE>(new QName("STYLE"), STYLE.class, verseNum));
                        vers.getContent().add(" ");
                    }
                    v.accept(new CreateContentVisitor(of, vers.getContent(), vers));
                }
                cc.getCAPTIONOrPARAGRAPHOrVERSE().add(new JAXBElement<VERSE>(new QName("VERSE"), VERSE.class, vers));
            }
        }
        doc.getBIBLEBOOK().add(new JAXBElement<BIBLEBOOK>(new QName("BIBLEBOOK"), BIBLEBOOK.class, bb));
    }
    return doc;
}
Also used : VirtualVerse(biblemulticonverter.data.VirtualVerse) VERSE(biblemulticonverter.schema.haggai.VERSE) ObjectFactory(biblemulticonverter.schema.haggai.ObjectFactory) Book(biblemulticonverter.data.Book) MetadataBook(biblemulticonverter.data.MetadataBook) Headline(biblemulticonverter.data.FormattedText.Headline) PROLOG(biblemulticonverter.schema.haggai.PROLOG) MetadataBook(biblemulticonverter.data.MetadataBook) Pattern(java.util.regex.Pattern) XMLBIBLE(biblemulticonverter.schema.haggai.XMLBIBLE) INFORMATION(biblemulticonverter.schema.haggai.INFORMATION) QName(javax.xml.namespace.QName) Chapter(biblemulticonverter.data.Chapter) STYLE(biblemulticonverter.schema.haggai.STYLE) BIBLEBOOK(biblemulticonverter.schema.haggai.BIBLEBOOK) CHAPTER(biblemulticonverter.schema.haggai.CHAPTER) BigInteger(java.math.BigInteger) CAPTION(biblemulticonverter.schema.haggai.CAPTION) VirtualVerse(biblemulticonverter.data.VirtualVerse) Verse(biblemulticonverter.data.Verse)

Aggregations

Headline (biblemulticonverter.data.FormattedText.Headline)2 Verse (biblemulticonverter.data.Verse)2 VirtualVerse (biblemulticonverter.data.VirtualVerse)2 CAPTION (biblemulticonverter.schema.haggai.CAPTION)2 PROLOG (biblemulticonverter.schema.haggai.PROLOG)2 VERSE (biblemulticonverter.schema.haggai.VERSE)2 Book (biblemulticonverter.data.Book)1 Chapter (biblemulticonverter.data.Chapter)1 FormattedText (biblemulticonverter.data.FormattedText)1 MetadataBook (biblemulticonverter.data.MetadataBook)1 BIBLEBOOK (biblemulticonverter.schema.haggai.BIBLEBOOK)1 CHAPTER (biblemulticonverter.schema.haggai.CHAPTER)1 INFORMATION (biblemulticonverter.schema.haggai.INFORMATION)1 ObjectFactory (biblemulticonverter.schema.haggai.ObjectFactory)1 PARAGRAPH (biblemulticonverter.schema.haggai.PARAGRAPH)1 REMARK (biblemulticonverter.schema.haggai.REMARK)1 STYLE (biblemulticonverter.schema.haggai.STYLE)1 XMLBIBLE (biblemulticonverter.schema.haggai.XMLBIBLE)1 IOException (java.io.IOException)1 BigInteger (java.math.BigInteger)1