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
This commit is contained in:
Josh Micich 2008-05-22 03:00:29 +00:00
parent b1ad25f7e3
commit d3ee29261c

View File

@ -21,17 +21,18 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator; import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* This class holds all the FSPA (File Shape Address) structures. * This class holds all the FSPA (File Shape Address) structures.
* *
* @author Squeeself * @author Squeeself
*/ */
public class FSPATable public final class FSPATable
{ {
protected ArrayList shapes = new ArrayList(); private final List _shapes = new ArrayList();
protected HashMap cps = new HashMap(); private final Map _shapeIndexesByPropertyStart = new HashMap();
protected List _text; private final List _text;
public FSPATable(byte[] tableStream, int fcPlcspa, int lcbPlcspa, List tpt) public FSPATable(byte[] tableStream, int fcPlcspa, int lcbPlcspa, List tpt)
{ {
@ -46,32 +47,35 @@ public class FSPATable
GenericPropertyNode property = plex.getProperty(i); GenericPropertyNode property = plex.getProperty(i);
FSPA fspa = new FSPA(property.getBytes(), 0); FSPA fspa = new FSPA(property.getBytes(), 0);
shapes.add(fspa); _shapes.add(fspa);
cps.put(Integer.valueOf(property.getStart()), Integer.valueOf(i)); _shapeIndexesByPropertyStart.put(new Integer(property.getStart()), new Integer(i));
} }
} }
public FSPA getFspaFromCp(int cp) public FSPA getFspaFromCp(int cp)
{ {
Integer idx = (Integer)cps.get(Integer.valueOf(cp)); Integer idx = (Integer)_shapeIndexesByPropertyStart.get(new Integer(cp));
if (idx == null) if (idx == null) {
return 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() public String toString()
{ {
StringBuffer buf = new StringBuffer(); StringBuffer buf = new StringBuffer();
buf.append("[FPSA PLC size=").append(shapes.size()).append("]\n"); buf.append("[FPSA PLC size=").append(_shapes.size()).append("]\n");
for (Iterator it = cps.keySet().iterator(); it.hasNext(); ) for (Iterator it = _shapeIndexesByPropertyStart.keySet().iterator(); it.hasNext(); )
{ {
Integer i = (Integer) it.next(); 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(" [FC: ").append(i.toString()).append("] ");
buf.append(fspa.toString()); buf.append(fspa.toString());
buf.append("\n"); buf.append("\n");