Skip to content

Commit 88766f7

Browse files
IdamkinISnipx
authored andcommitted
Added "implements Serializable" some needed methods and default constructors for proper work of PdfDocument's deep copy.
DEVSIX-441
1 parent 0f05a14 commit 88766f7

File tree

15 files changed

+103
-26
lines changed

15 files changed

+103
-26
lines changed

io/src/main/java/com/itextpdf/io/source/ArrayRandomAccessSource.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.itextpdf.io.source;
22

3+
import java.io.Serializable;
4+
35
/**
46
* A RandomAccessSource that is based on an underlying byte array
57
*/
6-
class ArrayRandomAccessSource implements RandomAccessSource {
8+
class ArrayRandomAccessSource implements RandomAccessSource, Serializable {
79
private byte[] array;
810

911
public ArrayRandomAccessSource(byte[] array) {

io/src/main/java/com/itextpdf/io/source/ByteBuffer.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package com.itextpdf.io.source;
22

3-
public class ByteBuffer {
3+
import java.io.Serializable;
4+
5+
public class ByteBuffer implements Serializable{
46

57
private static final byte[] bytes = new byte[]{48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 97, 98, 99, 100, 101, 102};
68

io/src/main/java/com/itextpdf/io/source/PdfTokenizer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
import com.itextpdf.io.IOException;
44

55
import java.io.Closeable;
6+
import java.io.Serializable;
67
import java.util.Arrays;
78

8-
public class PdfTokenizer implements Closeable {
9+
public class PdfTokenizer implements Closeable, Serializable {
910

1011
public enum TokenType {
1112
Number,

io/src/main/java/com/itextpdf/io/source/RandomAccessFileOrArray.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
import java.io.DataInput;
44
import java.io.DataInputStream;
55
import java.io.EOFException;
6+
import java.io.Serializable;
67

7-
public class RandomAccessFileOrArray implements DataInput {
8+
public class RandomAccessFileOrArray implements DataInput, Serializable {
89

910
/**
1011
* When true the file access is not done through a memory mapped file. Use it if the file

kernel/src/main/java/com/itextpdf/kernel/events/EventDispatcher.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.itextpdf.kernel.events;
22

3+
import java.io.Serializable;
34
import java.util.ArrayList;
45
import java.util.List;
56
import java.util.HashMap;
@@ -9,7 +10,7 @@
910
* IEventDispatcher implementation that forwards Events to registered {@link com.itextpdf.kernel.events.IEventHandler}
1011
* implementations.
1112
*/
12-
public class EventDispatcher implements IEventDispatcher {
13+
public class EventDispatcher implements IEventDispatcher, Serializable {
1314

1415
protected Map<String, List<IEventHandler>> eventHandlers = new HashMap<>();
1516

kernel/src/main/java/com/itextpdf/kernel/geom/Rectangle.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import com.itextpdf.io.util.HashCode;
44

5-
public class Rectangle implements Cloneable {
5+
import java.io.Serializable;
6+
7+
public class Rectangle implements Cloneable, Serializable {
68

79
protected float x;
810
protected float y;

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfDocument.java

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@
3030
import com.itextpdf.kernel.xmp.options.SerializeOptions;
3131
import com.itextpdf.kernel.numbering.RomanNumbering;
3232

33-
import java.io.Closeable;
34-
import java.io.FileNotFoundException;
35-
import java.io.IOException;
33+
import java.io.*;
3634
import java.util.ArrayList;
3735
import java.util.HashMap;
3836
import java.util.HashSet;
@@ -42,7 +40,7 @@
4240
import java.util.Set;
4341
import java.util.TreeSet;
4442

45-
public class PdfDocument implements IEventDispatcher, Closeable {
43+
public class PdfDocument implements IEventDispatcher, Closeable, Serializable {
4644

4745
/**
4846
* Currently active page.
@@ -523,6 +521,22 @@ public PageSize getDefaultPageSize() {
523521
return defaultPageSize;
524522
}
525523

524+
public byte[] getSerializedBytes() {
525+
try {
526+
ByteArrayOutputStream bos = new ByteArrayOutputStream();
527+
ObjectOutputStream oos = null;
528+
oos = new ObjectOutputStream(bos);
529+
oos.writeObject(this);
530+
oos.flush();
531+
oos.close();
532+
bos.close();
533+
return bos.toByteArray();
534+
} catch (IOException e) {
535+
e.printStackTrace();
536+
}
537+
return null;
538+
}
539+
526540
/**
527541
* Sets default page size.
528542
*

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfNumTree.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package com.itextpdf.kernel.pdf;
22

3+
import java.io.Serializable;
34
import java.util.*;
45

5-
public class PdfNumTree {
6+
public class PdfNumTree implements Serializable{
67
private static final int NodeSize = 40;
78

89
private PdfCatalog catalog;

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfObject.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55
import com.itextpdf.kernel.crypto.BadPasswordException;
66

77
import java.io.IOException;
8+
import java.io.Serializable;
89

910
import org.slf4j.Logger;
1011
import org.slf4j.LoggerFactory;
1112

12-
abstract public class PdfObject {
13+
abstract public class PdfObject implements Serializable{
1314

1415
static public final byte Array = 1;
1516
static public final byte Boolean = 2;

kernel/src/main/java/com/itextpdf/kernel/pdf/PdfObjectWrapper.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
import com.itextpdf.kernel.PdfException;
44

5-
public abstract class PdfObjectWrapper<T extends PdfObject> {
5+
import java.io.Serializable;
6+
7+
public abstract class PdfObjectWrapper<T extends PdfObject> implements Serializable{
68

79
private T pdfObject = null;
810

0 commit comments

Comments
 (0)