Autoboxing tweaks from bug #51175, and make the paragraph/table finding code generic

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1102691 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Nick Burch 2011-05-13 12:22:24 +00:00
parent 333af414e0
commit f09e137649
9 changed files with 90 additions and 89 deletions

View File

@ -86,26 +86,25 @@ public enum BreakClear {
private final int value; private final int value;
private BreakClear(int val) { private BreakClear(int val) {
value = val; value = val;
} }
public int getValue() { public int getValue() {
return value; return value;
} }
private static Map<Integer, BreakClear> imap = new HashMap<Integer, BreakClear>(); private static Map<Integer, BreakClear> imap = new HashMap<Integer, BreakClear>();
static { static {
for (BreakClear p : values()) { for (BreakClear p : values()) {
imap.put(p.getValue(), p); imap.put(new Integer(p.getValue()), p);
} }
} }
public static BreakClear valueOf(int type) { public static BreakClear valueOf(int type) {
BreakClear bType = imap.get(type); BreakClear bType = imap.get(new Integer(type));
if (bType == null) if (bType == null)
throw new IllegalArgumentException("Unknown break clear type: " throw new IllegalArgumentException("Unknown break clear type: "
+ type); + type);
return bType; return bType;
} }
} }

View File

@ -59,26 +59,25 @@ public enum BreakType {
private final int value; private final int value;
private BreakType(int val) { private BreakType(int val) {
value = val; value = val;
} }
public int getValue() { public int getValue() {
return value; return value;
} }
private static Map<Integer, BreakType> imap = new HashMap<Integer, BreakType>(); private static Map<Integer, BreakType> imap = new HashMap<Integer, BreakType>();
static { static {
for (BreakType p : values()) { for (BreakType p : values()) {
imap.put(p.getValue(), p); imap.put(new Integer(p.getValue()), p);
} }
} }
public static BreakType valueOf(int type) { public static BreakType valueOf(int type) {
BreakType bType = imap.get(type); BreakType bType = imap.get(new Integer(type));
if (bType == null) if (bType == null)
throw new IllegalArgumentException("Unknown break type: " throw new IllegalArgumentException("Unknown break type: "
+ type); + type);
return bType; return bType;
} }
} }

View File

@ -52,25 +52,24 @@ public enum LineSpacingRule {
private final int value; private final int value;
private LineSpacingRule(int val) { private LineSpacingRule(int val) {
value = val; value = val;
} }
public int getValue() { public int getValue() {
return value; return value;
} }
private static Map<Integer, LineSpacingRule> imap = new HashMap<Integer, LineSpacingRule>(); private static Map<Integer, LineSpacingRule> imap = new HashMap<Integer, LineSpacingRule>();
static { static {
for (LineSpacingRule p : values()) { for (LineSpacingRule p : values()) {
imap.put(p.getValue(), p); imap.put(new Integer(p.getValue()), p);
} }
} }
public static LineSpacingRule valueOf(int type) { public static LineSpacingRule valueOf(int type) {
LineSpacingRule lineType = imap.get(type); LineSpacingRule lineType = imap.get(new Integer(type));
if (lineType == null) if (lineType == null)
throw new IllegalArgumentException("Unknown line type: " + type); throw new IllegalArgumentException("Unknown line type: " + type);
return lineType; return lineType;
} }
} }

View File

@ -53,12 +53,12 @@ public enum ParagraphAlignment {
private static Map<Integer, ParagraphAlignment> imap = new HashMap<Integer, ParagraphAlignment>(); private static Map<Integer, ParagraphAlignment> imap = new HashMap<Integer, ParagraphAlignment>();
static{ static{
for (ParagraphAlignment p : values()) { for (ParagraphAlignment p : values()) {
imap.put(p.getValue(), p); imap.put(new Integer(p.getValue()), p);
} }
} }
public static ParagraphAlignment valueOf(int type){ public static ParagraphAlignment valueOf(int type){
ParagraphAlignment err = imap.get(type); ParagraphAlignment err = imap.get(new Integer(type));
if(err == null) throw new IllegalArgumentException("Unknown paragraph alignment: " + type); if(err == null) throw new IllegalArgumentException("Unknown paragraph alignment: " + type);
return err; return err;
} }

View File

@ -59,20 +59,19 @@ public enum TextAlignment {
} }
public int getValue(){ public int getValue(){
return value; return value;
} }
private static Map<Integer, TextAlignment> imap = new HashMap<Integer, TextAlignment>(); private static Map<Integer, TextAlignment> imap = new HashMap<Integer, TextAlignment>();
static{ static{
for (TextAlignment p : values()) { for (TextAlignment p : values()) {
imap.put(p.getValue(), p); imap.put(new Integer(p.getValue()), p);
} }
} }
public static TextAlignment valueOf(int type){ public static TextAlignment valueOf(int type){
TextAlignment align = imap.get(type); TextAlignment align = imap.get(new Integer(type));
if(align == null) throw new IllegalArgumentException("Unknown text alignment: " + type); if(align == null) throw new IllegalArgumentException("Unknown text alignment: " + type);
return align; return align;
} }
} }

View File

