[FOray-commit] SF.net SVN: foray:[12327] trunk/foray
Modular XSL-FO Implementation for Java.
Status: Alpha
Brought to you by:
victormote
|
From: <vic...@us...> - 2022-01-03 19:19:00
|
Revision: 12327
http://sourceforge.net/p/foray/code/12327
Author: victormote
Date: 2022-01-03 19:18:57 +0000 (Mon, 03 Jan 2022)
Log Message:
-----------
Conform to aXSL change: Move the "Quality" enumeration from DiscretionaryHyphen to ParaPenalty and combine it with existing constants in that class.
Modified Paths:
--------------
trunk/foray/foray-common/src/main/java/org/foray/common/para/DiscretionaryHyphen4a.java
trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaPenalty4a.java
trunk/foray/foray-common/src/test/java/org/foray/common/para/ParaBranch4aTests.java
trunk/foray/foray-linebreak/src/main/java/org/foray/linebreak/FirstFitLb.java
trunk/foray/foray-linebreak/src/main/java/org/foray/linebreak/TotalFitLb.java
trunk/foray/foray-orthography/src/test/java/org/foray/orthography/SegmentDictionaryWordTests.java
trunk/foray/foray-orthography/src/test/java/org/foray/orthography/WordWrapperTests.java
Modified: trunk/foray/foray-common/src/main/java/org/foray/common/para/DiscretionaryHyphen4a.java
===================================================================
--- trunk/foray/foray-common/src/main/java/org/foray/common/para/DiscretionaryHyphen4a.java 2022-01-03 16:31:03 UTC (rev 12326)
+++ trunk/foray/foray-common/src/main/java/org/foray/common/para/DiscretionaryHyphen4a.java 2022-01-03 19:18:57 UTC (rev 12327)
@@ -36,6 +36,9 @@
import org.axsl.common.para.ParaLeaf;
import org.axsl.common.para.ParaPenalty;
+import java.util.EnumMap;
+import java.util.Map;
+
/**
* FOray implementation of {@link DiscretionaryHyphen}.
* Instances of this class are immutable.
@@ -46,36 +49,37 @@
* 1.*/
public static final int DEFAULT_PENALTY = 50;
+ /** Pre-built "heinous" hyphenation point. */
+ public static final DiscretionaryHyphen4a HEINOUS = new DiscretionaryHyphen4a(ParaPenalty.Quality.INFINITE_PENALTY);
+
/** Pre-built "acceptable" hyphenation point. */
- public static final DiscretionaryHyphen4a ACCEPTABLE =
- new DiscretionaryHyphen4a(DiscretionaryHyphen.Quality.ACCEPTABLE);
+ public static final DiscretionaryHyphen4a ACCEPTABLE = new DiscretionaryHyphen4a(ParaPenalty.Quality.ACCEPTABLE);
/** Pre-built "good" hyphenation point. */
- public static final DiscretionaryHyphen4a GOOD =
- new DiscretionaryHyphen4a(DiscretionaryHyphen.Quality.GOOD);
+ public static final DiscretionaryHyphen4a GOOD = new DiscretionaryHyphen4a(ParaPenalty.Quality.GOOD);
/** Pre-built "best" hyphenation point. */
- public static final DiscretionaryHyphen4a BEST =
- new DiscretionaryHyphen4a(DiscretionaryHyphen.Quality.BEST);
+ public static final DiscretionaryHyphen4a BEST = new DiscretionaryHyphen4a(ParaPenalty.Quality.BEST);
- /** The array of pre-constructed instance, indexed by the numeric value of their quality minus 1. */
- private static final DiscretionaryHyphen4a[] PRE_CONSTRUCTED_POINTS =
- new DiscretionaryHyphen4a[DiscretionaryHyphen.Quality.values().length];
+ /** The array of pre-constructed instances. */
+ private static final Map<ParaPenalty.Quality, DiscretionaryHyphen4a> PRE_CONSTRUCTED_POINTS =
+ new EnumMap<ParaPenalty.Quality, DiscretionaryHyphen4a>(ParaPenalty.Quality.class);
static {
- PRE_CONSTRUCTED_POINTS[DiscretionaryHyphen.Quality.ACCEPTABLE.getNumericValue() - 1] = ACCEPTABLE;
- PRE_CONSTRUCTED_POINTS[DiscretionaryHyphen.Quality.GOOD.getNumericValue() - 1] = GOOD;
- PRE_CONSTRUCTED_POINTS[DiscretionaryHyphen.Quality.BEST.getNumericValue() - 1] = BEST;
+ PRE_CONSTRUCTED_POINTS.put(ParaPenalty.Quality.INFINITE_PENALTY, HEINOUS);
+ PRE_CONSTRUCTED_POINTS.put(ParaPenalty.Quality.ACCEPTABLE, ACCEPTABLE);
+ PRE_CONSTRUCTED_POINTS.put(ParaPenalty.Quality.GOOD, GOOD);
+ PRE_CONSTRUCTED_POINTS.put(ParaPenalty.Quality.BEST, BEST);
}
/** The quality for this instance. */
- private DiscretionaryHyphen.Quality quality;
+ private ParaPenalty.Quality quality;
/**
* Protected constructor. There are only 3 possible normal values, so these are pre-constructed.
- * Use {@link #fromQuality(org.axsl.common.para.DiscretionaryHyphen.Quality)} to obtain an instance of this class.
+ * Use {@link #fromQuality(org.axsl.common.para.ParaPenalty.Quality)} to obtain an instance of this class.
* @param quality The quality for this instance.
*/
- protected DiscretionaryHyphen4a(final DiscretionaryHyphen.Quality quality) {
+ protected DiscretionaryHyphen4a(final ParaPenalty.Quality quality) {
this.quality = quality;
}
@@ -84,12 +88,12 @@
* @param quality The quality for the desired instance.
* @return The instance of this class matching {@code quality}.
*/
- public static DiscretionaryHyphen4a fromQuality(final DiscretionaryHyphen.Quality quality) {
- return DiscretionaryHyphen4a.PRE_CONSTRUCTED_POINTS[quality.getNumericValue() - 1];
+ public static DiscretionaryHyphen4a fromQuality(final ParaPenalty.Quality quality) {
+ return DiscretionaryHyphen4a.PRE_CONSTRUCTED_POINTS.get(quality);
}
@Override
- public DiscretionaryHyphen.Quality getQuality() {
+ public ParaPenalty.Quality getQuality() {
return this.quality;
}
Modified: trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaPenalty4a.java
===================================================================
--- trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaPenalty4a.java 2022-01-03 16:31:03 UTC (rev 12326)
+++ trunk/foray/foray-common/src/main/java/org/foray/common/para/ParaPenalty4a.java 2022-01-03 19:18:57 UTC (rev 12327)
@@ -44,10 +44,12 @@
public final class ParaPenalty4a extends ParaLeaf4a implements ParaPenalty {
/** A penalty instance indicating that a break cannot be taken here under any circumstances. */
- public static final ParaPenalty4a DISALLOWED_BREAK = new ParaPenalty4a(0, ParaPenalty.INFINITE_PENALTY, false);
+ public static final ParaPenalty4a DISALLOWED_BREAK =
+ new ParaPenalty4a(0, ParaPenalty.Quality.INFINITE_PENALTY.getNumericValue(), false);
/** A penalty instance indicating that a break must be taken here always. */
- public static final ParaPenalty4a FORCED_BREAK = new ParaPenalty4a(0, ParaPenalty.FORCED_BREAK, true);
+ public static final ParaPenalty4a FORCED_BREAK =
+ new ParaPenalty4a(0, ParaPenalty.Quality.FORCED_BREAK.getNumericValue(), true);
/** String format used in {@link #toString()}. */
private static final String TO_STRING_FORMAT = "Penalty (w = %1$d, p = %2$d, f = %3$b)";
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-01-03 16:31:03 UTC (rev 12326)
+++ trunk/foray/foray-common/src/test/java/org/foray/common/para/ParaBranch4aTests.java 2022-01-03 19:18:57 UTC (rev 12327)
@@ -53,7 +53,7 @@
nodeGreatness.addNode(DiscretionaryHyphen4a.GOOD);
nodeGreatness.addNode(new ParaBoxChars("ness"));
- /* Putting "Be" in a branch is unnecessary, but we with to test a branch as the first node. */
+ /* Putting "Be" in a branch is unnecessary, but we wish to test a branch as the first node. */
final ParaBranch4a nodeBe = new ParaBranch4a();
nodeBe.addNode(new ParaBoxChars("B"));
nodeBe.addNode(new ParaBoxChars("e"));
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-01-03 16:31:03 UTC (rev 12326)
+++ trunk/foray/foray-linebreak/src/main/java/org/foray/linebreak/FirstFitLb.java 2022-01-03 19:18:57 UTC (rev 12327)
@@ -282,7 +282,7 @@
final ParaLeaf leaf = leafIterator.next();
final ParaPenalty penalty = leaf.asParaPenalty();
if (penalty != null
- && penalty.getCost(paraContext) <= ParaPenalty.FORCED_BREAK) {
+ && penalty.getCost(paraContext) <= ParaPenalty.Quality.FORCED_BREAK.getNumericValue()) {
/* This is a forced line break. */
state.addProvisionalNonGlue(leaf);
state.acceptProvisionalWord();
@@ -356,7 +356,7 @@
} else {
/* This is a penalty item. */
/* Are we allowed to break here. */
- if (penalty.getCost(state.paraContext) >= ParaPenalty.INFINITE_PENALTY) {
+ if (penalty.getCost(state.paraContext) >= ParaPenalty.Quality.INFINITE_PENALTY.getNumericValue()) {
}
if (state.minProvisionalLineWidth() - idealWidthToNextLine + penalty.getWidth(state.paraConfig)
Modified: trunk/foray/foray-linebreak/src/main/java/org/foray/linebreak/TotalFitLb.java
===================================================================
--- trunk/foray/foray-linebreak/src/main/java/org/foray/linebreak/TotalFitLb.java 2022-01-03 16:31:03 UTC (rev 12326)
+++ trunk/foray/foray-linebreak/src/main/java/org/foray/linebreak/TotalFitLb.java 2022-01-03 19:18:57 UTC (rev 12327)
@@ -197,7 +197,7 @@
}
case PENALTY: {
final ParaPenalty penalty = leaf.asParaPenalty();
- if (penalty.getCost(this.paraContext) != ParaPenalty.INFINITE_PENALTY) {
+ if (penalty.getCost(this.paraContext) != ParaPenalty.Quality.INFINITE_PENALTY.getNumericValue()) {
mainLoop(leafWrapper);
}
break;
@@ -224,8 +224,8 @@
outerLoop:
while (true) {
- Arrays.fill(this.capDarray, ParaPenalty.INFINITE_PENALTY);
- int capD = ParaPenalty.INFINITE_PENALTY;
+ Arrays.fill(this.capDarray, ParaPenalty.Quality.INFINITE_PENALTY.getNumericValue());
+ int capD = ParaPenalty.Quality.INFINITE_PENALTY.getNumericValue();
KpFitnessClass c = null;
innerLoop:
@@ -234,7 +234,7 @@
final int j = a.getLine() + 1;
final double r = computeAdjustmentRatio(a, b, j);
if (r < -1
- || (b.getPenaltyCost(this.paraContext) == ParaPenalty.FORCED_BREAK)) {
+ || (b.getPenaltyCost(this.paraContext) == ParaPenalty.Quality.FORCED_BREAK.getNumericValue())) {
deactivateNode(a, preva, nexta);
} else {
preva = a;
@@ -263,7 +263,7 @@
}
}
- if (capD < ParaPenalty.INFINITE_PENALTY) {
+ if (capD < ParaPenalty.Quality.INFINITE_PENALTY.getNumericValue()) {
/* Insert new active nodes for breaks from A-sub-c to b. */
/* Compute total width, stretchability, and shrinkability for nodes after b. */
@@ -286,7 +286,7 @@
}
case PENALTY: {
final ParaPenalty penalty = leaf.asParaPenalty();
- if (penalty.getCost(this.paraContext) <= ParaPenalty.FORCED_BREAK
+ if (penalty.getCost(this.paraContext) <= ParaPenalty.Quality.FORCED_BREAK.getNumericValue()
&& index > b.getIndex()) {
break computeTotalWidthAfterB;
}
@@ -379,7 +379,7 @@
* Math.pow(Math.abs(adjustmentRatio), WellKnownConstants.CUBED_EXPONENT));
if (penaltyCost >= 0) {
d = Math.pow(adjustmentRatioFactor + penaltyCost, WellKnownConstants.SQUARED_EXPONENT);
- } else if (penaltyCost > ParaPenalty.FORCED_BREAK) {
+ } else if (penaltyCost > ParaPenalty.Quality.FORCED_BREAK.getNumericValue()) {
d = Math.pow(adjustmentRatioFactor, WellKnownConstants.SQUARED_EXPONENT)
- Math.pow(penaltyCost, WellKnownConstants.SQUARED_EXPONENT);
} else {
Modified: trunk/foray/foray-orthography/src/test/java/org/foray/orthography/SegmentDictionaryWordTests.java
===================================================================
--- trunk/foray/foray-orthography/src/test/java/org/foray/orthography/SegmentDictionaryWordTests.java 2022-01-03 16:31:03 UTC (rev 12326)
+++ trunk/foray/foray-orthography/src/test/java/org/foray/orthography/SegmentDictionaryWordTests.java 2022-01-03 19:18:57 UTC (rev 12327)
@@ -28,8 +28,8 @@
package org.foray.orthography;
-import org.axsl.common.para.DiscretionaryHyphen.Quality;
import org.axsl.common.para.ParaNode;
+import org.axsl.common.para.ParaPenalty.Quality;
import org.junit.Assert;
import org.junit.BeforeClass;
Modified: trunk/foray/foray-orthography/src/test/java/org/foray/orthography/WordWrapperTests.java
===================================================================
--- trunk/foray/foray-orthography/src/test/java/org/foray/orthography/WordWrapperTests.java 2022-01-03 16:31:03 UTC (rev 12326)
+++ trunk/foray/foray-orthography/src/test/java/org/foray/orthography/WordWrapperTests.java 2022-01-03 19:18:57 UTC (rev 12327)
@@ -28,8 +28,8 @@
package org.foray.orthography;
-import org.axsl.common.para.DiscretionaryHyphen.Quality;
import org.axsl.common.para.ParaNode;
+import org.axsl.common.para.ParaPenalty.Quality;
import org.axsl.orthography.Word;
import org.junit.Assert;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|