git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1705587 13f79535-47bb-0310-9956-ffa450edef68tags/REL_3_14_BETA1
@@ -71,7 +71,7 @@ public class EscherBlipRecord extends EscherRecord { // TODO - instantiable supe | |||
public void setPictureData(byte[] pictureData) { | |||
if (pictureData == null) { | |||
throw new NullPointerException("picture data can't be null"); | |||
throw new IllegalArgumentException("picture data can't be null"); | |||
} | |||
field_pictureData = pictureData.clone(); | |||
} |
@@ -108,8 +108,9 @@ public class EscherClientDataRecord | |||
/** | |||
* Any data recording this record. | |||
*/ | |||
public void setRemainingData( byte[] remainingData ) | |||
{ | |||
this.remainingData = remainingData; | |||
public void setRemainingData( byte[] remainingData ) { | |||
this.remainingData = (remainingData == null) | |||
? new byte[0] | |||
: remainingData.clone(); | |||
} | |||
} |
@@ -26,8 +26,6 @@ import org.apache.poi.util.LittleEndian; | |||
* A complex property differs from a simple property in that the data can not fit inside a 32 bit | |||
* integer. See the specification for more detailed information regarding exactly what is | |||
* stored here. | |||
* | |||
* @author Glen Stampoultzis | |||
*/ | |||
public class EscherComplexProperty extends EscherProperty { | |||
// TODO - make private and final | |||
@@ -43,7 +41,10 @@ public class EscherComplexProperty extends EscherProperty { | |||
*/ | |||
public EscherComplexProperty(short id, byte[] complexData) { | |||
super(id); | |||
_complexData = complexData; | |||
if (complexData == null) { | |||
throw new IllegalArgumentException("complexData can't be null"); | |||
} | |||
_complexData = complexData.clone(); | |||
} | |||
/** | |||
@@ -56,7 +57,10 @@ public class EscherComplexProperty extends EscherProperty { | |||
*/ | |||
public EscherComplexProperty(short propertyNumber, boolean isBlipId, byte[] complexData) { | |||
super(propertyNumber, true, isBlipId); | |||
_complexData = complexData; | |||
if (complexData == null) { | |||
throw new IllegalArgumentException("complexData can't be null"); | |||
} | |||
_complexData = complexData.clone(); | |||
} | |||
/** |
@@ -121,7 +121,7 @@ public final class EscherDggRecord extends EscherRecord { | |||
public String toString() { | |||
StringBuffer field_5_string = new StringBuffer(); | |||
StringBuilder field_5_string = new StringBuilder(); | |||
if(field_5_fileIdClusters != null) for (int i = 0; i < field_5_fileIdClusters.length; i++) { | |||
field_5_string.append(" DrawingGroupId").append(i+1).append(": "); | |||
field_5_string.append(field_5_fileIdClusters[i].field_1_drawingGroupId); | |||
@@ -204,7 +204,7 @@ public final class EscherDggRecord extends EscherRecord { | |||
} | |||
public void setFileIdClusters(FileIdCluster[] fileIdClusters) { | |||
this.field_5_fileIdClusters = fileIdClusters; | |||
this.field_5_fileIdClusters = fileIdClusters.clone(); | |||
} | |||
public void addCluster(int dgId, int numShapedUsed) { |
@@ -744,7 +744,7 @@ public final class EscherDump { | |||
String result = ""; | |||
result += (short) ( n32 >> 16 ); | |||
result += '.'; | |||
result += (short) ( n32 & (short) 0xFFFF ); | |||
result += (short) ( n32 & 0xFFFF ); | |||
return result; | |||
} | |||
@@ -43,11 +43,11 @@ public final class EscherMetafileBlip extends EscherBlipRecord { | |||
private static final int HEADER_SIZE = 8; | |||
private byte[] field_1_UID; | |||
private final byte[] field_1_UID = new byte[16]; | |||
/** | |||
* The primary UID is only saved to disk if (blip_instance ^ blip_signature == 1) | |||
*/ | |||
private byte[] field_2_UID; | |||
private final byte[] field_2_UID = new byte[16]; | |||
private int field_2_cb; | |||
private int field_3_rcBounds_x1; | |||
private int field_3_rcBounds_y1; | |||
@@ -65,11 +65,9 @@ public final class EscherMetafileBlip extends EscherBlipRecord { | |||
public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) { | |||
int bytesAfterHeader = readHeader( data, offset ); | |||
int pos = offset + HEADER_SIZE; | |||
field_1_UID = new byte[16]; | |||
System.arraycopy( data, pos, field_1_UID, 0, 16 ); pos += 16; | |||
if((getOptions() ^ getSignature()) == 0x10){ | |||
field_2_UID = new byte[16]; | |||
System.arraycopy( data, pos, field_2_UID, 0, 16 ); pos += 16; | |||
} | |||
@@ -173,16 +171,21 @@ public final class EscherMetafileBlip extends EscherBlipRecord { | |||
} | |||
public void setUID(byte[] uid) { | |||
field_1_UID = uid; | |||
if (uid == null || uid.length != 16) { | |||
throw new IllegalArgumentException("uid must be byte[16]"); | |||
} | |||
System.arraycopy(uid, 0, field_1_UID, 0, field_1_UID.length); | |||
} | |||
public byte[] getPrimaryUID() | |||
{ | |||
public byte[] getPrimaryUID() { | |||
return field_2_UID; | |||
} | |||
public void setPrimaryUID(byte[] primaryUID) { | |||
field_2_UID = primaryUID; | |||
if (primaryUID == null || primaryUID.length != 16) { | |||
throw new IllegalArgumentException("primaryUID must be byte[16]"); | |||
} | |||
System.arraycopy(primaryUID, 0, field_2_UID, 0, field_2_UID.length); | |||
} | |||
public int getUncompressedSize() { |
@@ -41,7 +41,7 @@ public final class EscherPictBlip extends EscherBlipRecord { | |||
private static final int HEADER_SIZE = 8; | |||
private byte[] field_1_UID; | |||
private final byte[] field_1_UID = new byte[16]; | |||
private int field_2_cb; | |||
private int field_3_rcBounds_x1; | |||
private int field_3_rcBounds_y1; | |||
@@ -59,7 +59,6 @@ public final class EscherPictBlip extends EscherBlipRecord { | |||
int bytesAfterHeader = readHeader(data, offset); | |||
int pos = offset + HEADER_SIZE; | |||
field_1_UID = new byte[16]; | |||
System.arraycopy( data, pos, field_1_UID, 0, 16 ); pos += 16; | |||
field_2_cb = LittleEndian.getInt( data, pos ); pos += 4; | |||
field_3_rcBounds_x1 = LittleEndian.getInt( data, pos ); pos += 4; | |||
@@ -146,7 +145,10 @@ public final class EscherPictBlip extends EscherBlipRecord { | |||
} | |||
public void setUID(byte[] uid) { | |||
this.field_1_UID = uid; | |||
if (uid == null || uid.length != 16) { | |||
throw new IllegalArgumentException("uid must be byte[16]"); | |||
} | |||
System.arraycopy(uid, 0, field_1_UID, 0, field_1_UID.length); | |||
} | |||
public int getUncompressedSize() { |
@@ -19,10 +19,7 @@ | |||
package org.apache.poi.dev; | |||
import java.io.File; | |||
import java.io.FileInputStream; | |||
import java.io.FileNotFoundException; | |||
import java.io.InputStreamReader; | |||
import java.io.Reader; | |||
import java.util.Locale; | |||
import java.util.Properties; | |||
@@ -36,7 +33,6 @@ import javax.xml.transform.TransformerFactory; | |||
import javax.xml.transform.stream.StreamResult; | |||
import javax.xml.transform.stream.StreamSource; | |||
import org.apache.poi.util.StringUtil; | |||
import org.apache.poi.util.XMLHelper; | |||
import org.w3c.dom.Document; | |||
import org.w3c.dom.Element; | |||
@@ -70,10 +66,13 @@ public class RecordGenerator { | |||
private static void generateRecords(String defintionsDir, String recordStyleDir, String destSrcPathDir, String testSrcPathDir) | |||
throws Exception { | |||
File definitionsFile = new File(defintionsDir); | |||
File definitionsFiles[] = new File(defintionsDir).listFiles(); | |||
if (definitionsFiles == null) { | |||
System.err.println(defintionsDir+" is not a directory."); | |||
return; | |||
} | |||
for (int i = 0; i < definitionsFile.listFiles().length; i++) { | |||
File file = definitionsFile.listFiles()[i]; | |||
for (File file : definitionsFiles) { | |||
if (file.isFile() && | |||
(file.getName().endsWith("_record.xml") || | |||
file.getName().endsWith("_type.xml") | |||
@@ -130,8 +129,7 @@ public class RecordGenerator { | |||
private static void transform(final File in, final File out, final File xslt) | |||
throws FileNotFoundException, TransformerException | |||
{ | |||
final Reader r = new InputStreamReader(new FileInputStream(xslt), StringUtil.UTF8); | |||
final StreamSource ss = new StreamSource(r); | |||
final StreamSource ss = new StreamSource(xslt); | |||
final TransformerFactory tf = TransformerFactory.newInstance(); | |||
final Transformer t; | |||
try |
@@ -17,8 +17,6 @@ | |||
package org.apache.poi.sl.usermodel; | |||
import java.awt.Insets; | |||
/** | |||
* This is a replacement for {@link java.awt.Insets} which works on doubles | |||
* instead of ints | |||
@@ -94,8 +92,8 @@ public class Insets2D { | |||
* @since JDK1.1 | |||
*/ | |||
public boolean equals(Object obj) { | |||
if (obj instanceof Insets) { | |||
Insets insets = (Insets)obj; | |||
if (obj instanceof Insets2D) { | |||
Insets2D insets = (Insets2D)obj; | |||
return ((top == insets.top) && (left == insets.left) && | |||
(bottom == insets.bottom) && (right == insets.right)); | |||
} |
@@ -28,8 +28,6 @@ import org.apache.poi.util.LocaleUtil; | |||
* Parser for java dates. | |||
*/ | |||
public class DateParser { | |||
public DateParser instance = new DateParser(); | |||
private DateParser() { | |||
// enforcing singleton | |||
} |
@@ -28,18 +28,12 @@ public final class Odd extends NumericFunction.OneArg { | |||
if (d==0) { | |||
return 1; | |||
} | |||
if (d>0) { | |||
return calcOdd(d); | |||
} | |||
return -calcOdd(-d); | |||
return (d>0) ? calcOdd(d) : -calcOdd(-d); | |||
} | |||
private static long calcOdd(double d) { | |||
double dpm1 = d+1; | |||
long x = ((long) dpm1) & PARITY_MASK; | |||
if (x == dpm1) { | |||
return x-1; | |||
} | |||
return x + 1; | |||
return ( Double.compare(x, dpm1) == 0 ) ? x-1 : x+1; | |||
} | |||
} |
@@ -1168,7 +1168,7 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para | |||
} | |||
public int getIndentFromLeft() { | |||
return getIndentFromLeft(); | |||
return getIndentationLeft(); | |||
} | |||
public void setIndentFromLeft(int dxaLeft) { | |||
@@ -1176,7 +1176,7 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para | |||
} | |||
public int getIndentFromRight() { | |||
return getIndentFromRight(); | |||
return getIndentationRight(); | |||
} | |||
public void setIndentFromRight(int dxaRight) { |
@@ -81,13 +81,17 @@ public final class EventBridge implements HDFLowLevelParsingListener | |||
{ | |||
_listener = listener; | |||
} | |||
public void mainDocument(byte[] mainDocument) | |||
{ | |||
_mainDocument = mainDocument; | |||
public void mainDocument(byte[] mainDocument) { | |||
if (mainDocument == null) { | |||
throw new IllegalArgumentException("mainDocument is null."); | |||
} | |||
_mainDocument = mainDocument.clone(); | |||
} | |||
public void tableStream(byte[] tableStream) | |||
{ | |||
_tableStream = tableStream; | |||
public void tableStream(byte[] tableStream) { | |||
if (tableStream == null) { | |||
throw new IllegalArgumentException("tableStream is null."); | |||
} | |||
_tableStream = tableStream.clone(); | |||
} | |||
public void miscellaneous(int fcMin, int ccpText, int ccpFtn, int fcPlcfhdd, int lcbPlcfhdd) | |||
{ |
@@ -91,7 +91,7 @@ public final class StyleDescription | |||
System.arraycopy(std, grupxStart + offset + 2, _chpx, 0, upxSize); | |||
} | |||
if(upxSize % 2 == 1) | |||
if((upxSize & 2) == 1) | |||
{ | |||
++upxSize; | |||
} |