From d3ee29261c81f9745b5b7d2f90c805a2f2010af8 Mon Sep 17 00:00:00 2001 From: Josh Micich Date: Thu, 22 May 2008 03:00:29 +0000 Subject: [PATCH] Fixed compiler errors. Other improvements for type safety and immutability. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@658984 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/poi/hwpf/model/FSPATable.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/FSPATable.java b/src/scratchpad/src/org/apache/poi/hwpf/model/FSPATable.java index 58c69ff4b..812ab1a4a 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/FSPATable.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/FSPATable.java @@ -21,17 +21,18 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; /** * This class holds all the FSPA (File Shape Address) structures. * * @author Squeeself */ -public class FSPATable +public final class FSPATable { - protected ArrayList shapes = new ArrayList(); - protected HashMap cps = new HashMap(); - protected List _text; + private final List _shapes = new ArrayList(); + private final Map _shapeIndexesByPropertyStart = new HashMap(); + private final List _text; public FSPATable(byte[] tableStream, int fcPlcspa, int lcbPlcspa, List tpt) { @@ -46,32 +47,35 @@ public class FSPATable GenericPropertyNode property = plex.getProperty(i); FSPA fspa = new FSPA(property.getBytes(), 0); - shapes.add(fspa); - cps.put(Integer.valueOf(property.getStart()), Integer.valueOf(i)); + _shapes.add(fspa); + _shapeIndexesByPropertyStart.put(new Integer(property.getStart()), new Integer(i)); } } public FSPA getFspaFromCp(int cp) { - Integer idx = (Integer)cps.get(Integer.valueOf(cp)); - if (idx == null) + Integer idx = (Integer)_shapeIndexesByPropertyStart.get(new Integer(cp)); + if (idx == null) { return null; - return (FSPA)shapes.get(idx.intValue()); + } + return (FSPA)_shapes.get(idx.intValue()); } - public List getShapes() + public FSPA[] getShapes() { - return shapes; + FSPA[] result = new FSPA[_shapes.size()]; + _shapes.toArray(result); + return result; } public String toString() { StringBuffer buf = new StringBuffer(); - buf.append("[FPSA PLC size=").append(shapes.size()).append("]\n"); - for (Iterator it = cps.keySet().iterator(); it.hasNext(); ) + buf.append("[FPSA PLC size=").append(_shapes.size()).append("]\n"); + for (Iterator it = _shapeIndexesByPropertyStart.keySet().iterator(); it.hasNext(); ) { Integer i = (Integer) it.next(); - FSPA fspa = (FSPA) shapes.get(((Integer)cps.get(i)).intValue()); + FSPA fspa = (FSPA) _shapes.get(((Integer)_shapeIndexesByPropertyStart.get(i)).intValue()); buf.append(" [FC: ").append(i.toString()).append("] "); buf.append(fspa.toString()); buf.append("\n");