aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/org/apache
diff options
context:
space:
mode:
authorAdrian Cumiskey <acumiskey@apache.org>2008-08-26 09:10:19 +0000
committerAdrian Cumiskey <acumiskey@apache.org>2008-08-26 09:10:19 +0000
commitc0227d2e2ef00b0193062df4f6d6e56ba211c51c (patch)
treebcc7d3ff1b6c19bc4e9a19c8849006e261aff553 /src/java/org/apache
parent0f20fb70bc3c4e6f7f3c58f3a9afc1e884769cea (diff)
downloadxmlgraphics-fop-c0227d2e2ef00b0193062df4f6d6e56ba211c51c.tar.gz
xmlgraphics-fop-c0227d2e2ef00b0193062df4f6d6e56ba211c51c.zip
Merged revisions 687576,687657,687786,688078,688087,688139,688508,688633,688652-688653,688660,688664,688666,688674,688698,688994,689000 via svnmerge from
https://svn.eu.apache.org/repos/asf/xmlgraphics/fop/trunk ........ r687576 | maxberger | 2008-08-21 07:25:40 +0100 (Thu, 21 Aug 2008) | 1 line Included patched retroweaver which does not modify Boolean.valueOf ........ r687657 | jeremias | 2008-08-21 09:51:50 +0100 (Thu, 21 Aug 2008) | 1 line Added an FAQ entry about the element mismatch error message. ........ r687786 | jeremias | 2008-08-21 16:49:13 +0100 (Thu, 21 Aug 2008) | 1 line Added some performance statistics to MemoryEater. ........ r688078 | jeremias | 2008-08-22 14:02:37 +0100 (Fri, 22 Aug 2008) | 1 line Final statistics output after the test with average speed indication. ........ r688087 | jeremias | 2008-08-22 15:16:58 +0100 (Fri, 22 Aug 2008) | 2 lines Merge from branch https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/fop-0_95: Fixed text stroking in SVG when the stroke-width is zero. ........ r688139 | maxberger | 2008-08-22 19:08:36 +0100 (Fri, 22 Aug 2008) | 1 line minor spelling mistakes ........ r688508 | maxberger | 2008-08-24 14:12:02 +0100 (Sun, 24 Aug 2008) | 2 lines Moved DataURIResolver from FOP to commons; use new URIResolver registry ........ r688633 | jeremias | 2008-08-25 07:42:44 +0100 (Mon, 25 Aug 2008) | 2 lines Fixed memory leak in property cache (not cleaning stale PropertyCache$CacheEntry instances). Special thanks to Andreas Delmelle for his help! ........ r688652 | maxberger | 2008-08-25 09:19:13 +0100 (Mon, 25 Aug 2008) | 1 line Re-added moved class as deprecated ........ r688653 | jeremias | 2008-08-25 09:23:31 +0100 (Mon, 25 Aug 2008) | 1 line Added a page on metadata (partly ported from the FOP Wiki). ........ r688660 | jeremias | 2008-08-25 09:41:29 +0100 (Mon, 25 Aug 2008) | 2 lines Fixed example. Thanks for noticing, Pascal Sancho! ........ r688664 | jeremias | 2008-08-25 09:59:27 +0100 (Mon, 25 Aug 2008) | 1 line Minor documentation improvements, most notably a comment about keep-together="always". ........ r688666 | maxberger | 2008-08-25 10:00:27 +0100 (Mon, 25 Aug 2008) | 1 line CommonURIResolver is no longer a singleton ........ r688674 | jeremias | 2008-08-25 10:15:22 +0100 (Mon, 25 Aug 2008) | 1 line Hmm, I missed the redirects for the 0.95 release. ........ r688698 | jeremias | 2008-08-25 12:24:15 +0100 (Mon, 25 Aug 2008) | 2 lines Merge from 0.95 branch: Fixed jar-sources target. ........ r688994 | acumiskey | 2008-08-26 09:34:45 +0100 (Tue, 26 Aug 2008) | 1 line Deprecate UnitConv now that it resides only in xmlgraphics commons. ........ r689000 | acumiskey | 2008-08-26 09:59:31 +0100 (Tue, 26 Aug 2008) | 1 line Forgot to add deprecated public statics. ........ git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/branches/Temp_AFPGOCAResources@689005 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/java/org/apache')
-rw-r--r--src/java/org/apache/fop/apps/FOURIResolver.java12
-rw-r--r--src/java/org/apache/fop/fo/properties/PropertyCache.java105
-rw-r--r--src/java/org/apache/fop/svg/PDFGraphics2D.java6
-rw-r--r--src/java/org/apache/fop/svg/PDFTextPainter.java4
-rw-r--r--src/java/org/apache/fop/util/DataURIResolver.java51
-rw-r--r--src/java/org/apache/fop/util/DataURLUtil.java46
-rw-r--r--src/java/org/apache/fop/util/UnitConv.java170
-rw-r--r--src/java/org/apache/fop/util/WriterOutputStream.java54
8 files changed, 292 insertions, 156 deletions
diff --git a/src/java/org/apache/fop/apps/FOURIResolver.java b/src/java/org/apache/fop/apps/FOURIResolver.java
index 1f4425a95..58ae6e8e6 100644
--- a/src/java/org/apache/fop/apps/FOURIResolver.java
+++ b/src/java/org/apache/fop/apps/FOURIResolver.java
@@ -34,14 +34,12 @@ import javax.xml.transform.stream.StreamSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.apache.xmlgraphics.util.io.Base64EncodeStream;
-
-import org.apache.fop.util.DataURIResolver;
+import org.apache.xmlgraphics.util.uri.CommonURIResolver;
/**
* Provides FOP specific URI resolution. This is the default URIResolver
- * {@link FOUserAgent} will use unless overidden.
+ * {@link FOUserAgent} will use unless overridden.
*
* @see javax.xml.transform.URIResolver
*/
@@ -50,8 +48,8 @@ public class FOURIResolver implements javax.xml.transform.URIResolver {
// log
private Log log = LogFactory.getLog("FOP");
- /** URIResolver for RFC 2397 data URLs */
- private URIResolver dataURIResolver = new DataURIResolver();
+ /** Common URIResolver */
+ private CommonURIResolver commonURIResolver = new CommonURIResolver();
/** A user settable URI Resolver */
private URIResolver uriResolver = null;
@@ -152,7 +150,7 @@ public class FOURIResolver implements javax.xml.transform.URIResolver {
// data URLs can be quite long so evaluate early and don't try to build a File
// (can lead to problems)
- source = dataURIResolver.resolve(href, base);
+ source = commonURIResolver.resolve(href, base);
// Custom uri resolution
if (source == null && uriResolver != null) {
diff --git a/src/java/org/apache/fop/fo/properties/PropertyCache.java b/src/java/org/apache/fop/fo/properties/PropertyCache.java
index f834a78ae..d472b574c 100644
--- a/src/java/org/apache/fop/fo/properties/PropertyCache.java
+++ b/src/java/org/apache/fop/fo/properties/PropertyCache.java
@@ -33,9 +33,12 @@ import java.lang.ref.WeakReference;
*/
public final class PropertyCache {
+ private static final int SEGMENT_COUNT = 32; //0x20
+ private static final int INITIAL_BUCKET_COUNT = SEGMENT_COUNT;
+
/** bitmask to apply to the hash to get to the
* corresponding cache segment */
- private static final int SEGMENT_MASK = 0x1F;
+ private static final int SEGMENT_MASK = SEGMENT_COUNT - 1; //0x1F
/**
* Indicates whether the cache should be used at all
* Can be controlled by the system property:
@@ -44,13 +47,13 @@ public final class PropertyCache {
private final boolean useCache;
/** the segments array (length = 32) */
- private CacheSegment[] segments = new CacheSegment[SEGMENT_MASK + 1];
+ private CacheSegment[] segments = new CacheSegment[SEGMENT_COUNT];
/** the table of hash-buckets */
- private CacheEntry[] table = new CacheEntry[8];
+ private CacheEntry[] table = new CacheEntry[INITIAL_BUCKET_COUNT];
private Class runtimeType;
- final boolean[] votesForRehash = new boolean[SEGMENT_MASK + 1];
+ private boolean[] votesForRehash = new boolean[SEGMENT_COUNT];
/* same hash function as used by java.util.HashMap */
private static int hash(Object x) {
@@ -72,53 +75,61 @@ public final class PropertyCache {
}
/* Class modeling a cached entry */
- private final class CacheEntry extends WeakReference {
- volatile CacheEntry nextEntry;
- final int hash;
+ private static class CacheEntry extends WeakReference {
+ private volatile CacheEntry nextEntry;
+ private final int hash;
/* main constructor */
public CacheEntry(Object p, CacheEntry nextEntry, ReferenceQueue refQueue) {
super(p, refQueue);
this.nextEntry = nextEntry;
- this.hash = p.hashCode();
+ this.hash = hash(p);
+ }
+
+ /* main constructor */
+ public CacheEntry(Object p, CacheEntry nextEntry) {
+ super(p);
+ this.nextEntry = nextEntry;
+ this.hash = hash(p);
}
}
/* Wrapper objects to synchronize on */
- private final class CacheSegment {
+ private static class CacheSegment {
private int count = 0;
- private volatile ReferenceQueue staleEntries = new ReferenceQueue();
}
private void cleanSegment(int segmentIndex) {
- CacheEntry entry;
CacheSegment segment = segments[segmentIndex];
- int bucketIndex;
+
int oldCount = segment.count;
- while ((entry = (CacheEntry) segment.staleEntries.poll()) != null) {
- bucketIndex = hash(entry.hash) & (table.length - 1);
- /* remove obsolete entry */
- /* 1. move to the corresponding entry */
+ /* clean all buckets in this segment */
+ for (int bucketIndex = segmentIndex;
+ bucketIndex < table.length;
+ bucketIndex += SEGMENT_COUNT) {
CacheEntry prev = null;
- CacheEntry e = table[bucketIndex];
- while (e != null
- && e.nextEntry != null
- && e.hash != entry.hash) {
- prev = e;
- e = e.nextEntry;
+ CacheEntry entry = table[bucketIndex];
+ if (entry == null) {
+ continue;
}
- if (e != null) {
- /* 2. remove reference from the chain */
- if (prev == null) {
- table[bucketIndex] = e.nextEntry;
+ do {
+ if (entry.get() == null) {
+ if (prev == null) {
+ table[bucketIndex] = entry.nextEntry;
+ } else {
+ prev.nextEntry = entry.nextEntry;
+ }
+ segment.count--;
+ assert segment.count >= 0;
} else {
- prev.nextEntry = e.nextEntry;
+ prev = entry;
}
- segment.count--;
- }
+ entry = entry.nextEntry;
+ } while (entry != null);
}
+
synchronized (votesForRehash) {
if (oldCount > segment.count) {
votesForRehash[segmentIndex] = false;
@@ -129,7 +140,7 @@ public final class PropertyCache {
/* first time for this segment */
votesForRehash[segmentIndex] = true;
int voteCount = 0;
- for (int i = SEGMENT_MASK + 1; --i >= 0; ) {
+ for (int i = SEGMENT_MASK + 1; --i >= 0;) {
if (votesForRehash[i]) {
voteCount++;
}
@@ -156,14 +167,15 @@ public final class PropertyCache {
private void put(Object o) {
int hash = hash(o);
- CacheSegment segment = segments[hash & SEGMENT_MASK];
+ int segmentIndex = hash & SEGMENT_MASK;
+ CacheSegment segment = segments[segmentIndex];
synchronized (segment) {
int index = hash & (table.length - 1);
CacheEntry entry = table[index];
if (entry == null) {
- entry = new CacheEntry(o, null, segment.staleEntries);
+ entry = new CacheEntry(o, null);
table[index] = entry;
segment.count++;
} else {
@@ -171,14 +183,14 @@ public final class PropertyCache {
if (eq(p, o)) {
return;
} else {
- CacheEntry newEntry = new CacheEntry(o, entry, segment.staleEntries);
+ CacheEntry newEntry = new CacheEntry(o, entry);
table[index] = newEntry;
segment.count++;
}
}
if (segment.count > (2 * table.length)) {
- cleanSegment(hash & SEGMENT_MASK);
+ cleanSegment(segmentIndex);
}
}
}
@@ -195,7 +207,7 @@ public final class PropertyCache {
/* try non-synched first */
for (CacheEntry e = entry; e != null; e = e.nextEntry) {
- if (e.hash == o.hashCode()
+ if (e.hash == hash
&& (q = e.get()) != null
&& eq(q, o)) {
return q;
@@ -209,7 +221,7 @@ public final class PropertyCache {
synchronized (segment) {
entry = table[index];
for (CacheEntry e = entry; e != null; e = e.nextEntry) {
- if (e.hash == o.hashCode()
+ if (e.hash == hash
&& (q = e.get()) != null
&& eq(q, o)) {
return q;
@@ -235,7 +247,7 @@ public final class PropertyCache {
/* double the amount of buckets */
int newLength = table.length << 1;
if (newLength > 0) { //no overflow?
- /* reset segmentcounts */
+ /* reset segment counts */
for (int i = segments.length; --i >= 0;) {
segments[i].count = 0;
}
@@ -250,8 +262,7 @@ public final class PropertyCache {
if ((o = c.get()) != null) {
hash = c.hash;
idx = hash & newLength;
- newTable[idx] = new CacheEntry(o, newTable[idx],
- segments[hash & SEGMENT_MASK].staleEntries);
+ newTable[idx] = new CacheEntry(o, newTable[idx]);
segments[hash & SEGMENT_MASK].count++;
}
}
@@ -313,7 +324,7 @@ public final class PropertyCache {
* @param prop the Property instance to check for
* @return the cached instance
*/
- public final Property fetch(Property prop) {
+ public Property fetch(Property prop) {
return (Property) fetch((Object) prop);
}
@@ -326,7 +337,7 @@ public final class PropertyCache {
* @param chy the CommonHyphenation instance to check for
* @return the cached instance
*/
- public final CommonHyphenation fetch(CommonHyphenation chy) {
+ public CommonHyphenation fetch(CommonHyphenation chy) {
return (CommonHyphenation) fetch((Object) chy);
}
@@ -339,7 +350,7 @@ public final class PropertyCache {
* @param cf the CommonFont instance to check for
* @return the cached instance
*/
- public final CommonFont fetch(CommonFont cf) {
+ public CommonFont fetch(CommonFont cf) {
return (CommonFont) fetch((Object) cf);
}
@@ -352,21 +363,21 @@ public final class PropertyCache {
* @param cbpb the CommonBorderPaddingBackground instance to check for
* @return the cached instance
*/
- public final CommonBorderPaddingBackground fetch(CommonBorderPaddingBackground cbpb) {
+ public CommonBorderPaddingBackground fetch(CommonBorderPaddingBackground cbpb) {
return (CommonBorderPaddingBackground) fetch((Object) cbpb);
}
/**
- * Checks if the given {@link CommonBorderPaddingBackground.BorderInfo} is present in the cache -
- * if so, returns a reference to the cached instance.
+ * Checks if the given {@link CommonBorderPaddingBackground.BorderInfo} is present
+ * in the cache - if so, returns a reference to the cached instance.
* Otherwise the given object is added to the cache and returned.
*
* @param bi the BorderInfo instance to check for
* @return the cached instance
*/
- public final CommonBorderPaddingBackground.BorderInfo fetch(CommonBorderPaddingBackground.BorderInfo bi) {
-
+ public CommonBorderPaddingBackground.BorderInfo fetch(
+ CommonBorderPaddingBackground.BorderInfo bi) {
return (CommonBorderPaddingBackground.BorderInfo) fetch((Object) bi);
}
diff --git a/src/java/org/apache/fop/svg/PDFGraphics2D.java b/src/java/org/apache/fop/svg/PDFGraphics2D.java
index ca2245a12..cd0a4133b 100644
--- a/src/java/org/apache/fop/svg/PDFGraphics2D.java
+++ b/src/java/org/apache/fop/svg/PDFGraphics2D.java
@@ -285,7 +285,7 @@ public class PDFGraphics2D extends AbstractGraphics2D {
/**
* Get the string containing all the commands written into this
- * Grpahics.
+ * Graphics.
* @return the string containing the PDF markup
*/
public String getString() {
@@ -294,7 +294,7 @@ public class PDFGraphics2D extends AbstractGraphics2D {
/**
* Get the string buffer from the currentStream, containing all
- * the commands written into this Grpahics so far.
+ * the commands written into this Graphics so far.
* @return the StringBuffer containing the PDF markup
*/
public StringBuffer getBuffer() {
@@ -872,7 +872,7 @@ public class PDFGraphics2D extends AbstractGraphics2D {
if (paint instanceof RadialGradientPaint) {
RadialGradientPaint rgp = (RadialGradientPaint)paint;
- // There is essentially no way to support repeate
+ // There is essentially no way to support repeats
// in PDF for radial gradients (the one option would
// be to 'grow' the outer circle until it fully covered
// the bounds and then grow the stops accordingly, the
diff --git a/src/java/org/apache/fop/svg/PDFTextPainter.java b/src/java/org/apache/fop/svg/PDFTextPainter.java
index d8123c4fb..06fea54cc 100644
--- a/src/java/org/apache/fop/svg/PDFTextPainter.java
+++ b/src/java/org/apache/fop/svg/PDFTextPainter.java
@@ -147,7 +147,9 @@ public class PDFTextPainter extends StrokingTextPainter {
textUtil.beginTextObject();
textUtil.setFonts(fonts);
- textUtil.setTextRenderingMode(tpi.fillPaint != null, tpi.strokePaint != null, false);
+ boolean stroke = (tpi.strokePaint != null)
+ && (tpi.strokeStroke != null);
+ textUtil.setTextRenderingMode(tpi.fillPaint != null, stroke, false);
AffineTransform localTransform = new AffineTransform();
Point2D prevPos = null;
diff --git a/src/java/org/apache/fop/util/DataURIResolver.java b/src/java/org/apache/fop/util/DataURIResolver.java
index 89db6dc9d..99a8318c8 100644
--- a/src/java/org/apache/fop/util/DataURIResolver.java
+++ b/src/java/org/apache/fop/util/DataURIResolver.java
@@ -19,60 +19,25 @@
package org.apache.fop.util;
-import java.io.ByteArrayInputStream;
-
import javax.xml.transform.Source;
import javax.xml.transform.TransformerException;
import javax.xml.transform.URIResolver;
-import javax.xml.transform.stream.StreamSource;
-
-// base64 support for "data" urls
-import org.apache.xmlgraphics.util.io.Base64DecodeStream;
/**
- * Resolves data URLs (described in RFC 2397) returning its data as a StreamSource.
- *
- * @see javax.xml.transform.URIResolver
- * @see <a href="http://www.ietf.org/rfc/rfc2397">RFC 2397</a>
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.uri.DataURIResolver
*/
public class DataURIResolver implements URIResolver {
- /**
- * {@inheritDoc}
- */
- public Source resolve(String href, String base) throws TransformerException {
- if (href.startsWith("data:")) {
- return parseDataURI(href);
- } else {
- return null;
- }
- }
+ private final URIResolver newResolver = new org.apache.xmlgraphics.util.uri.DataURIResolver();
/**
- * Parses inline data URIs as generated by MS Word's XML export and FO
- * stylesheet.
- *
- * @see <a href="http://www.ietf.org/rfc/rfc2397">RFC 2397</a>
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.uri.DataURIResolver#resolve(String,
+ * String)
*/
- private Source parseDataURI(String href) {
- int commaPos = href.indexOf(',');
- // header is of the form data:[<mediatype>][;base64]
- String header = href.substring(0, commaPos);
- String data = href.substring(commaPos + 1);
- if (header.endsWith(";base64")) {
- byte[] bytes = data.getBytes();
- ByteArrayInputStream encodedStream = new ByteArrayInputStream(bytes);
- Base64DecodeStream decodedStream = new Base64DecodeStream(
- encodedStream);
- return new StreamSource(decodedStream);
- } else {
- // Note that this is not quite the full story here. But since we are
- // only interested
- // in base64-encoded binary data, the next line will probably never
- // be called.
- //TODO Handle un-escaping of special URL chars like %20
- return new StreamSource(new java.io.StringReader(data));
- }
+ public Source resolve(String href, String base) throws TransformerException {
+ return newResolver.resolve(href, base);
}
}
diff --git a/src/java/org/apache/fop/util/DataURLUtil.java b/src/java/org/apache/fop/util/DataURLUtil.java
index d8f7f17bf..8568df274 100644
--- a/src/java/org/apache/fop/util/DataURLUtil.java
+++ b/src/java/org/apache/fop/util/DataURLUtil.java
@@ -21,47 +21,33 @@ package org.apache.fop.util;
import java.io.IOException;
import java.io.InputStream;
-import java.io.StringWriter;
import java.io.Writer;
-import org.apache.commons.io.IOUtils;
-import org.apache.xmlgraphics.util.io.Base64EncodeStream;
-
/**
- * Utility classes for generating RFC 2397 data URLs.
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.uri.DataURLUtil
*/
public class DataURLUtil {
/**
- * Creates a new data URL and returns it as a String.
- * @param in the InputStream to read the data from
- * @param mediatype the MIME type of the content, or null
- * @return the newly created data URL
- * @throws IOException if an I/O error occurs
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.uri.DataURLUtil#createDataURL(InputStream,
+ * String)
*/
- public static String createDataURL(InputStream in, String mediatype) throws IOException {
- StringWriter writer = new StringWriter();
- writeDataURL(in, mediatype, writer);
- return writer.toString();
+ public static String createDataURL(InputStream in, String mediatype)
+ throws IOException {
+ return org.apache.xmlgraphics.util.uri.DataURLUtil.createDataURL(in,
+ mediatype);
}
/**
- * Generates a data URL and writes it to a Writer.
- * @param in the InputStream to read the data from
- * @param mediatype the MIME type of the content, or null
- * @param writer the Writer to write to
- * @throws IOException if an I/O error occurs
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.uri.DataURLUtil#writeDataURL(InputStream,
+ * String, Writer)
*/
- public static void writeDataURL(InputStream in, String mediatype, Writer writer)
- throws IOException {
- writer.write("data:");
- if (mediatype != null) {
- writer.write(mediatype);
- }
- writer.write(";base64,");
- Base64EncodeStream out = new Base64EncodeStream(
- new WriterOutputStream(writer, "US-ASCII"));
- IOUtils.copy(in, out);
- out.flush();
+ public static void writeDataURL(InputStream in, String mediatype,
+ Writer writer) throws IOException {
+ org.apache.xmlgraphics.util.uri.DataURLUtil.writeDataURL(in, mediatype,
+ writer);
}
}
diff --git a/src/java/org/apache/fop/util/UnitConv.java b/src/java/org/apache/fop/util/UnitConv.java
new file mode 100644
index 000000000..cf599712f
--- /dev/null
+++ b/src/java/org/apache/fop/util/UnitConv.java
@@ -0,0 +1,170 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id: $ */
+
+package org.apache.fop.util;
+
+import java.awt.geom.AffineTransform;
+
+/**
+ * Utility class for unit conversions.
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv instead.
+ */
+public final class UnitConv {
+
+ /**
+ * conversion factory from millimeters to inches.
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.IN2MM instead.
+ */
+ public static final float IN2MM = org.apache.xmlgraphics.util.UnitConv.IN2MM;
+
+ /**
+ * conversion factory from centimeters to inches.
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.IN2CM instead.
+ */
+ public static final float IN2CM = org.apache.xmlgraphics.util.UnitConv.IN2CM;
+
+ /**
+ * conversion factory from inches to points.
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.IN2PT instead.
+ */
+ public static final int IN2PT = org.apache.xmlgraphics.util.UnitConv.IN2PT;
+
+ /**
+ * Converts millimeters (mm) to points (pt)
+ * @param mm the value in mm
+ * @return the value in pt
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.mm2pt(mm) instead.
+ */
+ public static double mm2pt(double mm) {
+ return org.apache.xmlgraphics.util.UnitConv.mm2pt(mm);
+ }
+
+ /**
+ * Converts millimeters (mm) to millipoints (mpt)
+ * @param mm the value in mm
+ * @return the value in mpt
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.mm2mpt(mm) instead.
+ */
+ public static double mm2mpt(double mm) {
+ return org.apache.xmlgraphics.util.UnitConv.mm2mpt(mm);
+ }
+
+ /**
+ * Converts points (pt) to millimeters (mm)
+ * @param pt the value in pt
+ * @return the value in mm
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.pt2mm(pt) instead.
+ */
+ public static double pt2mm(double pt) {
+ return org.apache.xmlgraphics.util.UnitConv.pt2mm(pt);
+ }
+
+ /**
+ * Converts millimeters (mm) to inches (in)
+ * @param mm the value in mm
+ * @return the value in inches
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.pt2mm(pt) instead.
+ */
+ public static double mm2in(double mm) {
+ return org.apache.xmlgraphics.util.UnitConv.mm2in(mm);
+ }
+
+ /**
+ * Converts inches (in) to millimeters (mm)
+ * @param in the value in inches
+ * @return the value in mm
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.in2mm(in) instead.
+ */
+ public static double in2mm(double in) {
+ return org.apache.xmlgraphics.util.UnitConv.in2mm(in);
+ }
+
+ /**
+ * Converts inches (in) to millipoints (mpt)
+ * @param in the value in inches
+ * @return the value in mpt
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.in2mpt(in) instead.
+ */
+ public static double in2mpt(double in) {
+ return org.apache.xmlgraphics.util.UnitConv.in2mpt(in);
+ }
+
+ /**
+ * Converts inches (in) to points (pt)
+ * @param in the value in inches
+ * @return the value in pt
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.in2pt(in) instead.
+ */
+ public static double in2pt(double in) {
+ return org.apache.xmlgraphics.util.UnitConv.in2pt(in);
+ }
+
+ /**
+ * Converts millipoints (mpt) to inches (in)
+ * @param mpt the value in mpt
+ * @return the value in inches
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.mpt2in(mpt) instead.
+ */
+ public static double mpt2in(double mpt) {
+ return org.apache.xmlgraphics.util.UnitConv.mpt2in(mpt);
+ }
+
+ /**
+ * Converts millimeters (mm) to pixels (px)
+ * @param mm the value in mm
+ * @param resolution the resolution in dpi (dots per inch)
+ * @return the value in pixels
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.mm2px(mm, resolution) instead.
+ */
+ public static double mm2px(double mm, int resolution) {
+ return org.apache.xmlgraphics.util.UnitConv.mm2px(mm, resolution);
+ }
+
+ /**
+ * Converts millipoints (mpt) to pixels (px)
+ * @param mpt the value in mpt
+ * @param resolution the resolution in dpi (dots per inch)
+ * @return the value in pixels
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.mpt2px(mpt, resolution) instead.
+ */
+ public static double mpt2px(double mpt, int resolution) {
+ return org.apache.xmlgraphics.util.UnitConv.mpt2px(mpt, resolution);
+ }
+
+ /**
+ * Converts a millipoint-based transformation matrix to points.
+ * @param at a millipoint-based transformation matrix
+ * @return a point-based transformation matrix
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.mptToPt(at) instead.
+ */
+ public static AffineTransform mptToPt(AffineTransform at) {
+ return org.apache.xmlgraphics.util.UnitConv.mptToPt(at);
+ }
+
+ /**
+ * Converts a point-based transformation matrix to millipoints.
+ * @param at a point-based transformation matrix
+ * @return a millipoint-based transformation matrix
+ * @deprecated use org.apache.xmlgraphics.util.UnitConv.ptToMpt(at) instead.
+ */
+ public static AffineTransform ptToMpt(AffineTransform at) {
+ return org.apache.xmlgraphics.util.UnitConv.ptToMpt(at);
+ }
+
+}
diff --git a/src/java/org/apache/fop/util/WriterOutputStream.java b/src/java/org/apache/fop/util/WriterOutputStream.java
index fb6875498..e08109ab0 100644
--- a/src/java/org/apache/fop/util/WriterOutputStream.java
+++ b/src/java/org/apache/fop/util/WriterOutputStream.java
@@ -24,68 +24,72 @@ import java.io.OutputStream;
import java.io.Writer;
/**
- * An OutputStream wrapper for a Writer.
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.WriterOutputStream
*/
public class WriterOutputStream extends OutputStream {
- private Writer writer;
- private String encoding;
+ private final org.apache.xmlgraphics.util.WriterOutputStream writerOutputStream;
/**
- * Creates a new WriterOutputStream.
- * @param writer the Writer to write to
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.WriterOutputStream#WriterOutputStream(Writer)
+ * String)
*/
public WriterOutputStream(Writer writer) {
- this(writer, null);
+ writerOutputStream = new org.apache.xmlgraphics.util.WriterOutputStream(
+ writer);
}
/**
- * Creates a new WriterOutputStream.
- * @param writer the Writer to write to
- * @param encoding the encoding to use, or null if the default encoding should be used
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.WriterOutputStream#WriterOutputStream(Writer,
+ * String) String)
*/
public WriterOutputStream(Writer writer, String encoding) {
- this.writer = writer;
- this.encoding = encoding;
+ writerOutputStream = new org.apache.xmlgraphics.util.WriterOutputStream(
+ writer, encoding);
}
/**
- * {@inheritDoc}
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.WriterOutputStream#close()
*/
public void close() throws IOException {
- writer.close();
+ writerOutputStream.close();
}
/**
- * {@inheritDoc}
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.WriterOutputStream#flush()
*/
public void flush() throws IOException {
- writer.flush();
+ writerOutputStream.flush();
}
/**
- * {@inheritDoc}
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.WriterOutputStream#write(byte[], int,
+ * int)
*/
public void write(byte[] buf, int offset, int length) throws IOException {
- if (encoding != null) {
- writer.write(new String(buf, offset, length, encoding));
- } else {
- writer.write(new String(buf, offset, length));
- }
+ writerOutputStream.write(buf, offset, length);
}
/**
- * {@inheritDoc}
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.WriterOutputStream#write(byte[])
*/
public void write(byte[] buf) throws IOException {
- write(buf, 0, buf.length);
+ writerOutputStream.write(buf);
}
/**
- * {@inheritDoc}
+ * @deprecated
+ * @see org.apache.xmlgraphics.util.WriterOutputStream#write(int)
*/
public void write(int b) throws IOException {
- write(new byte[] {(byte)b});
+ writerOutputStream.write(b);
}
}