See
<https://builds.apache.org/job/POI-DSL-OpenJDK/462/display/redirect?page=changes>
Changes:
[fanningpj] [github-115] implement endnote. This closes #115
------------------------------------------
[...truncated 415.96 KB...]
[echo] * <p>The only significant difference between footnotes and
[echo] * end notes is which part they go on. Footnotes are managed by the
Footnotes part
[echo] * {@link XWPFFootnotes} and end notes are managed by the Endnotes
part {@link XWPFEndnotes}.</p>
[echo] * @since 4.0.0
[echo] */
[echo] public abstract class AbstractXWPFFootnoteEndnote implements
Iterable<XWPFParagraph>, IBody {
[echo]
[echo] private List<XWPFParagraph> paragraphs = new ArrayList<>();
[echo] private List<XWPFTable> tables = new ArrayList<>();
[echo] private List<XWPFPictureData> pictures = new ArrayList<>();
[echo] private List<IBodyElement> bodyElements = new ArrayList<>();
[echo] protected CTFtnEdn ctFtnEdn;
[echo] protected AbstractXWPFFootnotesEndnotes footnotes;
[echo] protected XWPFDocument document;
[echo]
[echo] public AbstractXWPFFootnoteEndnote() {
[echo] super();
[echo] }
[echo]
[echo] @Internal
[echo] protected AbstractXWPFFootnoteEndnote(XWPFDocument document,
CTFtnEdn body) {
[echo] ctFtnEdn = body;
[echo] this.document = document;
[echo] init();
[echo] }
[echo]
[echo] @Internal
[echo]
[echo] =====================================================
[echo] == File:
<https://builds.apache.org/job/POI-DSL-OpenJDK/ws/src/ooxml/java/org/apache/poi/xwpf/usermodel/AbstractXWPFFootnotesEndnotes.java>
[echo] =====================================================
[echo] package org.apache.poi.xwpf.usermodel;
[echo]
[echo] import java.util.ArrayList;
[echo] import java.util.List;
[echo]
[echo] import org.apache.poi.ooxml.POIXMLDocumentPart;
[echo] import org.apache.poi.openxml4j.opc.OPCPackage;
[echo] import org.apache.poi.openxml4j.opc.PackagePart;
[echo]
[echo] /**
[echo] * Base class for the Footnotes and Endnotes part implementations.
[echo] * @since 4.0.0
[echo] */
[echo] public abstract class AbstractXWPFFootnotesEndnotes extends
POIXMLDocumentPart {
[echo]
[echo] protected XWPFDocument document;
[echo] protected List<AbstractXWPFFootnoteEndnote> listFootnote = new
ArrayList<>();
[echo] private FootnoteEndnoteIdManager idManager;
[echo]
[echo] public AbstractXWPFFootnotesEndnotes(OPCPackage pkg) {
[echo] super(pkg);
[echo] }
[echo]
[echo] public AbstractXWPFFootnotesEndnotes(OPCPackage pkg,
[echo] String coreDocumentRel) {
[echo] super(pkg, coreDocumentRel);
[echo] }
[echo]
[echo] public AbstractXWPFFootnotesEndnotes() {
[echo] super();
[echo] }
[echo]
[echo] public AbstractXWPFFootnotesEndnotes(PackagePart part) {
[echo] super(part);
[echo] }
[echo]
[echo] public AbstractXWPFFootnotesEndnotes(POIXMLDocumentPart parent,
PackagePart part) {
[echo] super(parent, part);
[echo] }
[echo]
[echo]
[echo] public AbstractXWPFFootnoteEndnote getFootnoteById(int id) {
[echo] for (AbstractXWPFFootnoteEndnote note : listFootnote) {
[echo] if (note.getCTFtnEdn().getId().intValue() == id)
[echo] return note;
[echo] }
[echo] return null;
[echo] }
[echo]
[echo] /**
[echo]
[echo] =====================================================
[echo] == File:
<https://builds.apache.org/job/POI-DSL-OpenJDK/ws/src/ooxml/java/org/apache/poi/xwpf/usermodel/FootnoteEndnoteIdManager.java>
[echo] =====================================================
[echo] package org.apache.poi.xwpf.usermodel;
[echo]
[echo] import java.math.BigInteger;
[echo] import java.util.ArrayList;
[echo] import java.util.List;
[echo]
[echo] /**
[echo] * Manages IDs for footnotes and endnotes.
[echo] * <p>Footnotes and endnotes are managed in separate parts but
[echo] * represent a single namespace of IDs.</p>
[echo] */
[echo] public class FootnoteEndnoteIdManager {
[echo]
[echo] private XWPFDocument document;
[echo]
[echo] public FootnoteEndnoteIdManager(XWPFDocument document) {
[echo] this.document = document;
[echo] }
[echo]
[echo] /**
[echo] * Gets the next ID number.
[echo] *
[echo] * @return ID number to use.
[echo] */
[echo] public BigInteger nextId() {
[echo]
[echo] List<BigInteger> ids = new ArrayList<BigInteger>();
[echo] for (AbstractXWPFFootnoteEndnote note :
document.getFootnotes()) {
[echo] ids.add(note.getId());
[echo] }
[echo] for (AbstractXWPFFootnoteEndnote note :
document.getEndnotes()) {
[echo] ids.add(note.getId());
[echo] }
[echo] int cand = ids.size();
[echo] BigInteger newId = BigInteger.valueOf(cand);
[echo] while (ids.contains(newId)) {
[echo] cand++;
[echo] newId = BigInteger.valueOf(cand);
[echo] }
[echo]
[echo] return newId;
[echo] }
[echo]
[echo]
[echo] }
[echo]
[echo] =====================================================
[echo] == File:
<https://builds.apache.org/job/POI-DSL-OpenJDK/ws/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFEndnote.java>
[echo] =====================================================
[echo] package org.apache.poi.xwpf.usermodel;
[echo]
[echo] import org.apache.poi.util.Internal;
[echo] import
org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFtnEdn;
[echo] import
org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFtnEdnRef;
[echo] import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
[echo]
[echo] /**
[echo] * Represents an end note footnote.
[echo] * <p>End notes are collected at the end of a document or section
rather than
[echo] * at the bottom of a page.</p>
[echo] * <p>Create a new footnote using {@link
XWPFDocument#createEndnote()} or
[echo] * {@link XWPFEndnotes#createFootnote()}.</p>
[echo] * <p>The first body element of a footnote should (or possibly
must) be a paragraph
[echo] * with the first run containing a CTFtnEdnRef object. The {@link
XWPFFootnote#createParagraph()}
[echo] * and {@link XWPFFootnote#createTable()} methods do this for
you.</p>
[echo] * <p>Footnotes have IDs that are unique across all footnotes in
the document. You use
[echo] * the footnote ID to create a reference to a footnote from within
a paragraph.</p>
[echo] * <p>To create a reference to a footnote within a paragraph you
create a run
[echo] * with a CTFtnEdnRef that specifies the ID of the target
paragraph.
[echo] * The {@link
XWPFParagraph#addFootnoteReference(AbstractXWPFFootnoteEndnote)}
[echo] * method does this for you.</p>
[echo] * @since 4.0.0
[echo] */
[echo] public class XWPFEndnote extends AbstractXWPFFootnoteEndnote {
[echo]
[echo] public XWPFEndnote() {}
[echo]
[echo] @Internal
[echo] public XWPFEndnote(XWPFDocument document, CTFtnEdn body) {
[echo] super(document, body);
[echo] }
[echo]
[echo] @Internal
[echo] public XWPFEndnote(CTFtnEdn note, AbstractXWPFFootnotesEndnotes
footnotes) {
[echo] super(note, footnotes);
[echo] }
[echo]
[echo] /**
[echo] * Ensure that the specified paragraph has a reference marker
for this
[echo] * end note by adding a footnote reference if one is not found.
[echo] * <p>This method is for the first paragraph in the footnote,
not
[echo] * paragraphs that will refer to the footnote. For references to
[echo] * the footnote, use {@link
XWPFParagraph#addFootnoteReference(AbstractXWPFFootnoteEndnote))}.
[echo] * </p>
[echo] * <p>The first run of the first paragraph in a footnote should
[echo] * contain a {@link CTFtnEdnRef} object.</p>
[echo] *
[echo] * @param p The {@link XWPFParagraph} to ensure
[echo] * @since 4.0.0
[echo]
[echo] =====================================================
[echo] == File:
<https://builds.apache.org/job/POI-DSL-OpenJDK/ws/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFEndnotes.java>
[echo] =====================================================
[echo] package org.apache.poi.xwpf.usermodel;
[echo]
[echo] import static
org.apache.poi.ooxml.POIXMLTypeLoader.DEFAULT_XML_OPTIONS;
[echo]
[echo] import java.io.IOException;
[echo] import java.io.InputStream;
[echo] import java.io.OutputStream;
[echo] import java.math.BigInteger;
[echo] import java.util.ArrayList;
[echo] import java.util.List;
[echo]
[echo] import javax.xml.namespace.QName;
[echo]
[echo] import org.apache.poi.ooxml.POIXMLException;
[echo] import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
[echo] import org.apache.poi.openxml4j.opc.PackagePart;
[echo] import org.apache.poi.util.Internal;
[echo] import org.apache.xmlbeans.XmlException;
[echo] import org.apache.xmlbeans.XmlOptions;
[echo] import
org.openxmlformats.schemas.wordprocessingml.x2006.main.CTEndnotes;
[echo] import
org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFtnEdn;
[echo] import
org.openxmlformats.schemas.wordprocessingml.x2006.main.EndnotesDocument;
[echo] import
org.openxmlformats.schemas.wordprocessingml.x2006.main.STFtnEdn;
[echo]
[echo]
[echo] /**
[echo] * Looks after the collection of end notes for a document.
[echo] * Managed end notes ({@link XWPFEndnote}).
[echo] * @since 4.0.0
[echo] */
[echo] public class XWPFEndnotes extends AbstractXWPFFootnotesEndnotes {
[echo]
[echo] protected CTEndnotes ctEndnotes;
[echo]
[echo] public XWPFEndnotes() {
[echo] super();
[echo] }
[echo]
[echo] /**
[echo] * Construct XWPFEndnotes from a package part
[echo] *
[echo] * @param part the package part holding the data of the
footnotes,
[echo] *
[echo] * @since POI 3.14-Beta1
[echo] */
[echo] public XWPFEndnotes(PackagePart part) throws IOException,
OpenXML4JException {
[echo] super(part);
[echo] }
[echo]
[echo] /**
BUILD FAILED
<https://builds.apache.org/job/POI-DSL-OpenJDK/ws/build.xml>:2187: condition
satisfied
Total time: 19 minutes 39 seconds
Build step 'Invoke Ant' marked build as failure
Skipping publisher since build result is FAILURE
Archiving artifacts
[Fast Archiver] Compressed 234.52 MB of artifacts by 42.5% relative to #461
Skipping publisher since build result is FAILURE
Recording test results
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]