@ -138,26 +138,25 @@ public enum UnderlinePatterns {
private final int value; private final int value;
private UnderlinePatterns(int val) { private UnderlinePatterns(int val) {
value = val; value = val;
} }
public int getValue() { public int getValue() {
return value; return value;
} }
private static Map<Integer, UnderlinePatterns> imap = new HashMap<Integer, UnderlinePatterns>(); private static Map<Integer, UnderlinePatterns> imap = new HashMap<Integer, UnderlinePatterns>();
static { static {
for (UnderlinePatterns p : values()) { for (UnderlinePatterns p : values()) {
imap.put(p.getValue(), p); imap.put(new Integer(p.getValue()), p);
} }
} }
public static UnderlinePatterns valueOf(int type) { public static UnderlinePatterns valueOf(int type) {
UnderlinePatterns align = imap.get(type); UnderlinePatterns align = imap.get(new Integer(type));
if (align == null) if (align == null)
throw new IllegalArgumentException("Unknown underline pattern: " throw new IllegalArgumentException("Unknown underline pattern: "
+ type); + type);
return align; return align;
} }
} }

View File

@ -50,26 +50,25 @@ public enum VerticalAlign {
private final int value; private final int value;
private VerticalAlign(int val) { private VerticalAlign(int val) {
value = val; value = val;
} }
public int getValue() { public int getValue() {
return value; return value;
} }
private static Map<Integer, VerticalAlign> imap = new HashMap<Integer, VerticalAlign>(); private static Map<Integer, VerticalAlign> imap = new HashMap<Integer, VerticalAlign>();
static { static {
for (VerticalAlign p : values()) { for (VerticalAlign p : values()) {
imap.put(p.getValue(), p); imap.put(new Integer(p.getValue()), p);
} }
} }
public static VerticalAlign valueOf(int type) { public static VerticalAlign valueOf(int type) {
VerticalAlign align = imap.get(type); VerticalAlign align = imap.get(new Integer(type));
if (align == null) if (align == null)
throw new IllegalArgumentException("Unknown vertical alignment: " throw new IllegalArgumentException("Unknown vertical alignment: "
+ type); + type);
return align; return align;
} }
} }

View File

@ -583,35 +583,39 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
return false; return false;
} }
private int getPosOfBodyElement(IBodyElement needle) {
BodyElementType type = needle.getElementType();
IBodyElement current;
for(int i=0; i<bodyElements.size(); i++) {
current = bodyElements.get(i);
if(current.getElementType() == type) {
if(current.equals(needle)) {
return i;
}
}
}
return -1;
}
/** /**
* get position of the paragraph * Get the position of the paragraph, within the list
* @param p * of all the body elements.
* @param p The paragraph to find
* @return The location, or -1 if the paragraph couldn't be found
*/ */
public Integer getPosOfParagraph(XWPFParagraph p){ public int getPosOfParagraph(XWPFParagraph p){
int i, pos = 0; return getPosOfBodyElement(p);
for (i = 0 ; i < bodyElements.size() ; i++) {
if (bodyElements.get(i) instanceof XWPFParagraph){
if (bodyElements.get(i).equals(p)){
return pos;
}
pos++;
}
}
return null;
} }
public Integer getPosOfTable(XWPFTable t){ /**
int i, pos = 0; * Get the position of the table, within the list of
for(i = 0; i < bodyElements.size(); i++){ * all the body elements.
if(bodyElements.get(i).getElementType() == BodyElementType.TABLE){ * @param t The table to find
if (bodyElements.get(i) == t){ * @return The location, or -1 if the table couldn't be found
return pos; */
} public int getPosOfTable(XWPFTable t){
pos++; return getPosOfBodyElement(t);
}
}
return null;
} }
/** /**
@ -728,7 +732,7 @@ public class XWPFDocument extends POIXMLDocument implements Document, IBody {
String parStyle = par.getStyle(); String parStyle = par.getStyle();
if (parStyle != null && parStyle.substring(0, 7).equals("Heading")) { if (parStyle != null && parStyle.substring(0, 7).equals("Heading")) {
try { try {
int level = Integer.valueOf(parStyle.substring("Heading".length())); int level = Integer.valueOf(parStyle.substring("Heading".length())).intValue();
toc.addRow(level, par.getText(), 1, "112723803"); toc.addRow(level, par.getText(), 1, "112723803");
} }
catch (NumberFormatException e) { catch (NumberFormatException e) {

View File

@ -105,6 +105,9 @@ public final class TestXWPFDocument extends TestCase {
XWPFParagraph p = doc.createParagraph(); XWPFParagraph p = doc.createParagraph();
assertEquals(p, doc.getParagraphs().get(3)); assertEquals(p, doc.getParagraphs().get(3));
assertEquals(4, doc.getParagraphs().size()); assertEquals(4, doc.getParagraphs().size());
assertEquals(3, doc.getParagraphPos(3));
assertEquals(3, doc.getPosOfParagraph(p));
CTP ctp = p.getCTP(); CTP ctp = p.getCTP();
XWPFParagraph newP = doc.getParagraph(ctp); XWPFParagraph newP = doc.getParagraph(ctp);