aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Steiner <ssteiner@apache.org>2023-05-02 10:30:07 +0100
committerSimon Steiner <ssteiner@apache.org>2023-05-02 10:30:07 +0100
commit3d9416baf3723ee8a7d7dd4433a781a643fe9809 (patch)
treecadc738bd2fb431ccde5efbbb394962661a088ff
parent1323c2e3511eb23c7dd9b8fb74463af707fa972d (diff)
downloadxmlgraphics-fop-3d9416baf3723ee8a7d7dd4433a781a643fe9809.tar.gz
xmlgraphics-fop-3d9416baf3723ee8a7d7dd4433a781a643fe9809.zip
FOP-3132: Link against Java 8 API
-rw-r--r--fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphProcessingState.java4
-rw-r--r--fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphSubstitutionState.java17
-rw-r--r--fop-core/src/main/java/org/apache/fop/complexscripts/util/GlyphSequence.java4
-rw-r--r--fop-core/src/main/java/org/apache/fop/fo/FOText.java35
-rw-r--r--fop-core/src/main/java/org/apache/fop/fonts/MultiByteFont.java13
5 files changed, 46 insertions, 27 deletions
diff --git a/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphProcessingState.java b/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphProcessingState.java
index f7b3d5e9c..20abd1616 100644
--- a/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphProcessingState.java
+++ b/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphProcessingState.java
@@ -19,6 +19,7 @@
package org.apache.fop.complexscripts.fonts;
+import java.nio.Buffer;
import java.nio.IntBuffer;
import java.util.ArrayList;
import java.util.List;
@@ -935,7 +936,8 @@ public class GlyphProcessingState {
gb.put(igs.getGlyph(i));
al.add(igs.getAssociation(i));
}
- gb.flip();
+ Buffer gbBase = gb;
+ gbBase.flip();
assert igs != null;
if (igs.compareGlyphs(gb) != 0) {
this.igs = new GlyphSequence(igs.getCharacters(), gb, al);
diff --git a/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphSubstitutionState.java b/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphSubstitutionState.java
index 0be47b8c1..788fe2574 100644
--- a/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphSubstitutionState.java
+++ b/fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphSubstitutionState.java
@@ -19,6 +19,7 @@
package org.apache.fop.complexscripts.fonts;
+import java.nio.Buffer;
import java.nio.IntBuffer;
import java.util.ArrayList;
import java.util.List;
@@ -41,7 +42,7 @@ public class GlyphSubstitutionState extends GlyphProcessingState {
/** alternates index */
private int[] alternatesIndex;
/** current output glyph sequence */
- private IntBuffer ogb;
+ private Buffer ogb;
/** current output glyph to character associations */
private List oal;
/** character association predications */
@@ -131,15 +132,19 @@ public class GlyphSubstitutionState extends GlyphProcessingState {
*/
public void putGlyph(int glyph, CharAssociation a, Object predication) {
if (!ogb.hasRemaining()) {
- ogb = growBuffer(ogb);
+ ogb = growBuffer(getIntBuffer());
}
- ogb.put(glyph);
+ getIntBuffer().put(glyph);
if (predications && (predication != null)) {
a.setPredication(feature, predication);
}
oal.add(a);
}
+ private IntBuffer getIntBuffer() {
+ return (IntBuffer) ogb;
+ }
+
/**
* Put (write) array of glyphs into glyph output buffer.
* @param glyphs to write
@@ -165,7 +170,7 @@ public class GlyphSubstitutionState extends GlyphProcessingState {
if (position > 0) {
ogb.limit(position);
ogb.rewind();
- return new GlyphSequence(igs.getCharacters(), ogb, oal);
+ return new GlyphSequence(igs.getCharacters(), getIntBuffer(), oal);
} else {
return igs;
}
@@ -241,12 +246,12 @@ public class GlyphSubstitutionState extends GlyphProcessingState {
}
}
- private static IntBuffer growBuffer(IntBuffer ib) {
+ private static IntBuffer growBuffer(Buffer ib) {
int capacity = ib.capacity();
int capacityNew = capacity * 2;
IntBuffer ibNew = IntBuffer.allocate(capacityNew);
ib.rewind();
- return ibNew.put(ib);
+ return ibNew.put((IntBuffer) ib);
}
}
diff --git a/fop-core/src/main/java/org/apache/fop/complexscripts/util/GlyphSequence.java b/fop-core/src/main/java/org/apache/fop/complexscripts/util/GlyphSequence.java
index e5cdd07f5..797fd4784 100644
--- a/fop-core/src/main/java/org/apache/fop/complexscripts/util/GlyphSequence.java
+++ b/fop-core/src/main/java/org/apache/fop/complexscripts/util/GlyphSequence.java
@@ -19,6 +19,7 @@
package org.apache.fop.complexscripts.util;
+import java.nio.Buffer;
import java.nio.IntBuffer;
import java.util.ArrayList;
import java.util.Collections;
@@ -464,7 +465,8 @@ public class GlyphSequence implements Cloneable {
if (lga != null) {
gb.put(lga);
}
- gb.flip();
+ Buffer gbBase = gb;
+ gbBase.flip();
return gb;
}
diff --git a/fop-core/src/main/java/org/apache/fop/fo/FOText.java b/fop-core/src/main/java/org/apache/fop/fo/FOText.java
index 207c3184c..e80063d1a 100644
--- a/fop-core/src/main/java/org/apache/fop/fo/FOText.java
+++ b/fop-core/src/main/java/org/apache/fop/fo/FOText.java
@@ -20,6 +20,7 @@
package org.apache.fop.fo;
import java.awt.Color;
+import java.nio.Buffer;
import java.nio.CharBuffer;
import java.text.CharacterIterator;
import java.text.StringCharacterIterator;
@@ -49,7 +50,7 @@ import org.apache.fop.util.CharUtilities;
public class FOText extends FONode implements CharSequence, TextFragment {
/** the <code>CharBuffer</code> containing the text */
- private CharBuffer charBuffer;
+ private Buffer charBuffer;
// cached iterator
private CharacterIterator charIterator;
@@ -135,18 +136,22 @@ public class FOText extends FONode implements CharSequence, TextFragment {
}
CharBuffer newBuffer = CharBuffer.allocate(newCapacity);
charBuffer.rewind();
- newBuffer.put(charBuffer);
+ newBuffer.put(getCharBuffer());
charBuffer = newBuffer;
}
}
// extend limit to capacity
charBuffer.limit(charBuffer.capacity());
// append characters
- charBuffer.put(data, start, length);
+ getCharBuffer().put(data, start, length);
// shrink limit to position
charBuffer.limit(charBuffer.position());
}
+ private CharBuffer getCharBuffer() {
+ return (CharBuffer) charBuffer;
+ }
+
/**
* Return the array of characters for this instance.
*
@@ -157,7 +162,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
return null;
}
this.charBuffer.rewind();
- return this.charBuffer.asReadOnlyBuffer().subSequence(0, this.charBuffer.limit());
+ return getCharBuffer().asReadOnlyBuffer().subSequence(0, this.charBuffer.limit());
}
/** {@inheritDoc} */
@@ -170,7 +175,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
if (charBuffer != null) {
ft.charBuffer = CharBuffer.allocate(charBuffer.limit());
charBuffer.rewind();
- ft.charBuffer.put(charBuffer);
+ ft.getCharBuffer().put(getCharBuffer());
ft.charBuffer.rewind();
}
}
@@ -232,7 +237,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
char ch;
charBuffer.rewind();
while (charBuffer.hasRemaining()) {
- ch = charBuffer.get();
+ ch = getCharBuffer().get();
if (!((ch == CharUtilities.SPACE)
|| (ch == CharUtilities.LINEFEED_CHAR)
|| (ch == CharUtilities.CARRIAGE_RETURN)
@@ -282,12 +287,12 @@ public class FOText extends FONode implements CharSequence, TextFragment {
}
charBuffer.rewind();
- CharBuffer tmp = charBuffer.slice();
+ CharBuffer tmp = getCharBuffer().slice();
char c;
int lim = charBuffer.limit();
int pos = -1;
while (++pos < lim) {
- c = charBuffer.get();
+ c = getCharBuffer().get();
switch (textTransform) {
case Constants.EN_UPPERCASE:
tmp.put(Character.toUpperCase(c));
@@ -537,7 +542,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
if (this.currentPosition < charBuffer.limit()) {
this.canRemove = true;
this.canReplace = true;
- return charBuffer.get(currentPosition++);
+ return getCharBuffer().get(currentPosition++);
} else {
throw new NoSuchElementException();
}
@@ -550,13 +555,13 @@ public class FOText extends FONode implements CharSequence, TextFragment {
if (this.canRemove) {
charBuffer.position(currentPosition);
// Slice the buffer at the current position
- CharBuffer tmp = charBuffer.slice();
+ CharBuffer tmp = getCharBuffer().slice();
// Reset position to before current character
charBuffer.position(--currentPosition);
if (tmp.hasRemaining()) {
// Transfer any remaining characters
charBuffer.mark();
- charBuffer.put(tmp);
+ getCharBuffer().put(tmp);
charBuffer.reset();
}
// Decrease limit
@@ -573,7 +578,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
public void replaceChar(char c) {
if (this.canReplace) {
- charBuffer.put(currentPosition - 1, c);
+ getCharBuffer().put(currentPosition - 1, c);
} else {
throw new IllegalStateException();
}
@@ -698,7 +703,7 @@ public class FOText extends FONode implements CharSequence, TextFragment {
if (charBuffer == null) {
return "";
} else {
- CharBuffer cb = charBuffer.duplicate();
+ Buffer cb = getCharBuffer().duplicate();
cb.rewind();
return cb.toString();
}
@@ -725,12 +730,12 @@ public class FOText extends FONode implements CharSequence, TextFragment {
/** {@inheritDoc} */
public char charAt(int position) {
- return charBuffer.get(position);
+ return getCharBuffer().get(position);
}
/** {@inheritDoc} */
public CharSequence subSequence(int start, int end) {
- return charBuffer.subSequence(start, end);
+ return getCharBuffer().subSequence(start, end);
}
/** {@inheritDoc} */
diff --git a/fop-core/src/main/java/org/apache/fop/fonts/MultiByteFont.java b/fop-core/src/main/java/org/apache/fop/fonts/MultiByteFont.java
index 929b4bf6f..cbaace8a2 100644
--- a/fop-core/src/main/java/org/apache/fop/fonts/MultiByteFont.java
+++ b/fop-core/src/main/java/org/apache/fop/fonts/MultiByteFont.java
@@ -21,6 +21,7 @@ package org.apache.fop.fonts;
import java.awt.Rectangle;
import java.io.InputStream;
+import java.nio.Buffer;
import java.nio.CharBuffer;
import java.nio.IntBuffer;
import java.util.ArrayList;
@@ -682,8 +683,10 @@ public class MultiByteFont extends CIDFont implements Substitutable, Positionabl
cb.put(cc);
gb.put(gi);
}
- cb.flip();
- gb.flip();
+ Buffer cbBase = cb;
+ cbBase.flip();
+ Buffer gbBase = gb;
+ gbBase.flip();
if ((associations != null) && (associations.size() == cs.length())) {
associations = new java.util.ArrayList(associations);
} else {
@@ -732,7 +735,8 @@ public class MultiByteFont extends CIDFont implements Substitutable, Positionabl
cb.put(c);
}
- cb.flip();
+ Buffer cbBase = cb;
+ cbBase.flip();
return cb;
}
@@ -799,7 +803,8 @@ public class MultiByteFont extends CIDFont implements Substitutable, Positionabl
nal.add(a);
}
}
- ngb.flip();
+ Buffer ngbBase = ngb;
+ ngbBase.flip();
return new GlyphSequence(gs.getCharacters(), ngb, nal, gs.getPredications());
} else {
return gs;