Browse Source

Removed unnecessary storing of byte[] nameBytes

git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@677973 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-1_0
Adrian Cumiskey 16 years ago
parent
commit
3a2b3470fc
1 changed files with 39 additions and 55 deletions
  1. 39
    55
      src/java/org/apache/fop/render/afp/fonts/CharacterSet.java

+ 39
- 55
src/java/org/apache/fop/render/afp/fonts/CharacterSet.java View File

@@ -20,7 +20,6 @@
package org.apache.fop.render.afp.fonts;

import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;

import org.apache.commons.logging.Log;
@@ -47,54 +46,34 @@ import org.apache.fop.render.afp.tools.StringUtils;
*/
public class CharacterSet {

/**
* Static logging instance
*/
/** Static logging instance */
protected static final Log log = LogFactory.getLog(CharacterSet.class.getName());

/**
* The code page to which the character set relates
*/
/** The code page to which the character set relates */
protected String codePage;

/**
* The encoding used for the code page
*/
/** The encoding used for the code page */
protected String encoding;

/**
* The character set relating to the font
*/
/** The character set relating to the font */
protected String name;

/**
* The name of the character set as EBCIDIC bytes
*/
private byte[] nameBytes;

/**
* The path to the installed fonts
*/
/** The path to the installed fonts */
protected String path;

/**
* Indicator as to whether to metrics have been loaded
*/
/** Indicator as to whether to metrics have been loaded */
private boolean isMetricsLoaded = false;

/**
* The current orientation (currently only 0 is suppoted by FOP)
*/
/** The current orientation (currently only 0 is suppoted by FOP) */
private String currentOrientation = "0";

/**
* The collection of objects for each orientation
*/
/** The collection of objects for each orientation */
private Map characterSetOrientations = null;

/**
* Constructor for the CharacterSetMetric object, the character set is used
* to load the font information from the actual AFP font.
*
* @param codePage the code page identifier
* @param encoding the encoding of the font
* @param name the character set name
@@ -118,36 +97,21 @@ public class CharacterSet {
this.name = name;
}

try {

this.nameBytes = name.getBytes(AFPConstants.EBCIDIC_ENCODING);

} catch (UnsupportedEncodingException usee) {

this.nameBytes = name.getBytes();
log.warn(
"Constructor:: UnsupportedEncodingException translating the name "
+ name);

}

this.codePage = codePage;
this.encoding = encoding;
this.path = path;
this.characterSetOrientations = new HashMap(4);

this.characterSetOrientations = new java.util.HashMap(4);
}

/**
* Add character set metric information for the different orientations
*
* @param cso the metrics for the orientation
*/
public void addCharacterSetOrientation(CharacterSetOrientation cso) {

characterSetOrientations.put(
String.valueOf(cso.getOrientation()),
cso);

}

/**
@@ -160,6 +124,7 @@ public class CharacterSet {
* Ascender Height is the character�s most positive y-axis value.
* For bounded character boxes, for a given character having an
* ascender, ascender height and baseline offset are equal.
*
* @return the ascender value in millipoints
*/
public int getAscender() {
@@ -171,6 +136,7 @@ public class CharacterSet {
* Cap height is the average height of the uppercase characters in
* a font. This value is specified by the designer of a font and is
* usually the height of the uppercase M.
*
* @return the cap height value in millipoints
*/
public int getCapHeight() {
@@ -182,6 +148,7 @@ public class CharacterSet {
* Descender depth is the distance from the character baseline to
* the bottom of a character box. A negative descender depth signifies
* that all of the graphic character is above the character baseline.
*
* @return the descender value in millipoints
*/
public int getDescender() {
@@ -191,6 +158,7 @@ public class CharacterSet {

/**
* The first character in the character set
*
* @return the first character
*/
public int getFirstChar() {
@@ -199,7 +167,8 @@ public class CharacterSet {
}

/**
* The last character in the character set
* Returns the last character in the character set
*
* @return the last character
*/
public int getLastChar() {
@@ -208,6 +177,8 @@ public class CharacterSet {
}

/**
* Returns the path where the font resources are installed
*
* @return the path where the font resources are installed
*/
public String getPath() {
@@ -216,6 +187,7 @@ public class CharacterSet {

/**
* Get the width (in 1/1000ths of a point size) of all characters
*
* @return the widths of all characters
*/
public int[] getWidths() {
@@ -235,6 +207,7 @@ public class CharacterSet {
/**
* Get the width (in 1/1000ths of a point size) of the character
* identified by the parameter passed.
*
* @param character the character from which the width will be calculated
* @return the width of the character
*/
@@ -248,19 +221,16 @@ public class CharacterSet {
* be processed on a method call requiring the metric information.
*/
private void load() {

if (!isMetricsLoaded) {

AFPFontReader afpFontReader = new AFPFontReader();
afpFontReader.loadCharacterSetMetric(this);
isMetricsLoaded = true;

}

}

/**
* Returns the AFP character set identifier
*
* @return String
*/
public String getName() {
@@ -269,15 +239,26 @@ public class CharacterSet {

/**
* Returns the AFP character set identifier
* @return byte[]
*
* @return the AFP character set identifier
*/
public byte[] getNameBytes() {
byte[] nameBytes = null;
try {
nameBytes = name.getBytes(AFPConstants.EBCIDIC_ENCODING);
} catch (UnsupportedEncodingException usee) {
nameBytes = name.getBytes();
log.warn(
"UnsupportedEncodingException translating the name "
+ name);
}
return nameBytes;
}

/**
* Returns the AFP code page identifier
* @return String
*
* @return the AFP code page identifier
*/
public String getCodePage() {
return codePage;
@@ -285,7 +266,8 @@ public class CharacterSet {

/**
* Returns the AFP code page encoding
* @return String
*
* @return the AFP code page encoding
*/
public String getEncoding() {
return encoding;
@@ -300,6 +282,7 @@ public class CharacterSet {
* the case for landscape prints which use an orientation of 270 degrees,
* in 99.9% of cases the font metrics will be the same as the 0 degrees
* therefore the implementation currely will always use 0 degrees.
*
* @return characterSetOrentation The current orientation metrics.
*/
private CharacterSetOrientation getCharacterSetOrientation() {
@@ -314,6 +297,7 @@ public class CharacterSet {
* Map a Unicode character to a code point in the font.
* The code tables are already converted to Unicode therefore
* we can use the identity mapping.
*
* @param c character to map
* @return the mapped character
*/

Loading…
Cancel
Save