Browse Source

FOP-3132: Link against Java 8 API

tags/2_9
Simon Steiner 1 year ago
parent
commit
3d9416baf3

+ 3
- 1
fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphProcessingState.java View File

@@ -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);

+ 11
- 6
fop-core/src/main/java/org/apache/fop/complexscripts/fonts/GlyphSubstitutionState.java View File

@@ -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);
}

}

+ 3
- 1
fop-core/src/main/java/org/apache/fop/complexscripts/util/GlyphSequence.java View File

@@ -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;
}


+ 20
- 15
fop-core/src/main/java/org/apache/fop/fo/FOText.java View File

@@ -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} */

+ 9
- 4
fop-core/src/main/java/org/apache/fop/fonts/MultiByteFont.java View File

@@ -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;

Loading…
Cancel
Save