[FOray-commit] SF.net SVN: foray:[12589] trunk/foray
Modular XSL-FO Implementation for Java.
Status: Alpha
Brought to you by:
victormote
|
From: <vic...@us...> - 2022-02-12 21:53:13
|
Revision: 12589
http://sourceforge.net/p/foray/code/12589
Author: victormote
Date: 2022-02-12 21:53:10 +0000 (Sat, 12 Feb 2022)
Log Message:
-----------
Conform to aXSL changes: 1. Make TextTokensContent implement KpContext. 2. Use the leaf iterator to get the nearest context in the stack of branches.
Modified Paths:
--------------
trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaBranch4a.java
trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaBranch4aIterator.java
trunk/foray/foray-common/src/test/java/org/foray/common/para/ParaBranch4aTests.java
trunk/foray/foray-content/src/main/java/org/foray/content/ContentTree4a.java
trunk/foray/foray-content/src/main/java/org/foray/content/TextTokensContent4a.java
trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/obj/BlockDiscrete4a.java
trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/obj/FoTextWords4a.java
trunk/foray/foray-linebreak/src/main/java/org/foray/linebreak/FirstFitLb.java
trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/FirstFitLbTests.java
trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/LineBreaker4aTests.java
trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/ParaBranch4aTestFixture.java
trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/ParaContentIteratorTests.java
trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/TotalFitLbTests.java
trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/util/DumpLayout.java
trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/util/DumpParaBranch.java
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/TokenFlow4a.java
trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Word4a.java
trunk/foray/foray-pioneer/src/main/java/org/foray/pioneer/FoTextWordsPnr.java
Modified: trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaBranch4a.java
===================================================================
--- trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaBranch4a.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaBranch4a.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -29,12 +29,13 @@
package org.foray.common.para;
import org.axsl.kp.KpBranch;
+import org.axsl.kp.KpContext;
import org.axsl.kp.KpLeaf;
+import org.axsl.kp.KpLeafIterator;
import org.axsl.kp.KpNode;
import java.util.ArrayList;
import java.util.List;
-import java.util.ListIterator;
/**
* FOray implementation of {@link KpBranch}.
@@ -44,10 +45,16 @@
/** The list of child nodes. */
private List<KpNode> nodes = new ArrayList<KpNode>();
+ /** The context for descendant leaves. */
+ private KpContext kpContext;
+
/**
* No-args constructor.
+ * @param kpContext The context for descendant leaves.
*/
- public ParaBranch4a() { }
+ public ParaBranch4a(final KpContext kpContext) {
+ this.kpContext = kpContext;
+ }
@Override
public Type getParaNodeType() {
@@ -153,7 +160,7 @@
}
@Override
- public ListIterator<KpLeaf> leafIterator() {
+ public KpLeafIterator leafIterator() {
return new ParaBranch4aIterator(this);
}
@@ -178,4 +185,9 @@
this.nodes.add(node);
}
+ @Override
+ public KpContext getKpContext() {
+ return this.kpContext;
+ }
+
}
Modified: trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaBranch4aIterator.java
===================================================================
--- trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaBranch4aIterator.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaBranch4aIterator.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -32,10 +32,11 @@
import org.foray.common.sequence.IntArrayBuilder;
import org.axsl.kp.KpBranch;
+import org.axsl.kp.KpContext;
import org.axsl.kp.KpLeaf;
+import org.axsl.kp.KpLeafIterator;
import org.axsl.kp.KpNode;
-import java.util.ListIterator;
import java.util.NoSuchElementException;
import java.util.Stack;
@@ -46,7 +47,7 @@
* This means that node "n" returned by next(), will also be returned again if the next call is to previous(), and vice
* versa.
*/
-public class ParaBranch4aIterator implements ListIterator<KpLeaf> {
+public class ParaBranch4aIterator implements KpLeafIterator {
/** The iterator conceptually sits immediately after (index - 1) and immediately before (index). */
private int leafIndex = 0;
@@ -248,4 +249,22 @@
}
}
+ /**
+ * {@inheritDoc}
+ * This implementation returns the {@link KpBranch} that is nearest to the top of the {@link KpBranch} stack that is
+ * also a {@link KpContext}.
+ */
+ @Override
+ public KpContext getNearestContext() {
+ /* Iterate the stack in reverse order. */
+ for (int index = this.branchStack.size() - 1; index > -1; index --) {
+ final KpBranch branch = branchStack.get(index);
+ final KpContext context = branch.getKpContext();
+ if (context != null) {
+ return context;
+ }
+ }
+ return null;
+ }
+
}
Modified: trunk/foray/foray-common/src/test/java/org/foray/common/para/ParaBranch4aTests.java
===================================================================
--- trunk/foray/foray-common/src/test/java/org/foray/common/para/ParaBranch4aTests.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-common/src/test/java/org/foray/common/para/ParaBranch4aTests.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -51,8 +51,8 @@
final KpPenalty discretionaryHyphen = new ParaPenaltyChars("-", 0, false);
- final ParaBranch4a out = new ParaBranch4a();
- final ParaBranch4a nodeGreatness = new ParaBranch4a();
+ final ParaBranch4a out = new ParaBranch4a(null);
+ final ParaBranch4a nodeGreatness = new ParaBranch4a(null);
nodeGreatness.addNode(new ParaBoxChars("great"));
nodeGreatness.addNode(discretionaryHyphen);
@@ -59,7 +59,7 @@
nodeGreatness.addNode(new ParaBoxChars("ness"));
/* Putting "Be" in a branch is unnecessary, but we wish to test a branch as the first node. */
- final ParaBranch4a nodeBe = new ParaBranch4a();
+ final ParaBranch4a nodeBe = new ParaBranch4a(null);
nodeBe.addNode(new ParaBoxChars("B"));
nodeBe.addNode(new ParaBoxChars("e"));
out.addNode(nodeBe); // Node 0, Leaf 0 - 1
@@ -102,7 +102,7 @@
out.addNode(ParaGlueChars.SPACE); // Node 37, Leaf 44
/* Putting "them." in a branch is unnecessary, but we with to test a branch as the last node. */
- final ParaBranch4a nodeThem = new ParaBranch4a();
+ final ParaBranch4a nodeThem = new ParaBranch4a(null);
nodeThem.addNode(new ParaBoxChars("t"));
nodeThem.addNode(new ParaBoxChars("h"));
nodeThem.addNode(new ParaBoxChars("e"));
Modified: trunk/foray/foray-content/src/main/java/org/foray/content/ContentTree4a.java
===================================================================
--- trunk/foray/foray-content/src/main/java/org/foray/content/ContentTree4a.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-content/src/main/java/org/foray/content/ContentTree4a.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -34,12 +34,13 @@
import org.axsl.content.Content;
import org.axsl.content.ContentTree;
import org.axsl.kp.KpBranch;
+import org.axsl.kp.KpContext;
import org.axsl.kp.KpLeaf;
+import org.axsl.kp.KpLeafIterator;
import org.axsl.kp.KpNode;
import java.util.ArrayList;
import java.util.List;
-import java.util.ListIterator;
/**
* FOray implementation of {@link ContentTree}.
@@ -130,7 +131,7 @@
}
@Override
- public ListIterator<KpLeaf> leafIterator() {
+ public KpLeafIterator leafIterator() {
return new ParaBranch4aIterator(this);
}
@@ -147,4 +148,9 @@
return builder.toString();
}
+ @Override
+ public KpContext getKpContext() {
+ return null;
+ }
+
}
Modified: trunk/foray/foray-content/src/main/java/org/foray/content/TextTokensContent4a.java
===================================================================
--- trunk/foray/foray-content/src/main/java/org/foray/content/TextTokensContent4a.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-content/src/main/java/org/foray/content/TextTokensContent4a.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -28,15 +28,20 @@
package org.foray.content;
+import org.foray.common.FontContext4a;
+import org.foray.common.para.ParaBranch4aIterator;
+
import org.axsl.content.TextTokensContent;
+import org.axsl.font.FontUse;
import org.axsl.fotree.FoContext;
import org.axsl.fotree.fo.FoTextWords;
import org.axsl.fotree.text.FoTextTokenFlow;
+import org.axsl.kp.KpContext;
import org.axsl.kp.KpLeaf;
+import org.axsl.kp.KpLeafIterator;
import org.axsl.kp.KpNode;
+import org.axsl.orthography.Orthography;
-import java.util.ListIterator;
-
/**
* Content wrapper for {@link FoTextWords}.
*/
@@ -95,9 +100,10 @@
}
@Override
- public ListIterator<KpLeaf> leafIterator() {
- /* Pass-through. */
- return getTokenFlow().leafIterator();
+ public KpLeafIterator leafIterator() {
+ /* Do NOT pass-through. This wrapper needs to go onto the stack of branches so that the descendant words and
+ * word segments have {@link KpContext}. */
+ return new ParaBranch4aIterator(this);
}
@Override
@@ -112,4 +118,35 @@
return getTokenFlow().getText();
}
+ @Override
+ public int getIdealWidth(final KpLeaf leaf) {
+ final FontUse fontUse = this.content.getPrimaryFont(getContext());
+ final int fontSize = this.content.traitFontSize(getContext());
+ final Orthography orthography = this.content.getOrthography();
+ return fontUse.width(leaf.getText(), fontSize, FontContext4a.DEFAULT, orthography);
+ }
+
+ @Override
+ public int getStretchability(final KpLeaf leaf) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getShrinkability(final KpLeaf leaf) {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public int getHyphenCharacterWidth() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public KpContext getKpContext() {
+ return this;
+ }
+
}
Modified: trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/obj/BlockDiscrete4a.java
===================================================================
--- trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/obj/BlockDiscrete4a.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/obj/BlockDiscrete4a.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -41,12 +41,13 @@
import org.axsl.fotree.FoVisitor;
import org.axsl.fotree.fo.BlockDiscrete;
import org.axsl.kp.KpBranch;
+import org.axsl.kp.KpContext;
import org.axsl.kp.KpLeaf;
+import org.axsl.kp.KpLeafIterator;
import org.axsl.kp.KpNode;
import java.util.ArrayList;
import java.util.List;
-import java.util.ListIterator;
/**
* A container for only text and inline items.
@@ -262,7 +263,7 @@
}
@Override
- public ListIterator<KpLeaf> leafIterator() {
+ public KpLeafIterator leafIterator() {
return new ParaBranch4aIterator(this);
}
@@ -283,4 +284,9 @@
throw new UnsupportedOperationException();
}
+ @Override
+ public KpContext getKpContext() {
+ return null;
+ }
+
}
Modified: trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/obj/FoTextWords4a.java
===================================================================
--- trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/obj/FoTextWords4a.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-fotree/src/main/java/org/foray/fotree/fo/obj/FoTextWords4a.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -38,13 +38,13 @@
import org.axsl.fotree.text.FoTextToken;
import org.axsl.fotree.text.FoTextTokenFlow;
import org.axsl.kp.KpBranch;
+import org.axsl.kp.KpContext;
import org.axsl.kp.KpLeaf;
+import org.axsl.kp.KpLeafIterator;
import org.axsl.kp.KpNode;
import org.axsl.orthography.OrthographyException;
import org.axsl.orthography.Whitespace;
-import java.util.ListIterator;
-
/**
* Text in an FO document that has been tokenized into words.
* This is a thin wrapper around an instance of {@link FoTextTokenFlow} that allows that token flow to live in an FO
@@ -155,8 +155,13 @@
}
@Override
- public ListIterator<KpLeaf> leafIterator() {
+ public KpLeafIterator leafIterator() {
return this.tokenFlow.leafIterator();
}
+ @Override
+ public KpContext getKpContext() {
+ return null;
+ }
+
}
Modified: trunk/foray/foray-linebreak/src/main/java/org/foray/linebreak/FirstFitLb.java
===================================================================
--- trunk/foray/foray-linebreak/src/main/java/org/foray/linebreak/FirstFitLb.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-linebreak/src/main/java/org/foray/linebreak/FirstFitLb.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -35,12 +35,12 @@
import org.axsl.kp.KpContext;
import org.axsl.kp.KpGlue;
import org.axsl.kp.KpLeaf;
+import org.axsl.kp.KpLeafIterator;
import org.axsl.kp.KpPenalty;
import org.axsl.kp.KpUserAgent;
import java.util.ArrayList;
import java.util.List;
-import java.util.ListIterator;
/**
* <p>Implementation of the Knuth-Plass "first-fit" linebreaking algorithm.
@@ -114,9 +114,6 @@
/** The accumulated total of the ideal width of the non-glue items in the current provisional word. */
private int provisionalNonGlueIdealWidth = 0;
- /** The configuration of the paragraph being processed. */
- private KpContext paraConfig;
-
/** The paragraph context. */
private KpUserAgent paraContext;
@@ -123,6 +120,9 @@
/** The target of the line-breaker. */
private LineBreakContext lineBreakTarget;
+ /** The iterator being used to traverse the nodes in the paragraph. */
+ private KpLeafIterator leafIterator;
+
/**
* Constructor.
* @param paraConfig The configuration of the paragraph being processed.
@@ -130,7 +130,6 @@
* @param lbContext The line-break target.
*/
private State(final KpContext paraConfig, final KpUserAgent paraContext, final LineBreakContext lbContext) {
- this.paraConfig = paraConfig;
this.paraContext = paraContext;
this.lineBreakTarget = lbContext;
this.currentLineNumber = 1;
@@ -145,7 +144,7 @@
provisionalNonGlue.add(leaf);
/* Do not include the width of penalty items. */
if (leaf.getParaLeafType() == KpLeaf.Type.BOX) {
- final int leafWidth = leaf.getIdealWidth(paraConfig);
+ final int leafWidth = leaf.getIdealWidth(this.leafIterator.getNearestContext());
provisionalNonGlueIdealWidth += leafWidth;
}
}
@@ -156,9 +155,10 @@
*/
private void addProvisionalGlue(final KpGlue glue) {
provisionalGlue.add(glue);
- provisionalGlueIdealWidth += glue.getIdealWidth(paraConfig);
- provisionalGlueShrinkability += glue.getShrinkability(paraConfig);
- provisionalGlueStretchability += glue.getStretchability(paraConfig);
+ final KpContext context = this.leafIterator.getNearestContext();
+ provisionalGlueIdealWidth += glue.getIdealWidth(context);
+ provisionalGlueShrinkability += glue.getShrinkability(context);
+ provisionalGlueStretchability += glue.getStretchability(context);
}
/**
@@ -287,10 +287,10 @@
}
final State state = new State(paraConfig, paraContext, lbContext);
+ state.leafIterator = paragraph.leafIterator();
- final ListIterator<KpLeaf> leafIterator = paragraph.leafIterator();
- while (leafIterator.hasNext()) {
- final KpLeaf leaf = leafIterator.next();
+ while (state.leafIterator.hasNext()) {
+ final KpLeaf leaf = state.leafIterator.next();
final KpPenalty penalty = KpLeaf.Type.asPenalty(leaf);
if (penalty != null
&& penalty.getCost(paraContext) <= KpPenalty.Quality.FORCED_BREAK.getNumericValue()) {
@@ -380,7 +380,7 @@
final KpPenalty penalty = KpLeaf.Type.asPenalty(leaf);
if (penalty == null) {
/* This is block content might get pushed to the next line. */
- idealWidthToNextLine += leaf.getIdealWidth(state.paraConfig);
+ idealWidthToNextLine += leaf.getIdealWidth(state.leafIterator.getNearestContext());
} else {
/* This is a penalty item. */
/* Are we allowed to break here. */
@@ -387,7 +387,8 @@
if (penalty.getCost(state.paraContext) >= KpPenalty.Quality.INFINITE_PENALTY.getNumericValue()) {
}
- if (state.minProvisionalLineWidth() - idealWidthToNextLine + penalty.getPenaltyWidth(state.paraConfig)
+ if (state.minProvisionalLineWidth() - idealWidthToNextLine +
+ penalty.getPenaltyWidth(state.leafIterator.getNearestContext())
<= lineCapacity) {
/* This is the breakpoint we want. However, we need to break after this breakpoint. */
state.markEndOfLine(index + 1);
Modified: trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/FirstFitLbTests.java
===================================================================
--- trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/FirstFitLbTests.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/FirstFitLbTests.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -47,14 +47,14 @@
*/
@Test
public void firstFitTestSingleLine() {
- final ParaBranch4aTestFixture para = new ParaBranch4aTestFixture('-');
+ final KpContext kpContext = createGrimmParaConfig();
+ final ParaBranch4aTestFixture para = new ParaBranch4aTestFixture(kpContext, '-');
para.addWord("Hello World!");
para.addSpace();
- final KpContext paraConfig = createGrimmParaConfig();
final KpUserAgent paraContext = createUserAgent();
final LineBreakContext lineBreakTarget = createLineBreakTarget(-1);
final FirstFitLb out = new FirstFitLb();
- final LineBreakResult4a actual = out.breakIntoLines(para, paraConfig, paraContext, lineBreakTarget);
+ final LineBreakResult4a actual = out.breakIntoLines(para, kpContext, paraContext, lineBreakTarget);
Assert.assertEquals(1, actual.getQtyLines());
Assert.assertEquals(468000, actual.getLineLength(0));
Assert.assertEquals(2, actual.getBreakPosition(0));
@@ -65,8 +65,8 @@
*/
@Test
public void firstFitTestGrimm() {
- final ParaBranch4a para = this.createPara();
- final KpContext paraConfig = createGrimmParaConfig();
+ final KpContext kpContext = createGrimmParaConfig();
+ final ParaBranch4a para = this.createPara(kpContext);
/* Line width obtained from "Digital Typography," p. 73. We leave it expressed here in Monotype "units". */
final int lineWidth = 390;
final KpUserAgent paraContext = createUserAgent();
@@ -73,7 +73,7 @@
final LineBreakContext lbContext = createLineBreakTarget(lineWidth);
final FirstFitLb out = new FirstFitLb();
- final LineBreakResult4a actual = out.breakIntoLines(para, paraConfig, paraContext, lbContext);
+ final LineBreakResult4a actual = out.breakIntoLines(para, kpContext, paraContext, lbContext);
Assert.assertEquals(12, actual.getQtyLines());
Assert.assertEquals(390, actual.getLineLength(0));
Assert.assertEquals(390, actual.getLineLength(1));
Modified: trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/LineBreaker4aTests.java
===================================================================
--- trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/LineBreaker4aTests.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/LineBreaker4aTests.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -38,6 +38,7 @@
import org.foray.orthography.Punctuation4a;
import org.axsl.context.LineBreakContext;
+import org.axsl.kp.KpContext;
import org.axsl.kp.KpPenalty;
import org.axsl.kp.KpUserAgent;
@@ -88,10 +89,11 @@
* manually build it in this method.
* Where effort has been expended to manually compute indexes and widths, that work is shown, as it may be useful
* for testing or debugging in the future.
+ * @param kpContext The context to be used by descendant leaves.
* @return The tokenized content of {@link #TEST_STRING_01}.
*/
- public ParaBranch4a createPara() {
- final ParaBranch4aTestFixture para = new ParaBranch4aTestFixture('-');
+ public ParaBranch4a createPara(final KpContext kpContext) {
+ final ParaBranch4aTestFixture para = new ParaBranch4aTestFixture(kpContext, '-');
// ----Leaf--- Ideal Cumul
// Index Qty Width Width
// ------ --- ----- -----
Modified: trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/ParaBranch4aTestFixture.java
===================================================================
--- trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/ParaBranch4aTestFixture.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/ParaBranch4aTestFixture.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -32,6 +32,8 @@
import org.foray.orthography.StringWord;
import org.foray.orthography.Whitespace4a;
+import org.axsl.kp.KpContext;
+
import java.util.regex.Pattern;
/**
@@ -44,9 +46,11 @@
/**
* Constructor.
+ * @param kpContext The context to be used by descendant leaves.
* @param softHyphenChar The character used to mark syllable breaks.
*/
- public ParaBranch4aTestFixture(final char softHyphenChar) {
+ public ParaBranch4aTestFixture(final KpContext kpContext, final char softHyphenChar) {
+ super(kpContext);
this.wordBreaker = Pattern.compile(Character.toString(softHyphenChar));
}
Modified: trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/ParaContentIteratorTests.java
===================================================================
--- trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/ParaContentIteratorTests.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/ParaContentIteratorTests.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -48,11 +48,11 @@
*/
@Test
public void test01() {
- final ParaBranch4a root = new ParaBranch4a();
+ final ParaBranch4a root = new ParaBranch4a(null);
final ParaBox4a a = new ParaBox4a(0);
- final ParaBranch4a b = new ParaBranch4a();
- final ParaBranch4a c = new ParaBranch4a();
- final ParaBranch4a d = new ParaBranch4a();
+ final ParaBranch4a b = new ParaBranch4a(null);
+ final ParaBranch4a c = new ParaBranch4a(null);
+ final ParaBranch4a d = new ParaBranch4a(null);
final ParaBox4a e = new ParaBox4a(0);
final ParaBox4a f = new ParaBox4a(0);
final ParaBox4a g = new ParaBox4a(0);
Modified: trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/TotalFitLbTests.java
===================================================================
--- trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/TotalFitLbTests.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/TotalFitLbTests.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -51,14 +51,14 @@
public void totalFitTest1() {
/* TODO: THE CLASS BEING TESTED IS VERY INCOMPLETE, AND SO IS THIS TEST !!!!!! */
- final ParaBranch4a para = this.createPara();
- final KpContext paraConfig = createGrimmParaConfig();
+ final KpContext kpContext = createGrimmParaConfig();
+ final ParaBranch4a para = this.createPara(kpContext);
final KpUserAgent paraContext = createUserAgent();
/* Line width obtained from "Digital Typography," p. 73.*/
final LineBreakContext lineBreakTarget = createLineBreakTarget(390_000);
final TotalFitLb out = new TotalFitLb();
- final LineBreakResult4a actual = out.breakIntoLines(para, paraConfig, paraContext, lineBreakTarget);
+ final LineBreakResult4a actual = out.breakIntoLines(para, kpContext, paraContext, lineBreakTarget);
final int[] expected = new int[0];
Assert.assertEquals(expected, actual);
Modified: trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/util/DumpLayout.java
===================================================================
--- trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/util/DumpLayout.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/util/DumpLayout.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -81,7 +81,7 @@
final String arrayAsString = args[0];
final IntArray intArray = new IntArray(arrayAsString);
final FirstFitLbTests lb = new FirstFitLbTests();
- final ParaBranch4a branch = lb.createPara();
+ final ParaBranch4a branch = lb.createPara(null);
new DumpLayout(branch, intArray.toArray());
}
Modified: trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/util/DumpParaBranch.java
===================================================================
--- trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/util/DumpParaBranch.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-linebreak/src/test/java/org/foray/linebreak/util/DumpParaBranch.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -80,7 +80,7 @@
*/
public static void main(final String[] args) {
final FirstFitLbTests lb = new FirstFitLbTests();
- final ParaBranch4a branch = lb.createPara();
+ final ParaBranch4a branch = lb.createPara(null);
new DumpParaBranch(branch);
}
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/TokenFlow4a.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/TokenFlow4a.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/TokenFlow4a.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -36,7 +36,9 @@
import org.axsl.fotree.text.FoTextTokenFlow;
import org.axsl.fotree.text.FoWord;
import org.axsl.fotree.text.FoWordSegment;
+import org.axsl.kp.KpContext;
import org.axsl.kp.KpLeaf;
+import org.axsl.kp.KpLeafIterator;
import org.axsl.kp.KpNode;
import org.axsl.orthography.TextTokenFlowLocation;
import org.axsl.orthography.Whitespace;
@@ -45,7 +47,6 @@
import java.util.ArrayList;
import java.util.List;
-import java.util.ListIterator;
/**
* FOray implementation of {@link FoTextTokenFlow}.
@@ -171,7 +172,7 @@
}
@Override
- public ListIterator<KpLeaf> leafIterator() {
+ public KpLeafIterator leafIterator() {
return new ParaBranch4aIterator(this);
}
@@ -375,4 +376,9 @@
}
}
+ @Override
+ public KpContext getKpContext() {
+ return null;
+ }
+
}
Modified: trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Word4a.java
===================================================================
--- trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Word4a.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-orthography/src/main/java/org/foray/orthography/Word4a.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -35,7 +35,8 @@
import org.axsl.fotree.text.FoWord;
import org.axsl.fotree.text.FoWordComponent;
import org.axsl.fotree.text.FoWordSegment;
-import org.axsl.kp.KpLeaf;
+import org.axsl.kp.KpContext;
+import org.axsl.kp.KpLeafIterator;
import org.axsl.kp.KpNode;
import org.axsl.kp.KpPenalty;
import org.axsl.orthography.Word;
@@ -45,7 +46,6 @@
import org.axsl.value.group.TextModifiers;
import java.io.Serializable;
-import java.util.ListIterator;
/**
* <p>Abstract superclass for FOray implementations of {@link Word}, providing some default implementation.</p>
@@ -255,7 +255,7 @@
}
@Override
- public ListIterator<KpLeaf> leafIterator() {
+ public KpLeafIterator leafIterator() {
// TODO Auto-generated method stub
return null;
}
@@ -296,4 +296,9 @@
throw new IndexOutOfBoundsException();
}
+ @Override
+ public KpContext getKpContext() {
+ return null;
+ }
+
}
Modified: trunk/foray/foray-pioneer/src/main/java/org/foray/pioneer/FoTextWordsPnr.java
===================================================================
--- trunk/foray/foray-pioneer/src/main/java/org/foray/pioneer/FoTextWordsPnr.java 2022-02-12 13:41:38 UTC (rev 12588)
+++ trunk/foray/foray-pioneer/src/main/java/org/foray/pioneer/FoTextWordsPnr.java 2022-02-12 21:53:10 UTC (rev 12589)
@@ -29,11 +29,13 @@
package org.foray.pioneer;
import org.foray.common.para.ParaBranch4aIterator;
+import org.foray.content.TextTokensContent4a;
import org.axsl.area.AreaNode;
import org.axsl.area.AreaTreeException;
import org.axsl.area.LineArea;
import org.axsl.area.NormalBlockArea;
+import org.axsl.content.TextTokensContent;
import org.axsl.fotree.fo.FoTextWords;
import org.axsl.kp.KpContext;
import org.axsl.kp.KpResult;
@@ -81,8 +83,8 @@
if (this.result == null) {
final LineBreaker lb = getLayout().getLineBreaker();
- this.result = lb.breakIntoLines(
- this.node.getFoTokenFlow(), (KpContext) this.node, paraContext, normalBlockArea);
+ final TextTokensContent content = new TextTokensContent4a(this.node, normalBlockArea);
+ this.result = lb.breakIntoLines(content, (KpContext) this.node, paraContext, normalBlockArea);
}
TextTokenFlowLocation startLocation = this.node.getFoTokenFlow().markLocation(0, 0, 0);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|