• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

evolvedbinary / elemental / 982

29 Apr 2025 08:34PM UTC coverage: 56.409% (+0.007%) from 56.402%
982

push

circleci

adamretter
[feature] Improve README.md badges

28451 of 55847 branches covered (50.94%)

Branch coverage included in aggregate %.

77468 of 131924 relevant lines covered (58.72%)

0.59 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

66.67
/exist-core/src/main/java/org/exist/xslt/XsltURIResolverHelper.java
1
/*
2
 * Elemental
3
 * Copyright (C) 2024, Evolved Binary Ltd
4
 *
5
 * admin@evolvedbinary.com
6
 * https://www.evolvedbinary.com | https://www.elemental.xyz
7
 *
8
 * Use of this software is governed by the Business Source License 1.1
9
 * included in the LICENSE file and at www.mariadb.com/bsl11.
10
 *
11
 * Change Date: 2028-04-27
12
 *
13
 * On the date above, in accordance with the Business Source License, use
14
 * of this software will be governed by the Apache License, Version 2.0.
15
 *
16
 * Additional Use Grant: Production use of the Licensed Work for a permitted
17
 * purpose. A Permitted Purpose is any purpose other than a Competing Use.
18
 * A Competing Use means making the Software available to others in a commercial
19
 * product or service that: substitutes for the Software; substitutes for any
20
 * other product or service we offer using the Software that exists as of the
21
 * date we make the Software available; or offers the same or substantially
22
 * similar functionality as the Software.
23
 */
24
package org.exist.xslt;
25

26
import org.exist.repo.PkgXsltModuleURIResolver;
27
import org.exist.storage.BrokerPool;
28
import org.exist.util.EXistURISchemeURIResolver;
29
import org.exist.util.URIResolverHierarchy;
30

31
import javax.annotation.Nullable;
32
import javax.xml.transform.URIResolver;
33
import java.util.ArrayList;
34
import java.util.List;
35

36
/**
37
 * Utilities for XSLT URI Resolution.
38
 *
39
 * @author <a href="mailto:adam@evolvedbinary.com">Adam Retter</a>
40
 */
41
public class XsltURIResolverHelper {
×
42

43
    /**
44
     * Get a URI Resolver for XSLT Modules.
45
     *
46
     * @param brokerPool the database
47
     * @param defaultResolver the default fallback resolver, or null
48
     * @param base the URI base, or null
49
     * @param avoidSelf true to avoid nesting {@link URIResolverHierarchy}
50
     *
51
     * @return the URIResolver, or null if there is no resolver
52
     */
53
    public static @Nullable URIResolver getXsltURIResolver(final BrokerPool brokerPool,
54
            @Nullable final URIResolver defaultResolver, @Nullable final String base, final boolean avoidSelf) {
55
        final List<URIResolver> resolvers = new ArrayList<>();
1✔
56

57
        if (base != null) {
1!
58
            // database resolver
59
            resolvers.add(new EXistURISchemeURIResolver(new EXistURIResolver(brokerPool, base, false)));
1✔
60
        }
61

62
        // EXpath Pkg resolver
63
        brokerPool.getExpathRepo().map(repo -> resolvers.add(new PkgXsltModuleURIResolver(repo)));
1✔
64

65
        // default resolver
66
        if (defaultResolver != null) {
1!
67
            if (avoidSelf) {
1!
68
                if (!defaultResolver.getClass().getName().equals(URIResolverHierarchy.class.getName())) {
1!
69
                    resolvers.add(defaultResolver);
1✔
70
                }
71
            } else {
1✔
72
                resolvers.add(defaultResolver);
×
73
            }
74
        }
75

76
        if (resolvers.size() > 0) {
1!
77
            return new URIResolverHierarchy(resolvers);
1✔
78
        } else {
79
            return null;
×
80
        }
81
    }
82
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc