Skip to content

Commit c791075

Browse files
committed
PdfArrayDirectIterator: separate class
DEVSIX-828
1 parent 70b45cc commit c791075

File tree

2 files changed

+33
-25
lines changed

2 files changed

+33
-25
lines changed

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

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ public boolean contains(PdfObject o) {
208208
* @return an Iterator.
209209
*/
210210
public Iterator<PdfObject> iterator() {
211-
return new PdfArrayDirectIterator();
211+
return new PdfArrayDirectIterator(list.iterator());
212212
}
213213

214214
/**
@@ -218,7 +218,7 @@ public Iterator<PdfObject> iterator() {
218218
*/
219219
@Deprecated
220220
public Iterator<PdfObject> directIterator() {
221-
return new PdfArrayDirectIterator();
221+
return new PdfArrayDirectIterator(list.iterator());
222222
}
223223

224224
public void add(PdfObject pdfObject) {
@@ -558,27 +558,4 @@ protected void copyContent(PdfObject from, PdfDocument document) {
558558
protected void releaseContent() {
559559
list = null;
560560
}
561-
562-
private class PdfArrayDirectIterator implements Iterator<PdfObject> {
563-
Iterator<PdfObject> parentIterator = list.iterator();
564-
565-
@Override
566-
public boolean hasNext() {
567-
return parentIterator.hasNext();
568-
}
569-
570-
@Override
571-
public PdfObject next() {
572-
PdfObject obj = parentIterator.next();
573-
if (obj.isIndirectReference()) {
574-
obj = ((PdfIndirectReference) obj).getRefersTo(true);
575-
}
576-
return obj;
577-
}
578-
579-
@Override
580-
public void remove() {
581-
parentIterator.remove();
582-
}
583-
}
584561
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.itextpdf.kernel.pdf;
2+
3+
import java.util.Iterator;
4+
5+
class PdfArrayDirectIterator implements Iterator<PdfObject> {
6+
Iterator<PdfObject> array;
7+
8+
PdfArrayDirectIterator(Iterator<PdfObject> array) {
9+
this.array = array;
10+
}
11+
12+
@Override
13+
public boolean hasNext() {
14+
return array.hasNext();
15+
}
16+
17+
@Override
18+
public PdfObject next() {
19+
PdfObject obj = array.next();
20+
if (obj.isIndirectReference()) {
21+
obj = ((PdfIndirectReference) obj).getRefersTo(true);
22+
}
23+
return obj;
24+
}
25+
26+
@Override
27+
public void remove() {
28+
array.remove();
29+
}
30+
}
31+

0 commit comments

Comments
 (0)