Skip to content

Commit 36e490e

Browse files
committed
fn:transform - fix inspection warnings
1 parent 7f58927 commit 36e490e

File tree

5 files changed

+75
-38
lines changed

5 files changed

+75
-38
lines changed

exist-core/src/main/java/org/exist/xquery/XQueryContext.java

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3466,19 +3466,18 @@ public String getStringValue() {
34663466

34673467
sb.append("dynamicTextResources: {");
34683468
if (dynamicTextResources != null) {
3469-
for (final Tuple2<String, Charset> key : dynamicTextResources.keySet()) {
3470-
sb.append(key).append("-> ");
3471-
sb.append(dynamicTextResources.get(key));
3469+
for (final Map.Entry<Tuple2<String, Charset>, QuadFunctionE<DBBroker, Txn, String, Charset, Reader, XPathException>> entry : dynamicTextResources.entrySet()) {
3470+
sb.append(entry.getKey()).append("-> ").append(entry.getValue());
34723471
}
34733472
}
34743473
sb.append('}');
34753474
sb.append('\n');
34763475

34773476
sb.append("dynamicCollections: {");
34783477
if (dynamicCollections != null) {
3479-
for (final String key : dynamicCollections.keySet()) {
3480-
sb.append(key).append("-> ");
3481-
sb.append(dynamicCollections.get(key));
3478+
for (final Map.Entry<String,
3479+
TriFunctionE<DBBroker, Txn, String, Sequence, XPathException>> entry : dynamicCollections.entrySet()) {
3480+
sb.append(entry.getKey()).append("-> ").append(entry.getValue());
34823481
}
34833482
}
34843483
sb.append('}');
@@ -3493,29 +3492,27 @@ public String getStringValue() {
34933492

34943493
sb.append("inScopePrefixes: {");
34953494
if (inScopePrefixes != null) {
3496-
for (final String key : inScopePrefixes.keySet()) {
3497-
sb.append(key).append("-> ");
3498-
sb.append(inScopePrefixes.get(key));
3495+
for (final Map.Entry<String, String> entry : inScopePrefixes.entrySet()) {
3496+
sb.append(entry.getKey()).append("-> ").append(entry.getValue());
34993497
}
35003498
}
35013499
sb.append('}');
35023500
sb.append('\n');
35033501

35043502
sb.append("inScopeNamespaces: {");
35053503
if (inScopeNamespaces != null) {
3506-
for (final String key : inScopeNamespaces.keySet()) {
3507-
sb.append(key).append("-> ");
3508-
sb.append(inScopeNamespaces.get(key));
3504+
for (final Map.Entry<String, String> entry : inScopeNamespaces.entrySet()) {
3505+
sb.append(entry.getKey()).append("-> ").append(entry.getValue());
35093506
}
35103507
}
35113508
sb.append('}');
35123509
sb.append('\n');
35133510

35143511
sb.append("modules: {");
35153512
if (modules != null) {
3516-
for (final String key : modules.keySet()) {
3517-
sb.append(key).append("-> ");
3518-
for (final Module module : modules.get(key)) {
3513+
for (final Map.Entry<String, Module[]> entry : modules.entrySet()) {
3514+
sb.append(entry.getKey()).append("-> ");
3515+
for (final Module module : modules.get(entry.getKey())) {
35193516
sb.append("namespaceURI: ").append(module.getNamespaceURI()).append('\n');
35203517
sb.append("defaultPrefix: ").append(module.getDefaultPrefix()).append('\n');
35213518
sb.append("description: ").append(module.getDescription()).append('\n');
@@ -3531,9 +3528,9 @@ public String getStringValue() {
35313528

35323529
sb.append("allModules: {");
35333530
if (allModules != null) {
3534-
for (final String key : allModules.keySet()) {
3535-
sb.append(key).append("-> ");
3536-
for (final Module module : allModules.get(key)) {
3531+
for (final Map.Entry<String, Module[]> entry : allModules.entrySet()) {
3532+
sb.append(entry.getKey()).append("-> ");
3533+
for (final Module module : allModules.get(entry.getKey())) {
35373534
sb.append("namespaceURI: ").append(module.getNamespaceURI()).append('\n');
35383535
sb.append("defaultPrefix: ").append(module.getDefaultPrefix()).append('\n');
35393536
sb.append("description: ").append(module.getDescription()).append('\n');

exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Convert.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@
5858
*/
5959
class Convert {
6060

61+
private Convert() {
62+
super();
63+
}
64+
6165
static class ToExist {
6266

6367
static Sequence of(final XdmValue xdmValue) throws XPathException {

exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Options.java

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,19 @@ private Map<QName, XdmValue> readParamsMap(final Optional<MapType> option, final
122122
final Optional<StringValue> baseOutputURI;
123123
final Optional<MapType> serializationParams;
124124

125+
final Optional<BooleanValue> enableAssertions;
126+
final Optional<BooleanValue> enableMessages;
127+
final Optional<BooleanValue> enableTrace;
128+
129+
final Optional<StringValue> packageName;
130+
final Optional<StringValue> packageVersion;
131+
final Optional<StringValue> packageText;
132+
final Optional<NodeValue> packageNode;
133+
final Optional<StringValue> packageLocation;
134+
135+
final Optional<MapType> vendorOptions;
136+
137+
125138
final Optional<Long> sourceTextChecksum;
126139
final String stylesheetNodeDocumentPath;
127140

@@ -204,18 +217,30 @@ private Map<QName, XdmValue> readParamsMap(final Optional<MapType> option, final
204217
validateRequestedProperties(Options.REQUESTED_PROPERTIES.get(xsltVersion, options).orElse(new MapType(context)));
205218

206219
postProcess = Options.POST_PROCESS.get(xsltVersion, options);
220+
221+
enableAssertions = Options.ENABLE_ASSERTIONS.get(xsltVersion, options);
222+
enableMessages = Options.ENABLE_MESSAGES.get(xsltVersion, options);
223+
enableTrace = Options.ENABLE_TRACE.get(xsltVersion, options);
224+
225+
packageName = Options.PACKAGE_NAME.get(xsltVersion, options);
226+
packageVersion = Options.PACKAGE_VERSION.get(xsltVersion, options);
227+
packageText = Options.PACKAGE_TEXT.get(xsltVersion, options);
228+
packageNode = Options.PACKAGE_NODE.get(xsltVersion, options);
229+
packageLocation = Options.PACKAGE_LOCATION.get(xsltVersion, options);
230+
231+
vendorOptions = Options.VENDOR_OPTIONS.get(xsltVersion, options);
207232
}
208233

209234
private Delivery.Format getDeliveryFormat(final float xsltVersion, final MapType options) throws XPathException {
210-
final String string = Options.DELIVERY_FORMAT.get(xsltVersion, options).get().getStringValue().toUpperCase();
211-
final Delivery.Format deliveryFormat;
235+
final String deliveryFormatString = Options.DELIVERY_FORMAT.get(xsltVersion, options).orElse(new StringValue(Delivery.Format.DOCUMENT.name())).getStringValue().toUpperCase();
236+
final Delivery.Format format;
212237
try {
213-
deliveryFormat = Delivery.Format.valueOf(string);
238+
format = Delivery.Format.valueOf(deliveryFormatString);
214239
} catch (final IllegalArgumentException ie) {
215240
throw new XPathException(fnTransform, ErrorCodes.FOXT0002,
216-
": \"" + string + "\" is not a valid " + Options.DELIVERY_FORMAT.name);
241+
": \"" + deliveryFormatString + "\" is not a valid " + Options.DELIVERY_FORMAT.name);
217242
}
218-
return deliveryFormat;
243+
return format;
219244
}
220245

221246
private Optional<Long> getSourceTextChecksum(final MapType options) throws XPathException {
@@ -611,6 +636,7 @@ private float staxExtractXsltVersion(final Source xsltStylesheet) throws XPathEx
611636
}
612637

613638
private static class StringSource extends StreamSource {
639+
614640
private final String string;
615641

616642
public StringSource(final String string) {
@@ -624,6 +650,11 @@ public Reader getReader() {
624650
}
625651

626652
static class SystemProperties {
653+
654+
private SystemProperties() {
655+
super();
656+
}
657+
627658
private static final RetainedStaticContext retainedStaticContext = new RetainedStaticContext(SAXON_CONFIGURATION);
628659

629660
static String get(org.exist.dom.QName qName) {

exist-core/src/main/java/org/exist/xquery/functions/fn/transform/Transform.java

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import org.w3c.dom.Document;
4646
import org.w3c.dom.Node;
4747

48+
import javax.annotation.Nonnull;
4849
import javax.xml.transform.ErrorListener;
4950
import javax.xml.transform.Source;
5051
import javax.xml.transform.TransformerException;
@@ -251,9 +252,9 @@ private XsltExecutable compileExecutable(final Options options) throws XPathExce
251252
*
252253
* @param e the top of the exception stack
253254
* @param defaultErrorCode use this code and its description to fill in blanks in what we finally throw
254-
* @throws XPathException the eventual eXist exception we may throw
255+
* @returns XPathException the eventual eXist exception which the caller is expected to throw
255256
*/
256-
private XPathException originalXPathException(final Throwable e, final ErrorCodes.ErrorCode defaultErrorCode) {
257+
private XPathException originalXPathException(@Nonnull final Throwable e, final ErrorCodes.ErrorCode defaultErrorCode) {
257258
Throwable cause = e;
258259
while (cause != null) {
259260
if (cause instanceof XPathException) {
@@ -395,21 +396,22 @@ private MapType invoke() throws XPathException, SaxonApiException {
395396

396397
private MapType makeResultMap(final Options options, final Delivery primaryDelivery, final Map<URI, Delivery> resultDocuments) throws XPathException {
397398

398-
final MapType outputMap = new MapType(context);
399-
final AtomicValue outputKey;
400-
outputKey = options.baseOutputURI.orElseGet(() -> new StringValue("output"));
399+
try (final MapType outputMap = new MapType(context)) {
400+
final AtomicValue outputKey;
401+
outputKey = options.baseOutputURI.orElseGet(() -> new StringValue("output"));
401402

402-
final Sequence primaryValue = postProcess(outputKey, primaryDelivery.convert(), options.postProcess);
403-
outputMap.add(outputKey, primaryValue);
403+
final Sequence primaryValue = postProcess(outputKey, primaryDelivery.convert(), options.postProcess);
404+
outputMap.add(outputKey, primaryValue);
404405

405-
for (final Map.Entry<URI, Delivery> resultDocument : resultDocuments.entrySet()) {
406-
final AnyURIValue key = new AnyURIValue(resultDocument.getKey());
407-
final Delivery secondaryDelivery = resultDocument.getValue();
408-
final Sequence value = postProcess(key, secondaryDelivery.convert(), options.postProcess);
409-
outputMap.add(key, value);
410-
}
406+
for (final Map.Entry<URI, Delivery> resultDocument : resultDocuments.entrySet()) {
407+
final AnyURIValue key = new AnyURIValue(resultDocument.getKey());
408+
final Delivery secondaryDelivery = resultDocument.getValue();
409+
final Sequence value = postProcess(key, secondaryDelivery.convert(), options.postProcess);
410+
outputMap.add(key, value);
411+
}
411412

412-
return outputMap;
413+
return outputMap;
414+
}
413415
}
414416

415417
private Sequence postProcess(final AtomicValue key, final Sequence before, final Optional<FunctionReference> postProcessingFunction) throws XPathException {

exist-core/src/main/java/org/exist/xquery/functions/fn/transform/TreeUtils.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131

3232
public class TreeUtils {
3333

34+
private TreeUtils() {
35+
super();
36+
}
37+
3438
static StringBuilder pathTo(final Node node) {
3539
final List<Node> priors = new ArrayList<>();
3640
Node prev = node;
@@ -79,7 +83,6 @@ static XdmNode xdmNodeAtIndex(final XdmNode xdmNode, final List<Integer> index)
7983
return xdmNodeAtIndex(child, index.subList(1,index.size()));
8084
}
8185
}
82-
//return xdmNodeAtIndex((XdmNode) xdmNode.itemAt(index.get(0)), index.subList(1,index.size()));
8386
}
8487
return null;
8588
}

0 commit comments

Comments
 (0)