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 e44a0f8d40
commit 4f0f31a37e
9 changed files with 90 additions and 89 deletions

View File

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

View File

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

View File

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

View File

@ -53,12 +53,12 @@ public enum ParagraphAlignment {
private static Map<Integer, ParagraphAlignment> imap = new HashMap<Integer, ParagraphAlignment>();
static{
for (ParagraphAlignment p : values()) {
imap.put(p.getValue(), p);
imap.put(new Integer(p.getValue()), p);
}
}
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);
return err;
}

View File

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

View File

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

View File

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

View File

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

View File

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