Skip to content

Commit 5acab7c

Browse files
committed
Add namespace to PdfUAValidationContext
1 parent 335ae48 commit 5acab7c

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

pdfua/src/main/java/com/itextpdf/pdfua/checkers/utils/PdfUAValidationContext.java

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ This file is part of the iText (R) project.
2626
import com.itextpdf.kernel.pdf.PdfName;
2727
import com.itextpdf.kernel.pdf.PdfUAConformance;
2828
import com.itextpdf.kernel.pdf.tagging.IStructureNode;
29+
import com.itextpdf.kernel.pdf.tagging.PdfNamespace;
2930
import com.itextpdf.kernel.pdf.tagging.PdfStructElem;
3031
import com.itextpdf.kernel.pdf.tagutils.IRoleMappingResolver;
3132

@@ -61,23 +62,36 @@ public String resolveToStandardRole(IStructureNode node) {
6162
if (originalRole == null) {
6263
return null;
6364
}
65+
PdfNamespace namespace = node instanceof PdfStructElem ? ((PdfStructElem) node).getNamespace() : null;
6466

65-
return resolveToStandardRole(originalRole.getValue());
67+
return resolveToStandardRole(originalRole.getValue(), namespace);
6668
}
6769

6870
/**
69-
* Resolves the role to a standard role
71+
* Resolves the role to a standard role.
7072
*
71-
* @param role The role you want to resolve the standard role for.
73+
* @param role the role you want to resolve the standard role for
7274
*
73-
* @return The role.
75+
* @return resolved role
7476
*/
7577
public String resolveToStandardRole(String role) {
78+
return resolveToStandardRole(role, null);
79+
}
80+
81+
/**
82+
* Resolves the role to a standard role.
83+
*
84+
* @param role the role you want to resolve the standard role for
85+
* @param namespace namespace where role is defined
86+
*
87+
* @return resolved role
88+
*/
89+
public String resolveToStandardRole(String role, PdfNamespace namespace) {
7690
if (role == null) {
7791
return null;
7892
}
7993
IRoleMappingResolver resolver = pdfDocument.getTagStructureContext()
80-
.resolveMappingToStandardOrDomainSpecificRole(role, null);
94+
.resolveMappingToStandardOrDomainSpecificRole(role, namespace);
8195
if (resolver == null) {
8296
return role;
8397
}
@@ -102,8 +116,8 @@ public PdfStructElem getElementIfRoleMatches(PdfName role, IStructureNode struct
102116
if (!(structureNode instanceof PdfStructElem)) {
103117
return null;
104118
}
105-
//We can get away with the short code without resolving it. Because we have checks in place
106-
//that would catch remapped standard roles and cyclic roles.
119+
// We can get away with the short code without resolving it. Because we have checks in place
120+
// that would catch remapped standard roles and cyclic roles.
107121
if (role.equals(structureNode.getRole()) || role.getValue().equals(resolveToStandardRole(structureNode))) {
108122
return (PdfStructElem) structureNode;
109123
}

0 commit comments

Comments
 (0)