]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
I generalized several casts from KnuthElement to ListElement. This
authorSimon Pepping <spepping@apache.org>
Tue, 27 Dec 2005 08:40:09 +0000 (08:40 +0000)
committerSimon Pepping <spepping@apache.org>
Tue, 27 Dec 2005 08:40:09 +0000 (08:40 +0000)
removes a number of ClassCastExceptions in some files with inline
block content.

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@359189 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/fop/layoutmgr/AbstractBreaker.java
src/java/org/apache/fop/layoutmgr/BlockKnuthSequence.java
src/java/org/apache/fop/layoutmgr/BreakingAlgorithm.java
src/java/org/apache/fop/layoutmgr/InlineKnuthSequence.java
src/java/org/apache/fop/layoutmgr/KnuthSequence.java
src/java/org/apache/fop/layoutmgr/PageBreakingAlgorithm.java
src/java/org/apache/fop/layoutmgr/inline/LineLayoutManager.java

index 54cf80ebd6bb9110c7263454261c88c4bdfa65fd..732a0133a753654504a6c7dc57b3fc46984af6e3 100644 (file)
@@ -332,7 +332,7 @@ public abstract class AbstractBreaker {
             if (p == 0) {
                 lastBreakClass = effectiveList.getStartOn();
             } else {
-                KnuthElement lastBreakElement = effectiveList.getElement(endElementIndex);
+                ListElement lastBreakElement = effectiveList.getElement(endElementIndex);
                 if (lastBreakElement.isPenalty()) {
                     KnuthPenalty pen = (KnuthPenalty)lastBreakElement;
                     lastBreakClass = pen.getBreakClass();
index 1093fee7411f280ad42caed0ad8f57e4e963a3c4..c3c837f1ee4f7ddd8c357a8629825c12d0c5bc4d 100644 (file)
@@ -79,9 +79,9 @@ public class BlockKnuthSequence extends KnuthSequence {
      */
     public static boolean mustKeepTogether(BlockKnuthSequence sequence1,
                                            BlockKnuthSequence sequence2) {
-        KnuthElement element1 = (KnuthElement) sequence1.get(sequence1.size() - 1);
+        ListElement element1 = (ListElement) sequence1.get(sequence1.size() - 1);
         LayoutManager lm1 = (LayoutManager) element1.getLayoutManager();
-        KnuthElement element2 = (KnuthElement) sequence2.get(0);
+        ListElement element2 = (ListElement) sequence2.get(0);
         LayoutManager lm2 = (LayoutManager) element2.getLayoutManager();
         if (!lm1.equals(lm2)) {
             throw new IllegalStateException
index c290f5b13fb461bf12cc1bbc57ae3514265581d3..6dc013859ce49acc35047da02a6ab39d31446620 100644 (file)
@@ -474,7 +474,7 @@ public abstract class BreakingAlgorithm {
      * @return the requested context FO note or null, if no context node could be determined
      */
     private FONode findContextFO(KnuthSequence seq, int position) {
-        KnuthElement el = seq.getElement(position);
+        ListElement el = seq.getElement(position);
         while (el.getLayoutManager() == null && position < seq.size() - 1) {
             position++;
             el = seq.getElement(position);
index 6932b76005dbffca85fc7543f04bfce75ec46073..7883397900ed90dc1071de0867297280ea410810 100644 (file)
@@ -70,11 +70,11 @@ public class InlineKnuthSequence extends KnuthSequence  {
             return false;
         }
         // does the first element of the first paragraph add to an existing word?
-        KnuthElement lastOldElement, firstNewElement;
+        ListElement lastOldElement, firstNewElement;
         lastOldElement = getLast();
         firstNewElement = sequence.getElement(0);
-        if (firstNewElement.isBox() && !firstNewElement.isAuxiliary()
-                && lastOldElement.isBox() && lastOldElement.getW() != 0) {
+        if (firstNewElement.isBox() && !((KnuthElement) firstNewElement).isAuxiliary()
+                && lastOldElement.isBox() && ((KnuthElement) lastOldElement).getW() != 0) {
             addALetterSpace();
         }
         addAll(sequence);
index a063ee9f07730ff3c0259e1294ba7f356d665473..405af115736c497c2950523def825e301899143a 100644 (file)
@@ -88,9 +88,9 @@ public abstract class KnuthSequence extends ArrayList {
      */
     public void wrapPositions(LayoutManager lm) {
         ListIterator listIter = listIterator();
-        KnuthElement element;
+        ListElement element;
         while (listIter.hasNext()) {
-            element = (KnuthElement) listIter.next();
+            element = (ListElement) listIter.next();
             element.setPosition
             (lm.notifyPos(new NonLeafPosition(lm, element.getPosition())));
         }
@@ -99,32 +99,32 @@ public abstract class KnuthSequence extends ArrayList {
     /**
      * @return the last element of this sequence.
      */
-    public KnuthElement getLast() {
+    public ListElement getLast() {
         int idx = size();
         if (idx == 0) {
             return null; 
         }
-        return (KnuthElement) get(idx - 1);
+        return (ListElement) get(idx - 1);
     }
 
     /**
      * Remove the last element of this sequence.
      * @return the removed element.
      */
-    public KnuthElement removeLast() {
+    public ListElement removeLast() {
         int idx = size();
         if (idx == 0) {
             return null; 
         }
-        return (KnuthElement) remove(idx - 1);
+        return (ListElement) remove(idx - 1);
     }
 
     /**
      * @param index The index of the element to be returned
      * @return the element at index index.
      */
-    public KnuthElement getElement(int index) {
-        return (KnuthElement) get(index);
+    public ListElement getElement(int index) {
+        return (ListElement) get(index);
     }
 
     /**
index 5608b17206310395f40199a539e2a4d033ff38df..354f2da8725af46c16f1fcc919808a880e932d71 100644 (file)
@@ -367,7 +367,7 @@ class PageBreakingAlgorithm extends BreakingAlgorithm {
                  index ++) {
                 if (par.getElement(index).isGlue() && par.getElement(index - 1).isBox()
                     || par.getElement(index).isPenalty() 
-                       && par.getElement(index).getP() < KnuthElement.INFINITE) {
+                       && ((KnuthElement) par.getElement(index)).getP() < KnuthElement.INFINITE) {
                     // break found
                     break;
                 }
index 9b91e4beec48ef14243e778a0190e1515b35c7ca..454cb093b04221af9ef2312efbb4759da8819458 100644 (file)
@@ -41,6 +41,7 @@ import org.apache.fop.layoutmgr.KnuthSequence;
 import org.apache.fop.layoutmgr.LayoutContext;
 import org.apache.fop.layoutmgr.LayoutManager;
 import org.apache.fop.layoutmgr.LeafPosition;
+import org.apache.fop.layoutmgr.ListElement;
 import org.apache.fop.layoutmgr.NonLeafPosition;
 import org.apache.fop.layoutmgr.Position;
 import org.apache.fop.layoutmgr.PositionIterator;
@@ -735,13 +736,13 @@ public class LineLayoutManager extends InlineStackingLayoutManager
                 // the sequence contains inline Knuth elements
                 if (sequence.isInlineSequence()) {
                     // look at the last element 
-                    KnuthElement lastElement;
-                    lastElement = (KnuthElement) sequence.getLast();
+                    ListElement lastElement;
+                    lastElement = sequence.getLast();
                     if (lastElement == null) {
                         throw new NullPointerException(
                         "Sequence was empty! lastElement is null");
                     }
-                    bPrevWasKnuthBox = lastElement.isBox() && lastElement.getW() != 0;
+                    bPrevWasKnuthBox = lastElement.isBox() && ((KnuthElement) lastElement).getW() != 0;
                     
                     // if last paragraph is open, add the new elements to the paragraph
                     // else this is the last paragraph
@@ -975,7 +976,11 @@ public class LineLayoutManager extends InlineStackingLayoutManager
         int localLineHeight = 0, lineStretch = 0, lineShrink = 0;
         ListIterator seqIterator = seq.listIterator();
         while (seqIterator.hasNext()) {
-            KnuthElement element = (KnuthElement) seqIterator.next();
+            ListElement elt = (ListElement) seqIterator.next();
+            if (!(elt instanceof KnuthElement)) {
+                continue;
+            }
+            KnuthElement element = (KnuthElement) elt;
             localLineHeight += element.getW();
             if (element.isGlue()) {
                 lineStretch += element.getY();
@@ -1130,8 +1135,8 @@ public class LineLayoutManager extends InlineStackingLayoutManager
                 LinkedList targetList = new LinkedList();
                 ListIterator listIter = seq.listIterator();
                 while (listIter.hasNext()) {
-                    KnuthElement tempElement;
-                    tempElement = (KnuthElement) listIter.next();
+                    ListElement tempElement;
+                    tempElement = (ListElement) listIter.next();
                     if (tempElement.getLayoutManager() != this) {
                         tempElement.setPosition(notifyPos(new NonLeafPosition(this,
                                 tempElement.getPosition())));