You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2015/07/19 21:00:38 UTC

svn commit: r1691843 [16/30] - in /poi/branches/common_sl: ./ .settings/ legal/ osgi/ osgi/src/ src/examples/src/org/apache/poi/hpsf/examples/ src/examples/src/org/apache/poi/hssf/usermodel/examples/ src/examples/src/org/apache/poi/ss/examples/ src/exa...

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFactory.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFactory.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFactory.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFactory.java Sun Jul 19 19:00:32 2015
@@ -28,30 +28,29 @@ import org.apache.poi.openxml4j.opc.Pack
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 
-/**
- * @author Yegor Kozlov
- */
-public final class XWPFFactory extends POIXMLFactory  {
-
-    private static final POILogger logger = POILogFactory.getLogger(XWPFFactory.class);
-
-    private XWPFFactory(){
-
-    }
-
-    private static final XWPFFactory inst = new XWPFFactory();
-
-    public static XWPFFactory getInstance(){
-        return inst;
-    }
-
-    @Override
-    public POIXMLDocumentPart createDocumentPart(POIXMLDocumentPart parent, PackageRelationship rel, PackagePart part){
-        POIXMLRelation descriptor = XWPFRelation.getInstance(rel.getRelationshipType());
-        if(descriptor == null || descriptor.getRelationClass() == null){
-            logger.log(POILogger.DEBUG, "using default POIXMLDocumentPart for " + rel.getRelationshipType());
-            return new POIXMLDocumentPart(part, rel);
-        }
+/**
+ * @author Yegor Kozlov
+ */
+public final class XWPFFactory extends POIXMLFactory {
+
+    private static final POILogger logger = POILogFactory.getLogger(XWPFFactory.class);
+    private static final XWPFFactory inst = new XWPFFactory();
+
+    private XWPFFactory() {
+
+    }
+
+    public static XWPFFactory getInstance() {
+        return inst;
+    }
+
+    @Override
+    public POIXMLDocumentPart createDocumentPart(POIXMLDocumentPart parent, PackageRelationship rel, PackagePart part) {
+        POIXMLRelation descriptor = XWPFRelation.getInstance(rel.getRelationshipType());
+        if (descriptor == null || descriptor.getRelationClass() == null) {
+            logger.log(POILogger.DEBUG, "using default POIXMLDocumentPart for " + rel.getRelationshipType());
+            return new POIXMLDocumentPart(part, rel);
+        }
 
         try {
             Class<? extends POIXMLDocumentPart> cls = descriptor.getRelationClass();
@@ -59,23 +58,23 @@ public final class XWPFFactory extends P
                 Constructor<? extends POIXMLDocumentPart> constructor = cls.getDeclaredConstructor(POIXMLDocumentPart.class, PackagePart.class, PackageRelationship.class);
                 return constructor.newInstance(parent, part, rel);
             } catch (NoSuchMethodException e) {
-                Constructor<? extends POIXMLDocumentPart> constructor = cls.getDeclaredConstructor(PackagePart.class, PackageRelationship.class);
-                return constructor.newInstance(part, rel);
-            }
-        } catch (Exception e){
-            throw new POIXMLException(e);
-        }
-    }
-
-    @Override
-    public POIXMLDocumentPart newDocumentPart(POIXMLRelation descriptor){
-        try {
-            Class<? extends POIXMLDocumentPart> cls = descriptor.getRelationClass();
-            Constructor<? extends POIXMLDocumentPart> constructor = cls.getDeclaredConstructor();
-            return constructor.newInstance();
-        } catch (Exception e){
-            throw new POIXMLException(e);
-        }
-    }
+                Constructor<? extends POIXMLDocumentPart> constructor = cls.getDeclaredConstructor(PackagePart.class, PackageRelationship.class);
+                return constructor.newInstance(part, rel);
+            }
+        } catch (Exception e) {
+            throw new POIXMLException(e);
+        }
+    }
+
+    @Override
+    public POIXMLDocumentPart newDocumentPart(POIXMLRelation descriptor) {
+        try {
+            Class<? extends POIXMLDocumentPart> cls = descriptor.getRelationClass();
+            Constructor<? extends POIXMLDocumentPart> constructor = cls.getDeclaredConstructor();
+            return constructor.newInstance();
+        } catch (Exception e) {
+            throw new POIXMLException(e);
+        }
+    }
 
 }

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFooter.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFooter.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFooter.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFooter.java Sun Jul 19 19:00:32 2015
@@ -53,16 +53,16 @@ public class XWPFFooter extends XWPFHead
         while (cursor.toNextSelection()) {
             XmlObject o = cursor.getObject();
             if (o instanceof CTP) {
-                XWPFParagraph p = new XWPFParagraph((CTP)o, this);
+                XWPFParagraph p = new XWPFParagraph((CTP) o, this);
                 paragraphs.add(p);
                 bodyElements.add(p);
             }
             if (o instanceof CTTbl) {
-                XWPFTable t = new XWPFTable((CTTbl)o, this);
+                XWPFTable t = new XWPFTable((CTTbl) o, this);
                 tables.add(t);
                 bodyElements.add(t);
             }
-            
+
         }
         cursor.dispose();
     }
@@ -78,7 +78,7 @@ public class XWPFFooter extends XWPFHead
     protected void commit() throws IOException {
         XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
         xmlOptions.setSaveSyntheticDocumentElement(new QName(CTNumbering.type.getName().getNamespaceURI(), "ftr"));
-        Map<String,String> map = new HashMap<String, String>();
+        Map<String, String> map = new HashMap<String, String>();
         map.put("http://schemas.openxmlformats.org/markup-compatibility/2006", "ve");
         map.put("urn:schemas-microsoft-com:office:office", "o");
         map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r");
@@ -95,8 +95,8 @@ public class XWPFFooter extends XWPFHead
         out.close();
     }
 
