diff --git a/src/main/java/w2phtml/pageSplitters/ABIndexSplitter.java b/src/main/java/w2phtml/pageSplitters/ABIndexSplitter.java index b52b5b5..9ad40c4 100644 --- a/src/main/java/w2phtml/pageSplitters/ABIndexSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/ABIndexSplitter.java @@ -15,11 +15,11 @@ public class ABIndexSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node abIndex) { + public SplitResults Split(Node abIndex) { Node parent = abIndex.getParentNode(); Node abIndexFirstPart = abIndex.cloneNode(false); NodeList childs = abIndex.getChildNodes(); - boolean dataMoved = false; + SplitResults results = new SplitResults(false); int i = 0; while (childs.getLength() > i) { Node child = childs.item(i); @@ -28,17 +28,17 @@ public class ABIndexSplitter extends BasicSplitter implements ISplitter { abIndexFirstPart.appendChild(child.cloneNode(true)); } else if (childName.equals(TEXT_INDEX_BODY)) { - if (factory.split(child)) { + if (factory.split(child).isDataMoved()) { abIndexFirstPart.appendChild(child.getPreviousSibling()); - dataMoved = true; + results.setDataMoved(true); } } i++; } - if (dataMoved) { + if (results.isDataMoved()) { parent.insertBefore(abIndexFirstPart, abIndex); } - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/ISplitter.java b/src/main/java/w2phtml/pageSplitters/ISplitter.java index 862dc11..c97829d 100644 --- a/src/main/java/w2phtml/pageSplitters/ISplitter.java +++ b/src/main/java/w2phtml/pageSplitters/ISplitter.java @@ -4,6 +4,6 @@ import org.w3c.dom.Node; public interface ISplitter { - public boolean Split(Node node); + public SplitResults Split(Node node); } diff --git a/src/main/java/w2phtml/pageSplitters/IllustrationIndexSplitter.java b/src/main/java/w2phtml/pageSplitters/IllustrationIndexSplitter.java index 02c4bd8..fb05466 100644 --- a/src/main/java/w2phtml/pageSplitters/IllustrationIndexSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/IllustrationIndexSplitter.java @@ -15,11 +15,11 @@ public class IllustrationIndexSplitter extends BasicSplitter implements ISplitte } @Override - public boolean Split(Node illustrationIndex) { + public SplitResults Split(Node illustrationIndex) { Node parent = illustrationIndex.getParentNode(); Node illustrationIndexFirstPart = illustrationIndex.cloneNode(false); NodeList childs = illustrationIndex.getChildNodes(); - boolean dataMoved = false; + SplitResults results = new SplitResults(false); int i = 0; while (childs.getLength() > i) { Node child = childs.item(i); @@ -28,17 +28,17 @@ public class IllustrationIndexSplitter extends BasicSplitter implements ISplitte illustrationIndexFirstPart.appendChild(child.cloneNode(true)); } else if (childName.equals(TEXT_INDEX_BODY)) { - if(factory.split(child)) { + if(factory.split(child).isDataMoved()) { illustrationIndexFirstPart.appendChild(child.getPreviousSibling()); - dataMoved = true; + results.setDataMoved(true);; } } i++; } - if (dataMoved) { + if (results.isDataMoved()) { parent.insertBefore(illustrationIndexFirstPart, illustrationIndex); } - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/IndexBodySplitter.java b/src/main/java/w2phtml/pageSplitters/IndexBodySplitter.java index 2d8b1d6..5f2496f 100644 --- a/src/main/java/w2phtml/pageSplitters/IndexBodySplitter.java +++ b/src/main/java/w2phtml/pageSplitters/IndexBodySplitter.java @@ -15,10 +15,10 @@ public class IndexBodySplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node indexBody) { + public SplitResults Split(Node indexBody) { Node indexBodyFirstPart = indexBody.cloneNode(false); NodeList childs = indexBody.getChildNodes(); - boolean dataMoved = false; + SplitResults results = new SplitResults(false); int i = 0; while (childs.getLength() > i) { Node child = childs.item(i); @@ -27,11 +27,11 @@ public class IndexBodySplitter extends BasicSplitter implements ISplitter { } else { String childName = child.getNodeName(); if (childName.equals(TEXT_P)) { - if (factory.split(child)) { + if (factory.split(child).isDataMoved()) { indexBodyFirstPart.appendChild(child.getPreviousSibling()); - dataMoved = true; + results.setDataMoved(true); } - return dataMoved; + return results; } else if (childName.equals(TEXT_SOFT_PAGE_BREAK)) { //indexBody.removeChild(child); @@ -41,7 +41,7 @@ public class IndexBodySplitter extends BasicSplitter implements ISplitter { } } } - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/ListItemSplitter.java b/src/main/java/w2phtml/pageSplitters/ListItemSplitter.java index 67b9471..e0bd630 100644 --- a/src/main/java/w2phtml/pageSplitters/ListItemSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/ListItemSplitter.java @@ -18,13 +18,13 @@ public class ListItemSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node listItem) { + public SplitResults Split(Node listItem) { Node listItemFirstPart = listItem.cloneNode(false); Node parent = listItem.getParentNode(); //System.out.println("----Start Item------"); //Debug.prettyPrintXml(parent); int i = 0; - boolean dataMoved = false; + SplitResults results = new SplitResults(false); NodeList listItemNodes = listItem.getChildNodes(); while(listItemNodes.getLength() > i){ Node listItemChild = listItemNodes.item(i); @@ -41,9 +41,9 @@ public class ListItemSplitter extends BasicSplitter implements ISplitter { factory.split(listItemChild); } else if (nodeName.equals(TEXT_H) || nodeName.equals(TEXT_P)) { - if (factory.split(listItemChild)){ + if (factory.split(listItemChild).isDataMoved()){ listItemFirstPart.appendChild(listItemChild.getPreviousSibling()); - dataMoved=true; + results.setDataMoved(true); } } else { System.out.println("Error. SPB in List item child node " + nodeName); @@ -54,20 +54,20 @@ public class ListItemSplitter extends BasicSplitter implements ISplitter { } else { listItemFirstPart.appendChild(listItemChild); - dataMoved = true; + results.setDataMoved(true); } } else { listItemFirstPart.appendChild(listItemChild); - dataMoved = true; + results.setDataMoved(true); } //check internal nodes } - if(dataMoved) { + if(results.isDataMoved()) { parent.insertBefore(listItemFirstPart, listItem); } //System.out.println("-----FINISH Item-----"); //Debug.prettyPrintXml(parent); - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/ListSplitter.java b/src/main/java/w2phtml/pageSplitters/ListSplitter.java index 131d044..b0f011b 100644 --- a/src/main/java/w2phtml/pageSplitters/ListSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/ListSplitter.java @@ -22,7 +22,7 @@ public class ListSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node list) { + public SplitResults Split(Node list) { Node parent = list.getParentNode(); // System.out.println("----Start ListSplitter------"); // Debug.prettyPrintXml(parent); @@ -32,7 +32,7 @@ public class ListSplitter extends BasicSplitter implements ISplitter { Element softPageBreak = document.createElement(TEXT_SOFT_PAGE_BREAK); Node nextPageItemPart = null; int i = 0; - boolean dataMoved = false; + SplitResults results = new SplitResults(false); while (listNodes.getLength() > i) { Node child = listNodes.item(i); if (child.getNodeType() == Node.ELEMENT_NODE) { @@ -51,8 +51,8 @@ public class ListSplitter extends BasicSplitter implements ISplitter { if (containsSPB(child)) { // remove SPB, move previous nodes to firstPart. - if (factory.split(child)) { - dataMoved = true; + if (factory.split(child).isDataMoved()) { + results.setDataMoved(true); // Add first part of list item to previous list item listFirstPart.appendChild(child.getPreviousSibling()); if (child.hasChildNodes()) { @@ -67,7 +67,7 @@ public class ListSplitter extends BasicSplitter implements ISplitter { } else { // Not with SPB yet, move node, set dataMoved=true listFirstPart.appendChild(child); - dataMoved = true; + results.setDataMoved(true); } } else { System.out.println("Error. SPB in List child node " + nodeName); @@ -75,7 +75,7 @@ public class ListSplitter extends BasicSplitter implements ISplitter { } } } - if (dataMoved) { + if (results.isDataMoved()) { ((Element) list).setAttribute(TEXT_CONTINUE_NUMBERING, "true"); parent.insertBefore(listFirstPart, list); parent.insertBefore(softPageBreak, list); @@ -109,7 +109,7 @@ public class ListSplitter extends BasicSplitter implements ISplitter { // Debug.prettyPrintXml(parent); - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/ParagraphSplitter.java b/src/main/java/w2phtml/pageSplitters/ParagraphSplitter.java index b45a4d7..297fb54 100644 --- a/src/main/java/w2phtml/pageSplitters/ParagraphSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/ParagraphSplitter.java @@ -21,13 +21,12 @@ public class ParagraphSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node para) { + public SplitResults Split(Node para) { Node parent = para.getParentNode(); //System.out.println("PRINT PARA START"); //Debug.prettyPrintXml(parent); - + SplitResults results = new SplitResults(false); Node paraFirstPart = para.cloneNode(false); - boolean dataMoved = false; int i = 0; NodeList childs = para.getChildNodes(); while (childs.getLength() > i) { @@ -60,7 +59,7 @@ public class ParagraphSplitter extends BasicSplitter implements ISplitter { paraFirstPart.appendChild(child.cloneNode(true)); i++; } else { - dataMoved = true; + results.setDataMoved(true); paraFirstPart.appendChild(child); } //TEXT NODES @@ -68,13 +67,13 @@ public class ParagraphSplitter extends BasicSplitter implements ISplitter { } addHyphen(para,paraFirstPart); - if (dataMoved) { + if (results.isDataMoved()) { removeIndent(para); parent.insertBefore(paraFirstPart, para); } //System.out.println("PRINT PARA END"); //Debug.prettyPrintXml(parent); - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/SectionSplitter.java b/src/main/java/w2phtml/pageSplitters/SectionSplitter.java index 2451dda..842b2bc 100644 --- a/src/main/java/w2phtml/pageSplitters/SectionSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/SectionSplitter.java @@ -22,12 +22,12 @@ public class SectionSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node section) { + public SplitResults Split(Node section) { Node parent = section.getParentNode(); setLastAttribute(section); Node sectionFirstPart = section.cloneNode(false); removeLastAttribute(sectionFirstPart); - boolean dataMoved = false; + SplitResults results = new SplitResults(false); // Node counter int i = 0; NodeList childs = section.getChildNodes(); @@ -41,9 +41,9 @@ public class SectionSplitter extends BasicSplitter implements ISplitter { // remove inner soft page break node section.removeChild(child); } else if (nodeName.equals(TEXT_H) || nodeName.equals(TEXT_P)) { - if (factory.split(child)){ + if (factory.split(child).isDataMoved()){ sectionFirstPart.appendChild(child.getPreviousSibling()); - dataMoved=true; + results.setDataMoved(true); } } else if (nodeName.equals(TEXT_TABLE_OF_CONTENT)) { @@ -52,18 +52,18 @@ public class SectionSplitter extends BasicSplitter implements ISplitter { i++; continue; } else if (nodeName.equals(TABLE_TABLE)) { - if (factory.split(child)){ + if (factory.split(child).isDataMoved()){ sectionFirstPart.appendChild(child.getPreviousSibling()); - dataMoved=true; + results.setDataMoved(true); } } else if (nodeName.equals(TEXT_SECTION)) { - if (factory.split(child)){ + if (factory.split(child).isDataMoved()){ sectionFirstPart.appendChild(child.getPreviousSibling()); - dataMoved=true; + results.setDataMoved(true); } } else if (nodeName.equals(TEXT_LIST)) { - if (factory.split(child)){ - dataMoved=true; + if (factory.split(child).isDataMoved()){ + results.setDataMoved(true); } } else { System.out.println("Error. SPB in Section child node " + nodeName); @@ -73,20 +73,20 @@ public class SectionSplitter extends BasicSplitter implements ISplitter { break; } else { sectionFirstPart.appendChild(child); - dataMoved = true; + results.setDataMoved(true); } } else { //Append text nodes sectionFirstPart.appendChild(child); - dataMoved = true; + results.setDataMoved(true); } } - if (dataMoved) { + if (results.isDataMoved()) { parent.insertBefore(sectionFirstPart, section); } - return dataMoved; + return results; } diff --git a/src/main/java/w2phtml/pageSplitters/SpanSplitter.java b/src/main/java/w2phtml/pageSplitters/SpanSplitter.java index a6de391..1d06809 100644 --- a/src/main/java/w2phtml/pageSplitters/SpanSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/SpanSplitter.java @@ -17,7 +17,8 @@ public class SpanSplitter extends BasicSplitter implements ISplitter{ } @Override - public boolean Split(Node span) { + public SplitResults Split(Node span) { + SplitResults results = new SplitResults(false); NodeList childs = span.getChildNodes(); int i = 0; while (childs.getLength() > i) { @@ -37,7 +38,7 @@ public class SpanSplitter extends BasicSplitter implements ISplitter{ } i++; } - return false; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/SplitFactory.java b/src/main/java/w2phtml/pageSplitters/SplitFactory.java index c7f4991..f266cba 100644 --- a/src/main/java/w2phtml/pageSplitters/SplitFactory.java +++ b/src/main/java/w2phtml/pageSplitters/SplitFactory.java @@ -10,7 +10,7 @@ public class SplitFactory { public SplitFactory(OfficeReader ofr){ this.officeReader = ofr; } - public boolean split(Node node) { + public SplitResults split(Node node) { if(node == null) { System.out.println("Error. Node is null."); Debug.printStackTrace(); diff --git a/src/main/java/w2phtml/pageSplitters/SplitResults.java b/src/main/java/w2phtml/pageSplitters/SplitResults.java new file mode 100644 index 0000000..1146004 --- /dev/null +++ b/src/main/java/w2phtml/pageSplitters/SplitResults.java @@ -0,0 +1,19 @@ +package w2phtml.pageSplitters; + +public class SplitResults { + + private boolean dataMoved; + + + public SplitResults(boolean dataMoved) { + this.setDataMoved(dataMoved); + } + + public boolean isDataMoved() { + return dataMoved; + } + + public void setDataMoved(boolean dataMoved) { + this.dataMoved = dataMoved; + } +} diff --git a/src/main/java/w2phtml/pageSplitters/TableCellSplitter.java b/src/main/java/w2phtml/pageSplitters/TableCellSplitter.java index 7ccf083..a0654b6 100644 --- a/src/main/java/w2phtml/pageSplitters/TableCellSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/TableCellSplitter.java @@ -19,10 +19,10 @@ public class TableCellSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node cellNode) { + public SplitResults Split(Node cellNode) { Node cellFirstPart = cellNode.cloneNode(false); Node parent = cellNode.getParentNode(); - boolean dataMoved = false; + SplitResults results = new SplitResults(false); // Node counter int i = 0; NodeList cellChildNodes = cellNode.getChildNodes(); @@ -35,19 +35,19 @@ public class TableCellSplitter extends BasicSplitter implements ISplitter { // remove inner soft page break node cellNode.removeChild(cellChildNode); } else if (nodeName.equals(TEXT_H) || nodeName.equals(TEXT_P)) { - if (factory.split(cellChildNode)){ + if (factory.split(cellChildNode).isDataMoved()){ cellFirstPart.appendChild(cellChildNode.getPreviousSibling()); - dataMoved=true; + results.setDataMoved(true); } } else if (nodeName.equals(TEXT_LIST)) { - if (factory.split(cellChildNode)){ + if (factory.split(cellChildNode).isDataMoved()){ cellFirstPart.appendChild(cellChildNode.getPreviousSibling()); - dataMoved=true; + results.setDataMoved(true); } } else if (nodeName.equals(TABLE_TABLE)) { - if (factory.split(cellChildNode)){ + if (factory.split(cellChildNode).isDataMoved()){ cellFirstPart.appendChild(cellChildNode.getPreviousSibling()); - dataMoved=true; + results.setDataMoved(true); } } else { System.out.println("Error. SPB in Cell child node " + nodeName); @@ -57,20 +57,20 @@ public class TableCellSplitter extends BasicSplitter implements ISplitter { break; } else { cellFirstPart.appendChild(cellChildNode); - dataMoved = true; + results.setDataMoved(true); } } else { //Append text nodes cellFirstPart.appendChild(cellChildNode); - dataMoved = true; + results.setDataMoved(true); } } - if (dataMoved) { + if (results.isDataMoved()) { parent.insertBefore(cellFirstPart, cellNode); } - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/TableRowGroupSplitter.java b/src/main/java/w2phtml/pageSplitters/TableRowGroupSplitter.java index 35e4590..6e10d60 100644 --- a/src/main/java/w2phtml/pageSplitters/TableRowGroupSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/TableRowGroupSplitter.java @@ -19,8 +19,8 @@ public class TableRowGroupSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node tableRowGroup) { - boolean dataMoved = false; + public SplitResults Split(Node tableRowGroup) { + SplitResults results = new SplitResults(false); Node parent = tableRowGroup.getParentNode(); Node tableRowGroupFistPart = tableRowGroup.cloneNode(false); // Node counter @@ -42,18 +42,18 @@ public class TableRowGroupSplitter extends BasicSplitter implements ISplitter { //Not needed to set dataMoved = true, not needed to append First part } else if (nodeName.equals(TABLE_TABLE_ROW)){ - if (factory.split(tableRowGroupChildNode)){ - dataMoved = true; + if (factory.split(tableRowGroupChildNode).isDataMoved()){ + results.setDataMoved(true); tableRowGroupFistPart.appendChild(tableRowGroupChildNode.getPreviousSibling()); } } else if (nodeName.equals(TABLE_TABLE_ROW_GROUP)){ - if (factory.split(tableRowGroupChildNode)){ - dataMoved = true; + if (factory.split(tableRowGroupChildNode).isDataMoved()){ + results.setDataMoved(true); tableRowGroupFistPart.appendChild(tableRowGroupChildNode.getPreviousSibling()); } } else if (nodeName.equals(TABLE_TABLE_ROWS)){ - if (factory.split(tableRowGroupChildNode)){ - dataMoved = true; + if (factory.split(tableRowGroupChildNode).isDataMoved()){ + results.setDataMoved(true); tableRowGroupFistPart.appendChild(tableRowGroupChildNode.getPreviousSibling()); } } @@ -66,21 +66,21 @@ public class TableRowGroupSplitter extends BasicSplitter implements ISplitter { } else { tableRowGroupFistPart.appendChild(tableRowGroupChildNode); - dataMoved = true; + results.setDataMoved(true); } } } else { //Append text nodes tableRowGroupFistPart.appendChild(tableRowGroupChildNode); - dataMoved = true; + results.setDataMoved(true); } } - if (dataMoved) { + if (results.isDataMoved()) { parent.insertBefore(tableRowGroupFistPart, tableRowGroup); } - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/TableRowSplitter.java b/src/main/java/w2phtml/pageSplitters/TableRowSplitter.java index ca1d66c..c84053b 100644 --- a/src/main/java/w2phtml/pageSplitters/TableRowSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/TableRowSplitter.java @@ -18,10 +18,10 @@ public class TableRowSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node tableRow) { + public SplitResults Split(Node tableRow) { Node tableRowFirstPart = tableRow.cloneNode(false); Node parent = tableRow.getParentNode(); - boolean dataMoved = false; + SplitResults results = new SplitResults(false); // Node counter int i = 0; NodeList tableRowChildNodes = tableRow.getChildNodes(); @@ -33,15 +33,15 @@ public class TableRowSplitter extends BasicSplitter implements ISplitter { if (containsSPB(tableRowChildNode)){ if (nodeName.equals(TABLE_TABLE_CELL)){ - if (factory.split(tableRowChildNode)){ - dataMoved = true; + if (factory.split(tableRowChildNode).isDataMoved()){ + results.setDataMoved(true); tableRowFirstPart.appendChild(tableRowChildNode.getPreviousSibling()); } } else if (nodeName.equals(TABLE_COVERED_TABLE_CELL)){ //Implement handleCoveredCell in future - if (factory.split(tableRowChildNode)){ - dataMoved = true; + if (factory.split(tableRowChildNode).isDataMoved()){ + results.setDataMoved(true); tableRowFirstPart.appendChild(tableRowChildNode.getPreviousSibling()); } } @@ -57,7 +57,7 @@ public class TableRowSplitter extends BasicSplitter implements ISplitter { tableRow.removeChild(tableRowChildNode); - dataMoved = true; + results.setDataMoved(true); } i++; } else { @@ -68,10 +68,10 @@ public class TableRowSplitter extends BasicSplitter implements ISplitter { } } - if (dataMoved) { + if (results.isDataMoved()) { parent.insertBefore(tableRowFirstPart, tableRow); } - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/TableRowsSplitter.java b/src/main/java/w2phtml/pageSplitters/TableRowsSplitter.java index 1a4bd04..4d23d85 100644 --- a/src/main/java/w2phtml/pageSplitters/TableRowsSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/TableRowsSplitter.java @@ -15,10 +15,10 @@ public class TableRowsSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node tableRows) { + public SplitResults Split(Node tableRows) { Node tableRowsFirstPart = tableRows.cloneNode(false); Node parent = tableRows.getParentNode(); - boolean dataMoved = false; + SplitResults results = new SplitResults(false); // Node counter int i = 0; NodeList tableRowsChildNodes = tableRows.getChildNodes(); @@ -34,15 +34,15 @@ public class TableRowsSplitter extends BasicSplitter implements ISplitter { tableRows.removeChild(tableRowsChildNode); } else if (nodeName.equals(TABLE_TABLE_ROW)){ - if (factory.split(tableRowsChildNode)){ - dataMoved = true; + if (factory.split(tableRowsChildNode).isDataMoved()){ + results.setDataMoved(true); tableRowsFirstPart.appendChild(tableRowsChildNode.getPreviousSibling()); } } break; } else { tableRowsFirstPart.appendChild(tableRowsChildNode); - dataMoved = true; + results.setDataMoved(true); } } else { System.out.println("ERROR: TEXT NODE FOUND INSIDE tabl:table-rows"); @@ -52,10 +52,10 @@ public class TableRowsSplitter extends BasicSplitter implements ISplitter { } } - if (dataMoved) { + if (results.isDataMoved()) { parent.insertBefore(tableRowsFirstPart, tableRows); } - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/TableSplitter.java b/src/main/java/w2phtml/pageSplitters/TableSplitter.java index b7df79c..8346043 100644 --- a/src/main/java/w2phtml/pageSplitters/TableSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/TableSplitter.java @@ -21,7 +21,7 @@ public class TableSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node table) { + public SplitResults Split(Node table) { /* * // TODO: 0.Test if soft-page-break not at start of table // - in that @@ -41,7 +41,7 @@ public class TableSplitter extends BasicSplitter implements ISplitter { NodeList tableChildNodes = table.getChildNodes(); // Node counter int i = 0; - boolean dataMoved = false; + SplitResults results = new SplitResults(false); // Loop through the TABLE:TABLE child nodes while (tableChildNodes.getLength() > i) { Node tableChildNode = tableChildNodes.item(i); @@ -56,18 +56,18 @@ public class TableSplitter extends BasicSplitter implements ISplitter { table.removeChild(tableChildNode); } else if (tableChildNodeName.equals(TABLE_TABLE_ROW_GROUP)) { - if (factory.split(tableChildNode)){ - dataMoved = true; + if (factory.split(tableChildNode).isDataMoved()){ + results.setDataMoved(true); tableFirstPart.appendChild(tableChildNode.getPreviousSibling()); } } else if ( tableChildNodeName.equals(TABLE_TABLE_ROWS)) { - if (factory.split(tableChildNode)){ - dataMoved = true; + if (factory.split(tableChildNode).isDataMoved()){ + results.setDataMoved(true); tableFirstPart.appendChild(tableChildNode.getPreviousSibling()); } } else if ( tableChildNodeName.equals(TABLE_TABLE_ROW)) { - if (factory.split(tableChildNode)){ - dataMoved = true; + if (factory.split(tableChildNode).isDataMoved()){ + results.setDataMoved(true); tableFirstPart.appendChild(tableChildNode.getPreviousSibling()); } } else if (tableChildNodeName.equals(TABLE_TABLE_COLUMN) @@ -93,15 +93,15 @@ public class TableSplitter extends BasicSplitter implements ISplitter { } else { //Append to clone table tableFirstPart.appendChild(tableChildNode); - dataMoved = true; + results.setDataMoved(true); } } } } - if (dataMoved) { + if (results.isDataMoved()) { parent.insertBefore(tableFirstPart, table); } - return dataMoved; + return results; } } diff --git a/src/main/java/w2phtml/pageSplitters/TextSplitter.java b/src/main/java/w2phtml/pageSplitters/TextSplitter.java index e1d38d5..725ff99 100644 --- a/src/main/java/w2phtml/pageSplitters/TextSplitter.java +++ b/src/main/java/w2phtml/pageSplitters/TextSplitter.java @@ -30,12 +30,13 @@ public class TextSplitter extends BasicSplitter implements ISplitter { } @Override - public boolean Split(Node onode) { + public SplitResults Split(Node onode) { //Find par node with soft page break inside and split it Document document = onode.getOwnerDocument(); Element softPageBreak = document.createElement(TEXT_SOFT_PAGE_BREAK); NodeList nodes = onode.getChildNodes(); - + SplitResults results = new SplitResults(false); + int i = 0; //Loop through the content nodes and split nodes with soft page break while (i < nodes.getLength()){ @@ -51,11 +52,11 @@ public class TextSplitter extends BasicSplitter implements ISplitter { if ((nodeName.equals(TEXT_P) || nodeName.equals(TEXT_H))) { //If SPB not the first node - if (factory.split(child)){ + if (factory.split(child).isDataMoved()){ style = officeReader.getParStyle(Misc.getAttribute(child, TEXT_STYLE_NAME)); } } else if (nodeName.equals(TABLE_TABLE)) { - if (factory.split(child)){ + if (factory.split(child).isDataMoved()){ style = officeReader.getTableStyle(Misc.getAttribute(child, TABLE_STYLE_NAME)); } } else if (nodeName.equals(TEXT_LIST)) { @@ -65,7 +66,7 @@ public class TextSplitter extends BasicSplitter implements ISplitter { } else if (nodeName.equals(TEXT_ALPHABETICAL_INDEX)) { factory.split(child); } else if (nodeName.equals(TEXT_SECTION)) { - if (factory.split(child)) { + if (factory.split(child).isDataMoved()) { style = officeReader.getSectionStyle(Misc.getAttribute(child, TEXT_SECTION)); } } else if (nodeName.equals(TEXT_TABLE_OF_CONTENT)){ @@ -95,7 +96,7 @@ public class TextSplitter extends BasicSplitter implements ISplitter { i++; } //Debug.printNode(onode); - return false; + return results; } }