in src/java/org/apache/fop/render/pdf/pdfbox/StructureTreeMerger.java [98:123]
public void createDirectDescendants(COSBase base, PDFStructElem parent) throws IOException {
if (base instanceof COSDictionary) {
COSDictionary baseDict = (COSDictionary)base;
if (baseDict.keySet().contains(COSName.K)) {
createDirectDescendants(baseDict.getItem(COSName.K), parent);
}
} else if (base instanceof COSArray) {
COSArray array = (COSArray)base;
for (int i = 0; i < array.size(); i++) {
createDirectDescendants(array.get(i), parent);
}
} else {
assert base instanceof COSObject;
COSObject obj = (COSObject)base;
createAndRegisterStructElem(obj);
PDFStructElem elem = structElemCache.get((int)obj.getObjectNumber());
copyElemEntries(obj, elem);
parent.addKid(elem);
elem.setParent(parent);
COSDictionary dict = (COSDictionary) obj.getObject();
COSBase objKid = dict.getItem(COSName.K);
if (objKid != null) {
createDirectDescendants(objKid, elem);
}
}
}