-    @Override  
-    protected void onDocumentRead() throws IOException{
+    @Override
+    protected void onDocumentRead() throws IOException {
         super.onDocumentRead();
         FtrDocument ftrDocument = null;
         InputStream is;
@@ -111,19 +111,19 @@ public class XWPFFooter extends XWPFHead
             while (cursor.toNextSelection()) {
                 XmlObject o = cursor.getObject();
                 if (o instanceof CTP) {
-                    XWPFParagraph p = new XWPFParagraph((CTP)o, this);
+                    XWPFParagraph p = new XWPFParagraph((CTP) o, this);
                     paragraphs.add(p);
                     bodyElements.add(p);
                 }
                 if (o instanceof CTTbl) {
-                    XWPFTable t = new XWPFTable((CTTbl)o, this);
+                    XWPFTable t = new XWPFTable((CTTbl) o, this);
                     tables.add(t);
                     bodyElements.add(t);
                 }
-                if (o instanceof CTSdtBlock){
-                   XWPFSDT c = new XWPFSDT((CTSdtBlock)o, this);
-                   bodyElements.add(c);
-               }
+                if (o instanceof CTSdtBlock) {
+                    XWPFSDT c = new XWPFSDT((CTSdtBlock) o, this);
+                    bodyElements.add(c);
+                }
             }
             cursor.dispose();
         } catch (Exception e) {
@@ -133,6 +133,7 @@ public class XWPFFooter extends XWPFHead
 
     /**
      * get the PartType of the body
+     *
      * @see org.apache.poi.xwpf.usermodel.IBody#getPartType()
      */
     public BodyType getPartType() {

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnote.java Sun Jul 19 19:00:32 2015
@@ -27,64 +27,64 @@ import org.openxmlformats.schemas.wordpr
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSdtBlock;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;
-
-public class XWPFFootnote implements Iterable<XWPFParagraph>,IBody {
-    private List<XWPFParagraph> paragraphs = new ArrayList<XWPFParagraph>();
-    private List<XWPFTable> tables= new ArrayList<XWPFTable>();
-    private List<XWPFPictureData> pictures = new ArrayList<XWPFPictureData>();
-    private List<IBodyElement> bodyElements = new ArrayList<IBodyElement>();
-
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;
+
+public class XWPFFootnote implements Iterable<XWPFParagraph>, IBody {
+    private List<XWPFParagraph> paragraphs = new ArrayList<XWPFParagraph>();
+    private List<XWPFTable> tables = new ArrayList<XWPFTable>();
+    private List<XWPFPictureData> pictures = new ArrayList<XWPFPictureData>();
+    private List<IBodyElement> bodyElements = new ArrayList<IBodyElement>();
+
     private CTFtnEdn ctFtnEdn;
     private XWPFFootnotes footnotes;
-    private XWPFDocument document;
-
-    public XWPFFootnote(CTFtnEdn note, XWPFFootnotes xFootnotes) {
-       footnotes = xFootnotes;
-       ctFtnEdn = note;
-       document = xFootnotes.getXWPFDocument();
-       init();
-    }
-
-    public XWPFFootnote(XWPFDocument document, CTFtnEdn body) {
-       ctFtnEdn = body;
-       this.document = document;
-       init();
-    }
-    
-    private void init(){
-       XmlCursor cursor = ctFtnEdn.newCursor();
-       //copied from XWPFDocument...should centralize this code
-       //to avoid duplication
-       cursor.selectPath("./*");
-       while (cursor.toNextSelection()) {
-           XmlObject o = cursor.getObject();
-           if (o instanceof CTP) {
-               XWPFParagraph p = new XWPFParagraph((CTP) o, this);
-               bodyElements.add(p);
-               paragraphs.add(p);
-           } else if (o instanceof CTTbl) {
-               XWPFTable t = new XWPFTable((CTTbl) o, this);
-               bodyElements.add(t);
-               tables.add(t);
-           } else if (o instanceof CTSdtBlock){
-               XWPFSDT c = new XWPFSDT((CTSdtBlock)o, this);
-               bodyElements.add(c);
-           }
-
-       }
-       cursor.dispose();
-   }
-
-    public List<XWPFParagraph> getParagraphs() {
-        return paragraphs;
-    }
-
-    public Iterator<XWPFParagraph> iterator(){
-        return paragraphs.iterator();
-    }
-
+    private XWPFDocument document;
+
+    public XWPFFootnote(CTFtnEdn note, XWPFFootnotes xFootnotes) {
+        footnotes = xFootnotes;
+        ctFtnEdn = note;
+        document = xFootnotes.getXWPFDocument();
+        init();
+    }
+
+    public XWPFFootnote(XWPFDocument document, CTFtnEdn body) {
+        ctFtnEdn = body;
+        this.document = document;
+        init();
+    }
+
+    private void init() {
+        XmlCursor cursor = ctFtnEdn.newCursor();
+        //copied from XWPFDocument...should centralize this code
+        //to avoid duplication
+        cursor.selectPath("./*");
+        while (cursor.toNextSelection()) {
+            XmlObject o = cursor.getObject();
+            if (o instanceof CTP) {
+                XWPFParagraph p = new XWPFParagraph((CTP) o, this);
+                bodyElements.add(p);
+                paragraphs.add(p);
+            } else if (o instanceof CTTbl) {
+                XWPFTable t = new XWPFTable((CTTbl) o, this);
+                bodyElements.add(t);
+                tables.add(t);
+            } else if (o instanceof CTSdtBlock) {
+                XWPFSDT c = new XWPFSDT((CTSdtBlock) o, this);
+                bodyElements.add(c);
+            }
+
+        }
+        cursor.dispose();
+    }
+
+    public List<XWPFParagraph> getParagraphs() {
+        return paragraphs;
+    }
+
+    public Iterator<XWPFParagraph> iterator() {
+        return paragraphs.iterator();
+    }
+
     public List<XWPFTable> getTables() {
         return tables;
     }
@@ -95,226 +95,231 @@ public class XWPFFootnote implements Ite
 
     public List<IBodyElement> getBodyElements() {
         return bodyElements;
-    }
-
-    public CTFtnEdn getCTFtnEdn() {
-       return ctFtnEdn;
-    }
-
-    public void setCTFtnEdn(CTFtnEdn footnote) {
-       ctFtnEdn = footnote;
-    }
-
-    /**
+    }
+
+    public CTFtnEdn getCTFtnEdn() {
+        return ctFtnEdn;
+    }
+
+    public void setCTFtnEdn(CTFtnEdn footnote) {
+        ctFtnEdn = footnote;
+    }
+
+    /**
      * @param pos in table array
      * @return The table at position pos
-     * @see org.apache.poi.xwpf.usermodel.IBody#getTableArray(int)
-     */
-    public XWPFTable getTableArray(int pos) {
-        if(pos > 0 && pos < tables.size()){
-            return tables.get(pos);
-        }
-        return null;
-    }
-
-    /**
-     * inserts an existing XWPFTable to the arrays bodyElements and tables
-     * @param pos
-     * @param table
-     * @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int pos, XWPFTable table)
+     * @see org.apache.poi.xwpf.usermodel.IBody#getTableArray(int)
+     */
+    public XWPFTable getTableArray(int pos) {
+        if (pos > 0 && pos < tables.size()) {
+            return tables.get(pos);
+        }
+        return null;
+    }
+
+    /**
+     * inserts an existing XWPFTable to the arrays bodyElements and tables
+     *
+     * @param pos
+     * @param table
+     * @see org.apache.poi.xwpf.usermodel.IBody#insertTable(int pos, XWPFTable table)
      */
     @SuppressWarnings("deprecation")
     public void insertTable(int pos, XWPFTable table) {
-        bodyElements.add(pos, table);
-        int i = 0;
-        for (CTTbl tbl : ctFtnEdn.getTblArray()) {
-            if(tbl == table.getCTTbl()){
-                break;
-            }
-            i++;
+        bodyElements.add(pos, table);
+        int i = 0;
+        for (CTTbl tbl : ctFtnEdn.getTblArray()) {
+            if (tbl == table.getCTTbl()) {
+                break;
+            }
+            i++;
         }
         tables.add(i, table);
 
     }
 
-    /**
-     * if there is a corresponding {@link XWPFTable} of the parameter ctTable in the tableList of this header
-     * the method will return this table
-     * if there is no corresponding {@link XWPFTable} the method will return null 
-     * @param ctTable
-     * @see org.apache.poi.xwpf.usermodel.IBody#getTable(CTTbl ctTable)
-     */
-    public XWPFTable getTable(CTTbl ctTable){
-        for (XWPFTable table : tables) {
-            if(table==null)
-                return null;
-            if(table.getCTTbl().equals(ctTable))
-                return table;
-        }
-        return null;
-    }
-
-    /**
-     * if there is a corresponding {@link XWPFParagraph} of the parameter ctTable in the paragraphList of this header or footer
-     * the method will return this paragraph
-     * if there is no corresponding {@link XWPFParagraph} the method will return null 
-     * @param p is instance of CTP and is searching for an XWPFParagraph
-     * @return null if there is no XWPFParagraph with an corresponding CTPparagraph in the paragraphList of this header or footer
-     * 		   XWPFParagraph with the correspondig CTP p
-     * @see org.apache.poi.xwpf.usermodel.IBody#getParagraph(CTP p)
-     */
-    public XWPFParagraph getParagraph(CTP p){
-        for (XWPFParagraph paragraph : paragraphs) {
-            if(paragraph.getCTP().equals(p))
-                return paragraph;
-        }
-        return null;
-    }
-
-    /**
-     * Returns the paragraph that holds
-     *  the text of the header or footer.
-     * @see org.apache.poi.xwpf.usermodel.IBody#getParagraphArray(int pos)
-     */
-    public XWPFParagraph getParagraphArray(int pos) {
+    /**
+     * if there is a corresponding {@link XWPFTable} of the parameter ctTable in the tableList of this header
+     * the method will return this table
+     * if there is no corresponding {@link XWPFTable} the method will return null
+     *
+     * @param ctTable
+     * @see org.apache.poi.xwpf.usermodel.IBody#getTable(CTTbl ctTable)
+     */
+    public XWPFTable getTable(CTTbl ctTable) {
+        for (XWPFTable table : tables) {
+            if (table == null)
+                return null;
+            if (table.getCTTbl().equals(ctTable))
+                return table;
+        }
+        return null;
+    }
+
+    /**
+     * if there is a corresponding {@link XWPFParagraph} of the parameter ctTable in the paragraphList of this header or footer
+     * the method will return this paragraph
+     * if there is no corresponding {@link XWPFParagraph} the method will return null
+     *
+     * @param p is instance of CTP and is searching for an XWPFParagraph
+     * @return null if there is no XWPFParagraph with an corresponding CTPparagraph in the paragraphList of this header or footer
+     * XWPFParagraph with the correspondig CTP p
+     * @see org.apache.poi.xwpf.usermodel.IBody#getParagraph(CTP p)
+     */
+    public XWPFParagraph getParagraph(CTP p) {
+        for (XWPFParagraph paragraph : paragraphs) {
+            if (paragraph.getCTP().equals(p))
+                return paragraph;
+        }
+        return null;
+    }
+
+    /**
+     * Returns the paragraph that holds
+     * the text of the header or footer.
+     *
+     * @see org.apache.poi.xwpf.usermodel.IBody#getParagraphArray(int pos)
+     */
+    public XWPFParagraph getParagraphArray(int pos) {
 
         return paragraphs.get(pos);
     }
-
-    /**
-     * get the TableCell which belongs to the TableCell
-     * @param cell
-     * @see org.apache.poi.xwpf.usermodel.IBody#getTableCell(CTTc cell)
-     */
+
+    /**
+     * get the TableCell which belongs to the TableCell
+     *
+     * @param cell
+     * @see org.apache.poi.xwpf.usermodel.IBody#getTableCell(CTTc cell)
+     */
     public XWPFTableCell getTableCell(CTTc cell) {
-        XmlCursor cursor = cell.newCursor();
-        cursor.toParent();
-        XmlObject o = cursor.getObject();
-        if(!(o instanceof CTRow)){
-            return null;
-        }
-        CTRow row = (CTRow)o;
-        cursor.toParent();
-        o = cursor.getObject();
-        cursor.dispose();
-        if(! (o instanceof CTTbl)){
-            return null;
-        }
-        CTTbl tbl = (CTTbl) o;
-        XWPFTable table = getTable(tbl);
-        if(table == null){
-            return null;
-        }
-        XWPFTableRow tableRow = table.getRow(row);
-        if(row == null){
-            return null;
-        }
-        return tableRow.getTableCell(cell);
-    }
-
-    /**
-     * verifies that cursor is on the right position
-     * @param cursor
-     */
-    private boolean isCursorInFtn(XmlCursor cursor) {
-        XmlCursor verify = cursor.newCursor();
-        verify.toParent();
-        if(verify.getObject() == this.ctFtnEdn){
-            return true;
-        }
-        return false;
-    }
-
-    public POIXMLDocumentPart getOwner(){
-        return footnotes;
-    }
-
-    /**
-     * 
-     * @param cursor
-     * @return the inserted table
-     * @see org.apache.poi.xwpf.usermodel.IBody#insertNewTbl(XmlCursor cursor)
-     */
-    public XWPFTable insertNewTbl(XmlCursor cursor) {
-        if(isCursorInFtn(cursor)){
-            String uri = CTTbl.type.getName().getNamespaceURI();
-            String localPart = "tbl";
-            cursor.beginElement(localPart,uri);
-            cursor.toParent();
-            CTTbl t = (CTTbl)cursor.getObject();
-            XWPFTable newT = new XWPFTable(t, this);
-            cursor.removeXmlContents();
-            XmlObject o = null;
-            while(!(o instanceof CTTbl)&&(cursor.toPrevSibling())){
-                o = cursor.getObject();
-            }
-            if(!(o instanceof CTTbl)){
-                tables.add(0, newT);
-            }
-            else{
-                int pos = tables.indexOf(getTable((CTTbl)o))+1;
-                tables.add(pos,newT);
-            }
-            int i=0;
-            cursor = t.newCursor();
-            while(cursor.toPrevSibling()){
-                o =cursor.getObject();
-                if(o instanceof CTP || o instanceof CTTbl)
-                    i++;
-            }
-            bodyElements.add(i, newT);
+        XmlCursor cursor = cell.newCursor();
+        cursor.toParent();
+        XmlObject o = cursor.getObject();
+        if (!(o instanceof CTRow)) {
+            return null;
+        }
+        CTRow row = (CTRow) o;
+        cursor.toParent();
+        o = cursor.getObject();
+        cursor.dispose();
+        if (!(o instanceof CTTbl)) {
+            return null;
+        }
+        CTTbl tbl = (CTTbl) o;
+        XWPFTable table = getTable(tbl);
+        if (table == null) {
+            return null;
+        }
+        XWPFTableRow tableRow = table.getRow(row);
+        if (row == null) {
+            return null;
+        }
+        return tableRow.getTableCell(cell);
+    }
+
+    /**
+     * verifies that cursor is on the right position
+     *
+     * @param cursor
+     */
+    private boolean isCursorInFtn(XmlCursor cursor) {
+        XmlCursor verify = cursor.newCursor();
+        verify.toParent();
+        if (verify.getObject() == this.ctFtnEdn) {
+            return true;
+        }
+        return false;
+    }
+
+    public POIXMLDocumentPart getOwner() {
+        return footnotes;
+    }
+
+    /**
+     * @param cursor
+     * @return the inserted table
+     * @see org.apache.poi.xwpf.usermodel.IBody#insertNewTbl(XmlCursor cursor)
+     */
+    public XWPFTable insertNewTbl(XmlCursor cursor) {
+        if (isCursorInFtn(cursor)) {
+            String uri = CTTbl.type.getName().getNamespaceURI();
+            String localPart = "tbl";
+            cursor.beginElement(localPart, uri);
+            cursor.toParent();
+            CTTbl t = (CTTbl) cursor.getObject();
+            XWPFTable newT = new XWPFTable(t, this);
+            cursor.removeXmlContents();
+            XmlObject o = null;
+            while (!(o instanceof CTTbl) && (cursor.toPrevSibling())) {
+                o = cursor.getObject();
+            }
+            if (!(o instanceof CTTbl)) {
+                tables.add(0, newT);
+            } else {
+                int pos = tables.indexOf(getTable((CTTbl) o)) + 1;
+                tables.add(pos, newT);
+            }
+            int i = 0;
+            cursor = t.newCursor();
+            while (cursor.toPrevSibling()) {
+                o = cursor.getObject();
+                if (o instanceof CTP || o instanceof CTTbl)
+                    i++;
+            }
+            bodyElements.add(i, newT);
             cursor = t.newCursor();
             cursor.toEndToken();
             return newT;
         }
         return null;
     }
-
-    /**
-     * add a new paragraph at position of the cursor
-     * @param cursor
-     * @return the inserted paragraph
-     * @see org.apache.poi.xwpf.usermodel.IBody#insertNewParagraph(XmlCursor cursor)
-     */
-    public XWPFParagraph insertNewParagraph(XmlCursor cursor){
-        if(isCursorInFtn(cursor)){
-            String uri = CTP.type.getName().getNamespaceURI();
-            String localPart = "p";
-            cursor.beginElement(localPart,uri);
-            cursor.toParent();
-            CTP p = (CTP)cursor.getObject();
-            XWPFParagraph newP = new XWPFParagraph(p, this);
-            XmlObject o = null;
-            while(!(o instanceof CTP)&&(cursor.toPrevSibling())){
-                o = cursor.getObject();
-            }
-            if((!(o instanceof CTP)) || (CTP)o == p){
-                paragraphs.add(0, newP);
-            }
-            else{
-                int pos = paragraphs.indexOf(getParagraph((CTP)o))+1;
-                paragraphs.add(pos,newP);
-            }
-            int i=0;
-            cursor.toCursor(p.newCursor());
-            while(cursor.toPrevSibling()){
-                o =cursor.getObject();
-                if(o instanceof CTP || o instanceof CTTbl)
-                    i++;
-            }
-            bodyElements.add(i, newP);
+
+    /**
+     * add a new paragraph at position of the cursor
+     *
+     * @param cursor
+     * @return the inserted paragraph
+     * @see org.apache.poi.xwpf.usermodel.IBody#insertNewParagraph(XmlCursor cursor)
+     */
+    public XWPFParagraph insertNewParagraph(XmlCursor cursor) {
+        if (isCursorInFtn(cursor)) {
+            String uri = CTP.type.getName().getNamespaceURI();
+            String localPart = "p";
+            cursor.beginElement(localPart, uri);
+            cursor.toParent();
+            CTP p = (CTP) cursor.getObject();
+            XWPFParagraph newP = new XWPFParagraph(p, this);
+            XmlObject o = null;
+            while (!(o instanceof CTP) && (cursor.toPrevSibling())) {
+                o = cursor.getObject();
+            }
+            if ((!(o instanceof CTP)) || (CTP) o == p) {
+                paragraphs.add(0, newP);
+            } else {
+                int pos = paragraphs.indexOf(getParagraph((CTP) o)) + 1;
+                paragraphs.add(pos, newP);
+            }
+            int i = 0;
+            cursor.toCursor(p.newCursor());
+            while (cursor.toPrevSibling()) {
+                o = cursor.getObject();
+                if (o instanceof CTP || o instanceof CTTbl)
+                    i++;
+            }
+            bodyElements.add(i, newP);
             cursor.toCursor(p.newCursor());
             cursor.toEndToken();
             return newP;
         }
         return null;
     }
-
-    /**
-     * add a new table to the end of the footnote
-     * @param table
-     * @return the added XWPFTable
-     */
+
+    /**
+     * add a new table to the end of the footnote
+     *
+     * @param table
+     * @return the added XWPFTable
+     */
     public XWPFTable addNewTbl(CTTbl table) {
         CTTbl newTable = ctFtnEdn.addNewTbl();
         newTable.set(table);
@@ -322,12 +327,13 @@ public class XWPFFootnote implements Ite
         tables.add(xTable);
         return xTable;
     }
-
-    /**
-     * add a new paragraph to the end of the footnote
-     * @param paragraph
-     * @return the added XWPFParagraph
-     */
+
+    /**
+     * add a new paragraph to the end of the footnote
+     *
+     * @param paragraph
+     * @return the added XWPFParagraph
+     */
     public XWPFParagraph addNewParagraph(CTP paragraph) {
         CTP newPara = ctFtnEdn.addNewP();
         newPara.set(paragraph);
@@ -336,26 +342,28 @@ public class XWPFFootnote implements Ite
         return xPara;
     }
 
-    /**
-     * @see org.apache.poi.xwpf.usermodel.IBody#getXWPFDocument()
-     */
-    public  XWPFDocument getXWPFDocument() {
-        return document;
-    }
-
-    /**
-     * returns the Part, to which the body belongs, which you need for adding relationship to other parts
-     * @see org.apache.poi.xwpf.usermodel.IBody#getPart()
-     */
-    public POIXMLDocumentPart getPart() {
+    /**
+     * @see org.apache.poi.xwpf.usermodel.IBody#getXWPFDocument()
+     */
+    public XWPFDocument getXWPFDocument() {
+        return document;
+    }
+
+    /**
+     * returns the Part, to which the body belongs, which you need for adding relationship to other parts
+     *
+     * @see org.apache.poi.xwpf.usermodel.IBody#getPart()
+     */
+    public POIXMLDocumentPart getPart() {
         return footnotes;
     }
-
-    /**
-     * get the PartType of the body
-     * @see org.apache.poi.xwpf.usermodel.IBody#getPartType()
-     */
-    public BodyType getPartType() {
+
+    /**
+     * get the PartType of the body
+     *
+     * @see org.apache.poi.xwpf.usermodel.IBody#getPartType()
+     */
+    public BodyType getPartType() {
         return BodyType.FOOTNOTE;
     }
 }

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFFootnotes.java Sun Jul 19 19:00:32 2015
@@ -31,32 +31,31 @@ import org.apache.poi.POIXMLDocumentPart
 import org.apache.poi.POIXMLException;
 import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
 import org.apache.poi.openxml4j.opc.PackagePart;
-import org.apache.poi.openxml4j.opc.PackageRelationship;
-import org.apache.xmlbeans.XmlException;
-import org.apache.xmlbeans.XmlOptions;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFtnEdn;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFootnotes;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.FootnotesDocument;
-
-/**
- * Looks after the collection of Footnotes for a document
- */
-public class XWPFFootnotes extends POIXMLDocumentPart {
-    private List<XWPFFootnote> listFootnote = new ArrayList<XWPFFootnote>();
-    private CTFootnotes ctFootnotes;
-
-    protected XWPFDocument document;
-
-    /**
-     * Construct XWPFFootnotes from a package part
-     *
-     * @param part the package part holding the data of the footnotes,
-     * @param rel  the package relationship of type "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes"
-     */
-    public XWPFFootnotes(PackagePart part, PackageRelationship rel) throws IOException, OpenXML4JException{
-        super(part, rel);
-    }
-
+import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.xmlbeans.XmlException;
+import org.apache.xmlbeans.XmlOptions;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFootnotes;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFtnEdn;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.FootnotesDocument;
+
+/**
+ * Looks after the collection of Footnotes for a document
+ */
+public class XWPFFootnotes extends POIXMLDocumentPart {
+    protected XWPFDocument document;
+    private List<XWPFFootnote> listFootnote = new ArrayList<XWPFFootnote>();
+    private CTFootnotes ctFootnotes;
+
+    /**
+     * Construct XWPFFootnotes from a package part
+     *
+     * @param part the package part holding the data of the footnotes,
+     * @param rel  the package relationship of type "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes"
+     */
+    public XWPFFootnotes(PackagePart part, PackageRelationship rel) throws IOException, OpenXML4JException {
+        super(part, rel);
+    }
+
     /**
      * Construct XWPFFootnotes from scratch for a new document.
      */
@@ -65,33 +64,33 @@ public class XWPFFootnotes extends POIXM
 
     /**
      * Read document
-     */
-    @Override
-    @SuppressWarnings("deprecation")
-    protected void onDocumentRead () throws IOException {
-        FootnotesDocument notesDoc;
-        try {
-            InputStream is = getPackagePart().getInputStream();
+     */
+    @Override
+    @SuppressWarnings("deprecation")
+    protected void onDocumentRead() throws IOException {
+        FootnotesDocument notesDoc;
+        try {
+            InputStream is = getPackagePart().getInputStream();
             notesDoc = FootnotesDocument.Factory.parse(is);
             ctFootnotes = notesDoc.getFootnotes();
         } catch (XmlException e) {
             throw new POIXMLException();
-        }
-
-        // Find our footnotes
-        for(CTFtnEdn note : ctFootnotes.getFootnoteArray()) {
-            listFootnote.add(new XWPFFootnote(note, this));
-        }
-    }
+        }
+
+        // Find our footnotes
+        for (CTFtnEdn note : ctFootnotes.getFootnoteArray()) {
+            listFootnote.add(new XWPFFootnote(note, this));
+        }
+    }
 
     @Override
-    protected void commit() throws IOException {
-        XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
-        xmlOptions.setSaveSyntheticDocumentElement(new QName(CTFootnotes.type.getName().getNamespaceURI(), "footnotes"));
-        Map<String,String> map = new HashMap<String,String>();
-        map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r");
-        map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w");
-        xmlOptions.setSaveSuggestedPrefixes(map);
+    protected void commit() throws IOException {
+        XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
+        xmlOptions.setSaveSyntheticDocumentElement(new QName(CTFootnotes.type.getName().getNamespaceURI(), "footnotes"));
+        Map<String, String> map = new HashMap<String, String>();
+        map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r");
+        map.put("http://schemas.openxmlformats.org/wordprocessingml/2006/main", "w");
+        xmlOptions.setSaveSuggestedPrefixes(map);
         PackagePart part = getPackagePart();
         OutputStream out = part.getOutputStream();
         ctFootnotes.save(out, xmlOptions);
@@ -100,59 +99,62 @@ public class XWPFFootnotes extends POIXM
 
     public List<XWPFFootnote> getFootnotesList() {
         return listFootnote;
-    }
-
-    public XWPFFootnote getFootnoteById(int id) {
-        for(XWPFFootnote note : listFootnote) {
-            if(note.getCTFtnEdn().getId().intValue() == id)
-                return note;
-        }
-        return null;
-    }
-
-    /**
-     * Sets the ctFootnotes
-     * @param footnotes
-     */
-    public void setFootnotes(CTFootnotes footnotes) {
+    }
+
+    public XWPFFootnote getFootnoteById(int id) {
+        for (XWPFFootnote note : listFootnote) {
+            if (note.getCTFtnEdn().getId().intValue() == id)
+                return note;
+        }
+        return null;
+    }
+
+    /**
+     * Sets the ctFootnotes
+     *
+     * @param footnotes
+     */
+    public void setFootnotes(CTFootnotes footnotes) {
         ctFootnotes = footnotes;
     }
-
-    /**
-     * add an XWPFFootnote to the document
-     * @param footnote
-     * @throws IOException		 
-     */
-    public void addFootnote(XWPFFootnote footnote){
-        listFootnote.add(footnote);
-        ctFootnotes.addNewFootnote().set(footnote.getCTFtnEdn());
-    }
-
-    /**
-     * add a footnote to the document
-     * @param note
-     * @throws IOException		 
-     */
-    public XWPFFootnote addFootnote(CTFtnEdn note){
-        CTFtnEdn newNote = ctFootnotes.addNewFootnote();
-        newNote.set(note);
-        XWPFFootnote xNote = new XWPFFootnote(newNote, this);
+
+    /**
+     * add an XWPFFootnote to the document
+     *
+     * @param footnote
+     * @throws IOException
+     */
+    public void addFootnote(XWPFFootnote footnote) {
+        listFootnote.add(footnote);
+        ctFootnotes.addNewFootnote().set(footnote.getCTFtnEdn());
+    }
+
+    /**
+     * add a footnote to the document
+     *
+     * @param note
+     * @throws IOException
+     */
+    public XWPFFootnote addFootnote(CTFtnEdn note) {
+        CTFtnEdn newNote = ctFootnotes.addNewFootnote();
+        newNote.set(note);
+        XWPFFootnote xNote = new XWPFFootnote(newNote, this);
         listFootnote.add(xNote);
-        return xNote;
-    }
-
-    public void setXWPFDocument(XWPFDocument doc) {
-        document = doc;
-    }
-
-    /**
-     * @see org.apache.poi.xwpf.usermodel.IBody#getPart()
-     */
-    public XWPFDocument getXWPFDocument() {
-        if ( document != null) {
-            return document;
-        } else {
-            return (XWPFDocument)getParent();
-        }
-    }
-}
+        return xNote;
+    }
+
+    /**
+     * @see org.apache.poi.xwpf.usermodel.IBody#getPart()
+     */
+    public XWPFDocument getXWPFDocument() {
+        if (document != null) {
+            return document;
+        } else {
+            return (XWPFDocument) getParent();
+        }
+    }
+
+    public void setXWPFDocument(XWPFDocument doc) {
+        document = doc;
+    }
+}

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeader.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeader.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeader.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeader.java Sun Jul 19 19:00:32 2015
@@ -69,14 +69,14 @@ public class XWPFHeader extends XWPFHead
         cursor.dispose();
     }
 
-	/**
+    /**
      * save and commit footer
      */
     @Override
     protected void commit() throws IOException {
         XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
         xmlOptions.setSaveSyntheticDocumentElement(new QName(CTNumbering.type.getName().getNamespaceURI(), "hdr"));
-        Map<String,String> map = new HashMap<String, String>();
+        Map<String, String> map = new HashMap<String, String>();
         map.put("http://schemas.openxmlformats.org/markup-compatibility/2006", "ve");
         map.put("urn:schemas-microsoft-com:office:office", "o");
         map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r");
@@ -95,11 +95,12 @@ public class XWPFHeader extends XWPFHead
 
     /**
      * reads the document
-     * @throws IOException 
+     *
+     * @throws IOException
      */
-    @Override  
+    @Override
     protected void onDocumentRead() throws IOException {
-        super.onDocumentRead();	          
+        super.onDocumentRead();
         HdrDocument hdrDocument = null;
         InputStream is;
         try {
@@ -113,17 +114,17 @@ public class XWPFHeader extends XWPFHead
             while (cursor.toNextSelection()) {
                 XmlObject o = cursor.getObject();
                 if (o instanceof CTP) {
-                    XWPFParagraph p = new XWPFParagraph((CTP)o, this);
+                    XWPFParagraph p = new XWPFParagraph((CTP) o, this);
                     paragraphs.add(p);
                     bodyElements.add(p);
                 }
                 if (o instanceof CTTbl) {
-                    XWPFTable t = new XWPFTable((CTTbl)o, this);
+                    XWPFTable t = new XWPFTable((CTTbl) o, this);
                     tables.add(t);
                     bodyElements.add(t);
                 }
-                if (o instanceof CTSdtBlock){
-                    XWPFSDT c = new XWPFSDT((CTSdtBlock)o, this);
+                if (o instanceof CTSdtBlock) {
+                    XWPFSDT c = new XWPFSDT((CTSdtBlock) o, this);
                     bodyElements.add(c);
                 }
             }
@@ -135,6 +136,7 @@ public class XWPFHeader extends XWPFHead
 
     /**
      * get the PartType of the body
+     *
      * @see org.apache.poi.xwpf.usermodel.IBody#getPartType()
      */
     public BodyType getPartType() {

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHeaderFooter.java Sun Jul 19 19:00:32 2015
@@ -46,7 +46,7 @@ import org.openxmlformats.schemas.wordpr
  */
 public abstract class XWPFHeaderFooter extends POIXMLDocumentPart implements IBody {
     List<XWPFParagraph> paragraphs = new ArrayList<XWPFParagraph>(1);
-    List<XWPFTable> tables= new ArrayList<XWPFTable>(1);
+    List<XWPFTable> tables = new ArrayList<XWPFTable>(1);
     List<XWPFPictureData> pictures = new ArrayList<XWPFPictureData>();
     List<IBodyElement> bodyElements = new ArrayList<IBodyElement>(1);
 
@@ -54,7 +54,7 @@ public abstract class XWPFHeaderFooter e
     XWPFDocument document;
 
     XWPFHeaderFooter(XWPFDocument doc, CTHdrFtr hdrFtr) {
-        if (doc==null) {
+        if (doc == null) {
             throw new NullPointerException();
         }
 
@@ -70,17 +70,17 @@ public abstract class XWPFHeaderFooter e
 
     public XWPFHeaderFooter(POIXMLDocumentPart parent, PackagePart part, PackageRelationship rel) throws IOException {
         super(parent, part, rel);
-        this.document = (XWPFDocument)getParent();
+        this.document = (XWPFDocument) getParent();
 
-        if (this.document==null) {
+        if (this.document == null) {
             throw new NullPointerException();
         }
     }
 
     @Override
     protected void onDocumentRead() throws IOException {
-        for (POIXMLDocumentPart poixmlDocumentPart : getRelations()){
-            if(poixmlDocumentPart instanceof XWPFPictureData){
+        for (POIXMLDocumentPart poixmlDocumentPart : getRelations()) {
+            if (poixmlDocumentPart instanceof XWPFPictureData) {
                 XWPFPictureData xwpfPicData = (XWPFPictureData) poixmlDocumentPart;
                 pictures.add(xwpfPicData);
                 document.registerPackagePictureData(xwpfPicData);
@@ -93,16 +93,16 @@ public abstract class XWPFHeaderFooter e
         return headerFooter;
     }
 
-    public List<IBodyElement> getBodyElements(){
+    public List<IBodyElement> getBodyElements() {
         return Collections.unmodifiableList(bodyElements);
     }
 
     /**
      * Returns the paragraph(s) that holds
-     *  the text of the header or footer.
+     * the text of the header or footer.
      * Normally there is only the one paragraph, but
-     *  there could be more in certain cases, or 
-     *  a table.
+     * there could be more in certain cases, or
+     * a table.
      */
     public List<XWPFParagraph> getParagraphs() {
         return Collections.unmodifiableList(paragraphs);
@@ -111,29 +111,28 @@ public abstract class XWPFHeaderFooter e
 
     /**
      * Return the table(s) that holds the text
-     *  of the header or footer, for complex cases
-     *  where a paragraph isn't used.
+     * of the header or footer, for complex cases
+     * where a paragraph isn't used.
      * Normally there's just one paragraph, but some
-     *  complex headers/footers have a table or two
-     *  in addition. 
+     * complex headers/footers have a table or two
+     * in addition.
      */
-    public List<XWPFTable> getTables()throws ArrayIndexOutOfBoundsException {
+    public List<XWPFTable> getTables() throws ArrayIndexOutOfBoundsException {
         return Collections.unmodifiableList(tables);
     }
 
 
-
     /**
      * Returns the textual content of the header/footer,
-     *  by flattening out the text of its paragraph(s)
+     * by flattening out the text of its paragraph(s)
      */
     public String getText() {
         StringBuffer t = new StringBuffer();
-      //TODO: simplify this to get ibody elements in order
-        for(int i=0; i<paragraphs.size(); i++) {
-            if(! paragraphs.get(i).isEmpty()) {
+        //TODO: simplify this to get ibody elements in order
+        for (int i = 0; i < paragraphs.size(); i++) {
+            if (!paragraphs.get(i).isEmpty()) {
                 String text = paragraphs.get(i).getText();
-                if(text != null && text.length() > 0) {
+                if (text != null && text.length() > 0) {
                     t.append(text);
                     t.append('\n');
                 }
@@ -141,26 +140,26 @@ public abstract class XWPFHeaderFooter e
         }
 
         List<XWPFTable> tables = getTables();
-        for(int i=0; i<tables.size(); i++) {
+        for (int i = 0; i < tables.size(); i++) {
             String text = tables.get(i).getText();
-            if(text != null && text.length() > 0) {
+            if (text != null && text.length() > 0) {
                 t.append(text);
                 t.append('\n');
             }
         }
-        
-        for (IBodyElement bodyElement : getBodyElements()){
-           if (bodyElement instanceof XWPFSDT){
-               t.append(((XWPFSDT) bodyElement).getContent().getText()+'\n');
-           }
-       }
-        return t.toString(); 
+
+        for (IBodyElement bodyElement : getBodyElements()) {
+            if (bodyElement instanceof XWPFSDT) {
+                t.append(((XWPFSDT) bodyElement).getContent().getText() + '\n');
+            }
+        }
+        return t.toString();
     }
 
     /**
      * set a new headerFooter
      */
-    public void setHeaderFooter(CTHdrFtr headerFooter){
+    public void setHeaderFooter(CTHdrFtr headerFooter) {
         this.headerFooter = headerFooter;
         readHdrFtr();
     }
@@ -168,14 +167,15 @@ public abstract class XWPFHeaderFooter e
     /**
      * if there is a corresponding {@link XWPFTable} of the parameter ctTable in the tableList of this header
      * the method will return this table
-     * if there is no corresponding {@link XWPFTable} the method will return null 
+     * if there is no corresponding {@link XWPFTable} the method will return null
+     *
      * @param ctTable
      */
-    public XWPFTable getTable(CTTbl ctTable){
+    public XWPFTable getTable(CTTbl ctTable) {
         for (XWPFTable table : tables) {
-            if(table==null)
+            if (table == null)
                 return null;
-            if(table.getCTTbl().equals(ctTable))
+            if (table.getCTTbl().equals(ctTable))
                 return table;
         }
         return null;
@@ -184,14 +184,15 @@ public abstract class XWPFHeaderFooter e
     /**
      * if there is a corresponding {@link XWPFParagraph} of the parameter ctTable in the paragraphList of this header or footer
      * the method will return this paragraph
-     * if there is no corresponding {@link XWPFParagraph} the method will return null 
+     * if there is no corresponding {@link XWPFParagraph} the method will return null
+     *
      * @param p is instance of CTP and is searching for an XWPFParagraph
      * @return null if there is no XWPFParagraph with an corresponding CTPparagraph in the paragraphList of this header or footer
-     * 		   XWPFParagraph with the correspondig CTP p
+     * XWPFParagraph with the correspondig CTP p
      */
-    public XWPFParagraph getParagraph(CTP p){
+    public XWPFParagraph getParagraph(CTP p) {
         for (XWPFParagraph paragraph : paragraphs) {
-            if(paragraph.getCTP().equals(p))
+            if (paragraph.getCTP().equals(p))
                 return paragraph;
         }
         return null;
@@ -200,7 +201,7 @@ public abstract class XWPFHeaderFooter e
 
     /**
      * Returns the paragraph that holds
-     *  the text of the header or footer.
+     * the text of the header or footer.
      */
     public XWPFParagraph getParagraphArray(int pos) {
 
@@ -209,9 +210,10 @@ public abstract class XWPFHeaderFooter e
 
     /**
      * get a List of all Paragraphs
-     * @return a list of {@link XWPFParagraph} 
+     *
+     * @return a list of {@link XWPFParagraph}
      */
-    public List<XWPFParagraph> getListParagraph(){
+    public List<XWPFParagraph> getListParagraph() {
         return paragraphs;
     }
 
@@ -221,9 +223,10 @@ public abstract class XWPFHeaderFooter e
 
     /**
      * get all Pictures in this package
+     *
      * @return all Pictures in this package
      */
-    public List<XWPFPictureData> getAllPackagePictures(){
+    public List<XWPFPictureData> getAllPackagePictures() {
         return document.getAllPackagePictures();
 
     }
@@ -231,22 +234,19 @@ public abstract class XWPFHeaderFooter e
     /**
      * Adds a picture to the document.
      *
-     * @param pictureData       The picture data
-     * @param format            The format of the picture.
-     *
+     * @param pictureData The picture data
+     * @param format      The format of the picture.
      * @return the index to this picture (0 based), the added picture can be obtained from {@link #getAllPictures()} .
-     * @throws InvalidFormatException 
+     * @throws InvalidFormatException
      */
-    public String addPictureData(byte[] pictureData,int format) throws InvalidFormatException
-    {
+    public String addPictureData(byte[] pictureData, int format) throws InvalidFormatException {
         XWPFPictureData xwpfPicData = document.findPackagePictureData(pictureData, format);
         POIXMLRelation relDesc = XWPFPictureData.RELATIONS[format];
 
-        if (xwpfPicData == null)
-        {
+        if (xwpfPicData == null) {
             /* Part doesn't exist, create a new one */
             int idx = document.getNextPicNameNumber(format);
-            xwpfPicData = (XWPFPictureData) createRelationship(relDesc, XWPFFactory.getInstance(),idx);
+            xwpfPicData = (XWPFPictureData) createRelationship(relDesc, XWPFFactory.getInstance(), idx);
             /* write bytes to new part */
             PackagePart picDataPart = xwpfPicData.getPackagePart();
             OutputStream out = null;
@@ -266,9 +266,7 @@ public abstract class XWPFHeaderFooter e
             document.registerPackagePictureData(xwpfPicData);
             pictures.add(xwpfPicData);
             return getRelationId(xwpfPicData);
-        }
-        else if (!getRelations().contains(xwpfPicData))
-        {
+        } else if (!getRelations().contains(xwpfPicData)) {
             /*
              * Part already existed, but was not related so far. Create
              * relationship to the already existing part and update
@@ -279,14 +277,12 @@ public abstract class XWPFHeaderFooter e
             TargetMode targetMode = TargetMode.INTERNAL;
             PackagePartName partName = picDataPart.getPartName();
             String relation = relDesc.getRelation();
-            PackageRelationship relShip = getPackagePart().addRelationship(partName,targetMode,relation);
+            PackageRelationship relShip = getPackagePart().addRelationship(partName, targetMode, relation);
             String id = relShip.getId();
-            addRelation(id,xwpfPicData);
+            addRelation(id, xwpfPicData);
             pictures.add(xwpfPicData);
             return id;
-        }
-        else 
-        {
+        } else {
             /* Part already existed, get relation id and return it */
             return getRelationId(xwpfPicData);
         }
@@ -295,61 +291,61 @@ public abstract class XWPFHeaderFooter e
     /**
      * Adds a picture to the document.
      *
-     * @param is                The stream to read image from
-     * @param format            The format of the picture.
-     *
+     * @param is     The stream to read image from
+     * @param format The format of the picture.
      * @return the index to this picture (0 based), the added picture can be obtained from {@link #getAllPictures()} .
-     * @throws InvalidFormatException 
-     * @throws IOException 
+     * @throws InvalidFormatException
+     * @throws IOException
      */
-    public String addPictureData(InputStream is, int format) throws InvalidFormatException,IOException {
+    public String addPictureData(InputStream is, int format) throws InvalidFormatException, IOException {
         byte[] data = IOUtils.toByteArray(is);
-        return addPictureData(data,format);
+        return addPictureData(data, format);
     }
 
     /**
      * returns the PictureData by blipID
+     *
      * @param blipID
      * @return XWPFPictureData of a specificID
-     * @throws Exception 
+     * @throws Exception
      */
     public XWPFPictureData getPictureDataByID(String blipID) {
         POIXMLDocumentPart relatedPart = getRelationById(blipID);
         if (relatedPart != null && relatedPart instanceof XWPFPictureData) {
             return (XWPFPictureData) relatedPart;
         }
-        return null;   
+        return null;
     }
 
     /**
      * add a new paragraph at position of the cursor
+     *
      * @param cursor
      * @return the inserted paragraph
      */
-    public XWPFParagraph insertNewParagraph(XmlCursor cursor){
-        if(isCursorInHdrF(cursor)){
+    public XWPFParagraph insertNewParagraph(XmlCursor cursor) {
+        if (isCursorInHdrF(cursor)) {
             String uri = CTP.type.getName().getNamespaceURI();
             String localPart = "p";
-            cursor.beginElement(localPart,uri);
+            cursor.beginElement(localPart, uri);
             cursor.toParent();
-            CTP p = (CTP)cursor.getObject();
+            CTP p = (CTP) cursor.getObject();
             XWPFParagraph newP = new XWPFParagraph(p, this);
             XmlObject o = null;
-            while(!(o instanceof CTP)&&(cursor.toPrevSibling())){
+            while (!(o instanceof CTP) && (cursor.toPrevSibling())) {
                 o = cursor.getObject();
             }
-            if((!(o instanceof CTP)) || (CTP)o == p){
+            if ((!(o instanceof CTP)) || (CTP) o == p) {
                 paragraphs.add(0, newP);
+            } else {
+                int pos = paragraphs.indexOf(getParagraph((CTP) o)) + 1;
+                paragraphs.add(pos, newP);
             }
-            else{
-                int pos = paragraphs.indexOf(getParagraph((CTP)o))+1;
-                paragraphs.add(pos,newP);
-            }
-            int i=0;
+            int i = 0;
             cursor.toCursor(p.newCursor());
-            while(cursor.toPrevSibling()){
-                o =cursor.getObject();
-                if(o instanceof CTP || o instanceof CTTbl)
+            while (cursor.toPrevSibling()) {
+                o = cursor.getObject();
+                if (o instanceof CTP || o instanceof CTTbl)
                     i++;
             }
             bodyElements.add(i, newP);
@@ -362,35 +358,33 @@ public abstract class XWPFHeaderFooter e
 
 
     /**
-     * 
      * @param cursor
      * @return the inserted table
      */
     public XWPFTable insertNewTbl(XmlCursor cursor) {
-        if(isCursorInHdrF(cursor)){
+        if (isCursorInHdrF(cursor)) {
             String uri = CTTbl.type.getName().getNamespaceURI();
             String localPart = "tbl";
-            cursor.beginElement(localPart,uri);
+            cursor.beginElement(localPart, uri);
             cursor.toParent();
-            CTTbl t = (CTTbl)cursor.getObject();
+            CTTbl t = (CTTbl) cursor.getObject();
             XWPFTable newT = new XWPFTable(t, this);
             cursor.removeXmlContents();
             XmlObject o = null;
-            while(!(o instanceof CTTbl)&&(cursor.toPrevSibling())){
+            while (!(o instanceof CTTbl) && (cursor.toPrevSibling())) {
                 o = cursor.getObject();
             }
-            if(!(o instanceof CTTbl)){
+            if (!(o instanceof CTTbl)) {
                 tables.add(0, newT);
+            } else {
+                int pos = tables.indexOf(getTable((CTTbl) o)) + 1;
+                tables.add(pos, newT);
             }
-            else{
-                int pos = tables.indexOf(getTable((CTTbl)o))+1;
-                tables.add(pos,newT);
-            }
-            int i=0;
+            int i = 0;
             cursor = t.newCursor();
-            while(cursor.toPrevSibling()){
-                o =cursor.getObject();
-                if(o instanceof CTP || o instanceof CTTbl)
+            while (cursor.toPrevSibling()) {
+                o = cursor.getObject();
+                if (o instanceof CTP || o instanceof CTTbl)
                     i++;
             }
             bodyElements.add(i, newT);
@@ -403,29 +397,31 @@ public abstract class XWPFHeaderFooter e
 
     /**
      * verifies that cursor is on the right position
+     *
      * @param cursor
      */
     private boolean isCursorInHdrF(XmlCursor cursor) {
         XmlCursor verify = cursor.newCursor();
         verify.toParent();
-        if(verify.getObject() == this.headerFooter){
+        if (verify.getObject() == this.headerFooter) {
             return true;
         }
         return false;
     }
 
 
-    public POIXMLDocumentPart getOwner(){
+    public POIXMLDocumentPart getOwner() {
         return this;
     }
 
     /**
      * Returns the table at position pos
+     *
      * @see org.apache.poi.xwpf.usermodel.IBody#getTableArray(int)
      */
     public XWPFTable getTableArray(int pos) {
 
-        if(pos > 0 && pos < tables.size()){
+        if (pos > 0 && pos < tables.size()) {
             return tables.get(pos);
         }
         return null;
@@ -433,6 +429,7 @@ public abstract class XWPFHeaderFooter e
 
     /**
      * inserts an existing XWPFTable to the arrays bodyElements and tables
+     *
      * @param pos
      * @param table
      */
@@ -441,7 +438,7 @@ public abstract class XWPFHeaderFooter e
         bodyElements.add(pos, table);
         int i = 0;
         for (CTTbl tbl : headerFooter.getTblArray()) {
-            if(tbl == table.getCTTbl()){
+            if (tbl == table.getCTTbl()) {
                 break;
             }
             i++;
@@ -450,10 +447,10 @@ public abstract class XWPFHeaderFooter e
 
     }
 
-    public void readHdrFtr(){
+    public void readHdrFtr() {
         bodyElements = new ArrayList<IBodyElement>();
         paragraphs = new ArrayList<XWPFParagraph>();
-        tables= new ArrayList<XWPFTable>();
+        tables = new ArrayList<XWPFTable>();
         // parse the document with cursor and add
         // the XmlObject to its lists
         XmlCursor cursor = headerFooter.newCursor();
@@ -461,12 +458,12 @@ public abstract class XWPFHeaderFooter e
         while (cursor.toNextSelection()) {
             XmlObject o = cursor.getObject();
             if (o instanceof CTP) {
-                XWPFParagraph p = new XWPFParagraph((CTP)o, this);
+                XWPFParagraph p = new XWPFParagraph((CTP) o, this);
                 paragraphs.add(p);
                 bodyElements.add(p);
             }
             if (o instanceof CTTbl) {
-                XWPFTable t = new XWPFTable((CTTbl)o, this);
+                XWPFTable t = new XWPFTable((CTTbl) o, this);
                 tables.add(t);
                 bodyElements.add(t);
             }
@@ -476,48 +473,50 @@ public abstract class XWPFHeaderFooter e
 
     /**
      * get the TableCell which belongs to the TableCell
+     *
      * @param cell
      */
     public XWPFTableCell getTableCell(CTTc cell) {
         XmlCursor cursor = cell.newCursor();
         cursor.toParent();
         XmlObject o = cursor.getObject();
-        if(!(o instanceof CTRow)){
+        if (!(o instanceof CTRow)) {
             return null;
         }
-        CTRow row = (CTRow)o;
+        CTRow row = (CTRow) o;
         cursor.toParent();
         o = cursor.getObject();
         cursor.dispose();
-        if(! (o instanceof CTTbl)){
+        if (!(o instanceof CTTbl)) {
             return null;
         }
         CTTbl tbl = (CTTbl) o;
         XWPFTable table = getTable(tbl);
-        if(table == null){
+        if (table == null) {
             return null;
         }
         XWPFTableRow tableRow = table.getRow(row);
-        if(row == null){
+        if (row == null) {
             return null;
         }
         return tableRow.getTableCell(cell);
     }
 
-    public void setXWPFDocument(XWPFDocument doc) {
-        document = doc;
-    }
-
     public XWPFDocument getXWPFDocument() {
-        if (document!=null) {
+        if (document != null) {
             return document;
         } else {
-            return (XWPFDocument)getParent();
+            return (XWPFDocument) getParent();
         }
     }
 
+    public void setXWPFDocument(XWPFDocument doc) {
+        document = doc;
+    }
+
     /**
      * returns the Part, to which the body belongs, which you need for adding relationship to other parts
+     *
      * @see org.apache.poi.xwpf.usermodel.IBody#getPart()
      */
     public POIXMLDocumentPart getPart() {

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHyperlink.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHyperlink.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHyperlink.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHyperlink.java Sun Jul 19 19:00:32 2015
@@ -18,26 +18,22 @@ package org.apache.poi.xwpf.usermodel;
 
 /**
  * Sketch of XWPF hyperlink class
- * 
-* @author Yury Batrakov (batrakov at gmail.com)
- * 
+ *
+ * @author Yury Batrakov (batrakov at gmail.com)
  */
-public class XWPFHyperlink
-{
+public class XWPFHyperlink {
     String id, url;
-    public XWPFHyperlink(String id, String url)
-    {
+
+    public XWPFHyperlink(String id, String url) {
         this.id = id;
         this.url = url;
     }
-    
-    public String getId()
-    {
+
+    public String getId() {
         return id;
     }
-    
-    public String getURL()
-    {
+
+    public String getURL() {
         return url;
     }
 }

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHyperlinkRun.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHyperlinkRun.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHyperlinkRun.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFHyperlinkRun.java Sun Jul 19 19:00:32 2015
@@ -20,45 +20,45 @@ import org.openxmlformats.schemas.wordpr
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
 
 /**
- * A run of text with a Hyperlink applied to it.
- * Any given Hyperlink may be made up of multiple of these.
- */
-public class XWPFHyperlinkRun extends XWPFRun
-{
-   private CTHyperlink hyperlink;
-   
-   public XWPFHyperlinkRun(CTHyperlink hyperlink, CTR run, IRunBody p) {
-      super(run, p);
-      this.hyperlink = hyperlink;
-   }
-   
-   public CTHyperlink getCTHyperlink() {
-      return hyperlink;
-   }
-   
-   public String getAnchor() {
-      return hyperlink.getAnchor();
-   }
-   
-   /**
-    * Returns the ID of the hyperlink, if one is set.
-    */
-   public String getHyperlinkId() {
-      return hyperlink.getId();
-   }
-   public void setHyperlinkId(String id) {
-      hyperlink.setId(id);
-   }
-   
-   /**
-    * If this Hyperlink is an external reference hyperlink,
-    *  return the object for it.
-    */
-   public XWPFHyperlink getHyperlink(XWPFDocument document) {
-      String id = getHyperlinkId();
-      if(id == null)
-         return null;
-      
-      return document.getHyperlinkByID(id);
-   }
-}
+ * A run of text with a Hyperlink applied to it.
+ * Any given Hyperlink may be made up of multiple of these.
+ */
+public class XWPFHyperlinkRun extends XWPFRun {
+    private CTHyperlink hyperlink;
+
+    public XWPFHyperlinkRun(CTHyperlink hyperlink, CTR run, IRunBody p) {
+        super(run, p);
+        this.hyperlink = hyperlink;
+    }
+
+    public CTHyperlink getCTHyperlink() {
+        return hyperlink;
+    }
+
+    public String getAnchor() {
+        return hyperlink.getAnchor();
+    }
+
+    /**
+     * Returns the ID of the hyperlink, if one is set.
+     */
+    public String getHyperlinkId() {
+        return hyperlink.getId();
+    }
+
+    public void setHyperlinkId(String id) {
+        hyperlink.setId(id);
+    }
+
+    /**
+     * If this Hyperlink is an external reference hyperlink,
+     * return the object for it.
+     */
+    public XWPFHyperlink getHyperlink(XWPFDocument document) {
+        String id = getHyperlinkId();
+        if (id == null)
+            return null;
+
+        return document.getHyperlinkByID(id);
+    }
+}

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFLatentStyles.java Sun Jul 19 19:00:32 2015
@@ -17,34 +17,38 @@
 package org.apache.poi.xwpf.usermodel;
 
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLatentStyles;
-import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLsdException;
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLsdException;
+
+public class XWPFLatentStyles {
+    protected XWPFStyles styles; //LatentStyle shall know styles
+    private CTLatentStyles latentStyles;
+
+    protected XWPFLatentStyles() {
+    }
+
+    protected XWPFLatentStyles(CTLatentStyles latentStyles) {
+        this(latentStyles, null);
+    }
+
+    protected XWPFLatentStyles(CTLatentStyles latentStyles, XWPFStyles styles) {
+        this.latentStyles = latentStyles;
+        this.styles = styles;
+    }
+
+    public int getNumberOfStyles() {
+        return latentStyles.sizeOfLsdExceptionArray();
+    }
 
-public class XWPFLatentStyles {
-	private CTLatentStyles latentStyles;
-	protected XWPFStyles styles; //LatentStyle shall know styles
-	
-	protected XWPFLatentStyles(){
-	}
-	
-	protected XWPFLatentStyles(CTLatentStyles latentStyles){
-		this(latentStyles,null);
-	}
-	
-	protected XWPFLatentStyles(CTLatentStyles latentStyles, XWPFStyles styles) {
-		this.latentStyles=latentStyles;
-		this.styles=styles;
-	}
-	
-	/**
-	 * checks wheter specific LatentStyleID is a latentStyle
-	*/
-    @SuppressWarnings("deprecation")
-	protected boolean isLatentStyle(String latentStyleID){	
-		for ( CTLsdException lsd: latentStyles.getLsdExceptionArray()) {
-			if(lsd.getName().equals(latentStyleID)) {
-				return true;
-			}
-		}
-		return false;		
-	}
-}
+    /**
+     * checks whether specific LatentStyleID is a latentStyle
+     */
+    @SuppressWarnings("deprecation")
+    protected boolean isLatentStyle(String latentStyleID) {
+        for (CTLsdException lsd : latentStyles.getLsdExceptionArray()) {
+            if (lsd.getName().equals(latentStyleID)) {
+                return true;
+            }
+        }
+        return false;
+    }
+}

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNum.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNum.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNum.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNum.java Sun Jul 19 19:00:32 2015
@@ -18,48 +18,47 @@ package org.apache.poi.xwpf.usermodel;
 
 
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNum;
-
-/**
- * @author Philipp Epp
- *
- */
-public class XWPFNum {
-	private CTNum ctNum;
-	protected XWPFNumbering numbering;
-	
-	public XWPFNum(){
-		this.ctNum = null;
-		this.numbering = null;
-	}
-	
-	public XWPFNum(CTNum ctNum){
-		this.ctNum = ctNum;
-		this.numbering = null;
-	}
-	
-	public XWPFNum(XWPFNumbering numbering){
-		this.ctNum = null;
-		this.numbering = numbering;
-	}
-	
-	public XWPFNum(CTNum ctNum, XWPFNumbering numbering){
-		this.ctNum = ctNum;
-		this.numbering = numbering;
-	}
-	
-	public XWPFNumbering getNumbering(){
-		return numbering;
-	}
-	
-	public CTNum getCTNum(){
-		return ctNum;
-	}
-	
-	public void setNumbering(XWPFNumbering numbering){
-		this.numbering = numbering;
-	}
-	
-	public void setCTNum(CTNum ctNum){
-		this.ctNum = ctNum;
-	}
+
+/**
+ * @author Philipp Epp
+ */
+public class XWPFNum {
+    protected XWPFNumbering numbering;
+    private CTNum ctNum;
+
+    public XWPFNum() {
+        this.ctNum = null;
+        this.numbering = null;
+    }
+
+    public XWPFNum(CTNum ctNum) {
+        this.ctNum = ctNum;
+        this.numbering = null;
+    }
+
+    public XWPFNum(XWPFNumbering numbering) {
+        this.ctNum = null;
+        this.numbering = numbering;
+    }
+
+    public XWPFNum(CTNum ctNum, XWPFNumbering numbering) {
+        this.ctNum = ctNum;
+        this.numbering = numbering;
+    }
+
+    public XWPFNumbering getNumbering() {
+        return numbering;
+    }
+
+    public void setNumbering(XWPFNumbering numbering) {
+        this.numbering = numbering;
+    }
+
+    public CTNum getCTNum() {
+        return ctNum;
+    }
+
+    public void setCTNum(CTNum ctNum) {
+        this.ctNum = ctNum;
+    }
 }
\ No newline at end of file

Modified: poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNumbering.java
URL: http://svn.apache.org/viewvc/poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNumbering.java?rev=1691843&r1=1691842&r2=1691843&view=diff
==============================================================================
--- poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNumbering.java (original)
+++ poi/branches/common_sl/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFNumbering.java Sun Jul 19 19:00:32 2015
@@ -38,71 +38,69 @@ import org.openxmlformats.schemas.wordpr
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNum;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTNumbering;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.NumberingDocument;
-
-/**
- * @author Philipp Epp
- *
- */
-public class XWPFNumbering extends POIXMLDocumentPart {
-    protected List<XWPFAbstractNum> abstractNums = new ArrayList<XWPFAbstractNum>();
-    protected List<XWPFNum> nums = new ArrayList<XWPFNum>();
-
-    private CTNumbering ctNumbering;
-	boolean isNew;
-	
-	/**
-	 *create a new styles object with an existing document 
-	 */
-	public XWPFNumbering(PackagePart part, PackageRelationship rel) throws IOException, OpenXML4JException{
-		super(part, rel);
-		isNew = true;
-	}
-
-	/**
-	 * create a new XWPFNumbering object for use in a new document
-	 */
-	public XWPFNumbering(){
-		abstractNums = new ArrayList<XWPFAbstractNum>();
-		nums = new ArrayList<XWPFNum>();
-		isNew = true;
-	}
-
-	/**
-	 * read numbering form an existing package
-	 */
-	@Override
-    @SuppressWarnings("deprecation")
-	protected void onDocumentRead() throws IOException{
-		NumberingDocument numberingDoc = null;
-		InputStream is;
-		is = getPackagePart().getInputStream();
-		try {
-			numberingDoc = NumberingDocument.Factory.parse(is);
-			ctNumbering = numberingDoc.getNumbering();
-	        //get any Nums
-	        for(CTNum ctNum : ctNumbering.getNumArray()) {
-	            nums.add(new XWPFNum(ctNum, this));
-	        }
-	        for(CTAbstractNum ctAbstractNum : ctNumbering.getAbstractNumArray()){
-	        	abstractNums.add(new XWPFAbstractNum(ctAbstractNum, this));
-	        }
-	        isNew = false;
-		} catch (XmlException e) {
-			throw new POIXMLException();
-		}
-	}
-	
-	/**
-	 * save and commit numbering
-	 */
-	@Override
-    protected void commit() throws IOException {
-        XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
-        xmlOptions.setSaveSyntheticDocumentElement(new QName(CTNumbering.type.getName().getNamespaceURI(), "numbering"));
-        Map<String,String> map = new HashMap<String,String>();
-        map.put("http://schemas.openxmlformats.org/markup-compatibility/2006", "ve");
-        map.put("urn:schemas-microsoft-com:office:office", "o");
-        map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r");
+
+/**
+ * @author Philipp Epp
+ */
+public class XWPFNumbering extends POIXMLDocumentPart {
+    protected List<XWPFAbstractNum> abstractNums = new ArrayList<XWPFAbstractNum>();
+    protected List<XWPFNum> nums = new ArrayList<XWPFNum>();
+    boolean isNew;
+    private CTNumbering ctNumbering;
+
+    /**
+     * create a new styles object with an existing document
+     */
+    public XWPFNumbering(PackagePart part, PackageRelationship rel) throws IOException, OpenXML4JException {
+        super(part, rel);
+        isNew = true;
+    }
+
+    /**
+     * create a new XWPFNumbering object for use in a new document
+     */
+    public XWPFNumbering() {
+        abstractNums = new ArrayList<XWPFAbstractNum>();
+        nums = new ArrayList<XWPFNum>();
+        isNew = true;
+    }
+
+    /**
+     * read numbering form an existing package
+     */
+    @Override
+    @SuppressWarnings("deprecation")
+    protected void onDocumentRead() throws IOException {
+        NumberingDocument numberingDoc = null;
+        InputStream is;
+        is = getPackagePart().getInputStream();
+        try {
+            numberingDoc = NumberingDocument.Factory.parse(is);
+            ctNumbering = numberingDoc.getNumbering();
+            //get any Nums
+            for (CTNum ctNum : ctNumbering.getNumArray()) {
+                nums.add(new XWPFNum(ctNum, this));
+            }
+            for (CTAbstractNum ctAbstractNum : ctNumbering.getAbstractNumArray()) {
+                abstractNums.add(new XWPFAbstractNum(ctAbstractNum, this));
+            }
+            isNew = false;
+        } catch (XmlException e) {
+            throw new POIXMLException();
+        }
+    }
+
+    /**
+     * save and commit numbering
+     */
+    @Override
+    protected void commit() throws IOException {
+        XmlOptions xmlOptions = new XmlOptions(DEFAULT_XML_OPTIONS);
+        xmlOptions.setSaveSyntheticDocumentElement(new QName(CTNumbering.type.getName().getNamespaceURI(), "numbering"));
+        Map<String, String> map = new HashMap<String, String>();
+        map.put("http://schemas.openxmlformats.org/markup-compatibility/2006", "ve");
+        map.put("urn:schemas-microsoft-com:office:office", "o");
+        map.put("http://schemas.openxmlformats.org/officeDocument/2006/relationships", "r");
         map.put("http://schemas.openxmlformats.org/officeDocument/2006/math", "m");
         map.put("urn:schemas-microsoft-com:vml", "v");
         map.put("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing", "wp");
@@ -114,169 +112,182 @@ public class XWPFNumbering extends POIXM
         OutputStream out = part.getOutputStream();
         ctNumbering.save(out, xmlOptions);
         out.close();
-    }
-
-
-	/**
-	 * Sets the ctNumbering
-	 * @param numbering
-	 */
-	public void setNumbering(CTNumbering numbering){
-		ctNumbering = numbering;
-	}
-	
-	
-	/**
-	 * Checks whether number with numID exists
-	 * @param numID
-	 * @return boolean		true if num exist, false if num not exist
-	 */
-	public boolean numExist(BigInteger numID){
-		for (XWPFNum num : nums) {
-			if (num.getCTNum().getNumId().equals(numID))
-				return true;
-		}
-		return false;
-	}
-	
-	/**
-	 * add a new number to the numbering document
-	 * @param num
-	 */
-	public BigInteger addNum(XWPFNum num){
-		ctNumbering.addNewNum();
-		int pos = ctNumbering.sizeOfNumArray() - 1;
-		ctNumbering.setNumArray(pos, num.getCTNum());
-		nums.add(num);
-		return num.getCTNum().getNumId();
-	}
-	
-	/**
-	 * Add a new num with an abstractNumID
-	 * @return return NumId of the added num 
-	 */
-	public BigInteger addNum(BigInteger abstractNumID){
-		CTNum ctNum = this.ctNumbering.addNewNum();
-		ctNum.addNewAbstractNumId();
-		ctNum.getAbstractNumId().setVal(abstractNumID);
-		ctNum.setNumId(BigInteger.valueOf(nums.size()+1));
-		XWPFNum num = new XWPFNum(ctNum, this);
-		nums.add(num);
-		return ctNum.getNumId();
-	}
-	
-	/**
-	 * Add a new num with an abstractNumID and a numID
-	 * @param abstractNumID
-	 * @param numID
-	 */
-	public void addNum(BigInteger abstractNumID, BigInteger numID){
-		CTNum ctNum = this.ctNumbering.addNewNum();
-		ctNum.addNewAbstractNumId();
-		ctNum.getAbstractNumId().setVal(abstractNumID);
-		ctNum.setNumId(numID);
-		XWPFNum num = new XWPFNum(ctNum, this);
-		nums.add(num);
-	}
-	
-	/**
-	 * get Num by NumID
-	 * @param numID
-	 * @return abstractNum with NumId if no Num exists with that NumID 
-	 * 			null will be returned
-	 */
-	public XWPFNum getNum(BigInteger numID){
-		for(XWPFNum num: nums){
-			if(num.getCTNum().getNumId().equals(numID))
-				return num;
-		}
-		return null;
-	}
-	/**
-	 * get AbstractNum by abstractNumID
-	 * @param abstractNumID
-	 * @return  abstractNum with abstractNumId if no abstractNum exists with that abstractNumID 
-	 * 			null will be returned
-	 */
-	public XWPFAbstractNum getAbstractNum(BigInteger abstractNumID){
-		for(XWPFAbstractNum abstractNum: abstractNums){
-			if(abstractNum.getAbstractNum().getAbstractNumId().equals(abstractNumID)){
-				return abstractNum;
-			}
-		}
-		return null;
-	}
-	/**
-	 * Compare AbstractNum with abstractNums of this numbering document.
-	 * If the content of abstractNum equals with an abstractNum of the List in numbering
-	 * the BigInteger Value of it will be returned.
-	 * If no equal abstractNum is existing null will be returned
-	 * 
-	 * @param abstractNum
-	 * @return 	BigInteger
-	 */
-	public BigInteger getIdOfAbstractNum(XWPFAbstractNum abstractNum){
-		CTAbstractNum copy = (CTAbstractNum) abstractNum.getCTAbstractNum().copy();
-		XWPFAbstractNum newAbstractNum = new XWPFAbstractNum(copy, this);
-		int i;
-		for (i = 0; i < abstractNums.size(); i++) {
-			newAbstractNum.getCTAbstractNum().setAbstractNumId(BigInteger.valueOf(i));
-			newAbstractNum.setNumbering(this);
-			if(newAbstractNum.getCTAbstractNum().valueEquals(abstractNums.get(i).getCTAbstractNum())){
-				return newAbstractNum.getCTAbstractNum().getAbstractNumId();
-			}
-		}
-		return null;
-	}
-
-
-	/**
-	 * add a new AbstractNum and return its AbstractNumID 
-	 * @param abstractNum
-	 */
-	public BigInteger addAbstractNum(XWPFAbstractNum abstractNum){
-		int pos = abstractNums.size();
-		if(abstractNum.getAbstractNum() != null){ // Use the current CTAbstractNum if it exists
-			ctNumbering.addNewAbstractNum().set(abstractNum.getAbstractNum());
-		} else {
-			ctNumbering.addNewAbstractNum();
-			abstractNum.getAbstractNum().setAbstractNumId(BigInteger.valueOf(pos));
-			ctNumbering.setAbstractNumArray(pos, abstractNum.getAbstractNum());
-		}
-		abstractNums.add(abstractNum);
-		return abstractNum.getCTAbstractNum().getAbstractNumId();
-	}
-	
-	/**
-	 * remove an existing abstractNum 
-	 * @param abstractNumID
-	 * @return true if abstractNum with abstractNumID exists in NumberingArray,
-	 * 		   false if abstractNum with abstractNumID not exists
-	 */
-	public boolean removeAbstractNum(BigInteger abstractNumID){
-		if(abstractNumID.byteValue()<abstractNums.size()){
-			ctNumbering.removeAbstractNum(abstractNumID.byteValue());
-			abstractNums.remove(abstractNumID.byteValue());
-			return true;
-		}
-		return false;
-	}
-	/**
-	 *return the abstractNumID
-	 *If the AbstractNumID not exists
-	 *return null
-	 * @param 		numID
-	 * @return 		abstractNumID
-	 */
-	public BigInteger getAbstractNumID(BigInteger numID){
-		XWPFNum num = getNum(numID);
-		if(num == null)
-			return null;
-		if (num.getCTNum() == null)
-			return null;
-		if (num.getCTNum().getAbstractNumId() == null)
-			return null;
-		return num.getCTNum().getAbstractNumId().getVal();
-	}
-}
-	
+    }
+
+
+    /**
+     * Sets the ctNumbering
+     *
+     * @param numbering
+     */
+    public void setNumbering(CTNumbering numbering) {
+        ctNumbering = numbering;
+    }
+
+
+    /**
+     * Checks whether number with numID exists
+     *
+     * @param numID
+     * @return boolean        true if num exist, false if num not exist
+     */
+    public boolean numExist(BigInteger numID) {
+        for (XWPFNum num : nums) {
+            if (num.getCTNum().getNumId().equals(numID))
+                return true;
+        }
+        return false;
+    }
+
+    /**
+     * add a new number to the numbering document
+     *
+     * @param num
+     */
+    public BigInteger addNum(XWPFNum num) {
+        ctNumbering.addNewNum();
+        int pos = ctNumbering.sizeOfNumArray() - 1;
+        ctNumbering.setNumArray(pos, num.getCTNum());
+        nums.add(num);
+        return num.getCTNum().getNumId();
+    }
+
+    /**
+     * Add a new num with an abstractNumID
+     *
+     * @return return NumId of the added num
+     */
+    public BigInteger addNum(BigInteger abstractNumID) {
+        CTNum ctNum = this.ctNumbering.addNewNum();
+        ctNum.addNewAbstractNumId();
+        ctNum.getAbstractNumId().setVal(abstractNumID);
+        ctNum.setNumId(BigInteger.valueOf(nums.size() + 1));
+        XWPFNum num = new XWPFNum(ctNum, this);
+        nums.add(num);
+        return ctNum.getNumId();
+    }
+
+    /**
+     * Add a new num with an abstractNumID and a numID
+     *
+     * @param abstractNumID
+     * @param numID
+     */
+    public void addNum(BigInteger abstractNumID, BigInteger numID) {
+        CTNum ctNum = this.ctNumbering.addNewNum();
+        ctNum.addNewAbstractNumId();
+        ctNum.getAbstractNumId().setVal(abstractNumID);
+        ctNum.setNumId(numID);
+        XWPFNum num = new XWPFNum(ctNum, this);
+        nums.add(num);
+    }
+
+    /**
+     * get Num by NumID
+     *
+     * @param numID
+     * @return abstractNum with NumId if no Num exists with that NumID
+     * null will be returned
+     */
+    public XWPFNum getNum(BigInteger numID) {
+        for (XWPFNum num : nums) {
+            if (num.getCTNum().getNumId().equals(numID))
+                return num;
+        }
+        return null;
+    }
+
+    /**
+     * get AbstractNum by abstractNumID
+     *
+     * @param abstractNumID
+     * @return abstractNum with abstractNumId if no abstractNum exists with that abstractNumID
+     * null will be returned
+     */
+    public XWPFAbstractNum getAbstractNum(BigInteger abstractNumID) {
+        for (XWPFAbstractNum abstractNum : abstractNums) {
+            if (abstractNum.getAbstractNum().getAbstractNumId().equals(abstractNumID)) {
+                return abstractNum;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * Compare AbstractNum with abstractNums of this numbering document.
+     * If the content of abstractNum equals with an abstractNum of the List in numbering
+     * the BigInteger Value of it will be returned.
+     * If no equal abstractNum is existing null will be returned
+     *
+     * @param abstractNum
+     * @return BigInteger
+     */
+    public BigInteger getIdOfAbstractNum(XWPFAbstractNum abstractNum) {
+        CTAbstractNum copy = (CTAbstractNum) abstractNum.getCTAbstractNum().copy();
+        XWPFAbstractNum newAbstractNum = new XWPFAbstractNum(copy, this);
+        int i;
+        for (i = 0; i < abstractNums.size(); i++) {
+            newAbstractNum.getCTAbstractNum().setAbstractNumId(BigInteger.valueOf(i));
+            newAbstractNum.setNumbering(this);
+            if (newAbstractNum.getCTAbstractNum().valueEquals(abstractNums.get(i).getCTAbstractNum())) {
+                return newAbstractNum.getCTAbstractNum().getAbstractNumId();
+            }
+        }
+        return null;
+    }
+
+
+    /**
+     * add a new AbstractNum and return its AbstractNumID
+     *
+     * @param abstractNum
+     */
+    public BigInteger addAbstractNum(XWPFAbstractNum abstractNum) {
+        int pos = abstractNums.size();
+        if (abstractNum.getAbstractNum() != null) { // Use the current CTAbstractNum if it exists
+            ctNumbering.addNewAbstractNum().set(abstractNum.getAbstractNum());
+        } else {
+            ctNumbering.addNewAbstractNum();
+            abstractNum.getAbstractNum().setAbstractNumId(BigInteger.valueOf(pos));
+            ctNumbering.setAbstractNumArray(pos, abstractNum.getAbstractNum());
+        }
+        abstractNums.add(abstractNum);
+        return abstractNum.getCTAbstractNum().getAbstractNumId();
+    }
+
+    /**
+     * remove an existing abstractNum
+     *
+     * @param abstractNumID
+     * @return true if abstractNum with abstractNumID exists in NumberingArray,
+     * false if abstractNum with abstractNumID not exists
+     */
+    public boolean removeAbstractNum(BigInteger abstractNumID) {
+        if (abstractNumID.byteValue() < abstractNums.size()) {
+            ctNumbering.removeAbstractNum(abstractNumID.byteValue());
+            abstractNums.remove(abstractNumID.byteValue());
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * return the abstractNumID
+     * If the AbstractNumID not exists
+     * return null
+     *
+     * @param numID
+     * @return abstractNumID
+     */
+    public BigInteger getAbstractNumID(BigInteger numID) {
+        XWPFNum num = getNum(numID);
+        if (num == null)
+            return null;
+        if (num.getCTNum() == null)
+            return null;
+        if (num.getCTNum().getAbstractNumId() == null)
+            return null;
+        return num.getCTNum().getAbstractNumId().getVal();
+    }
+}
+



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org