• 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

91.43
/extensions/expath/src/main/java/org/expath/httpclient/model/exist/EXistTreeBuilder.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.expath.httpclient.model.exist;
25

26
import org.apache.http.Header;
27
import org.exist.dom.QName;
28
import org.exist.dom.memtree.DocumentImpl;
29
import org.exist.dom.memtree.MemTreeBuilder;
30
import org.exist.xquery.XQueryContext;
31
import org.expath.httpclient.HeaderSet;
32
import org.expath.httpclient.HttpClientException;
33
import org.expath.httpclient.HttpConstants;
34
import org.expath.httpclient.model.TreeBuilder;
35
import org.expath.tools.ToolsException;
36

37
import javax.xml.XMLConstants;
38

39
/**
40
 * @author <a href="mailto:adam@existsolutions.com">Adam Retter</a>
41
 */
42
public class EXistTreeBuilder implements TreeBuilder {
1✔
43

44
    final MemTreeBuilder builder;
45
    
46
    public EXistTreeBuilder(final XQueryContext context) {
1✔
47
        context.pushDocumentContext();
1✔
48
        builder = context.getDocumentBuilder();
1✔
49
        builder.startDocument();
1✔
50
    }
1✔
51

52
    //TODO EXPath Caller should send QName, otherwise we duplicate code and reduce reuse!
53
    @Override
54
    public void startElem(final String localname) throws ToolsException {
55
        final String prefix = HttpConstants.HTTP_CLIENT_NS_PREFIX;
1✔
56
        final String uri = HttpConstants.HTTP_CLIENT_NS_URI;
1✔
57
        
58
        builder.startElement(new QName(localname, uri, prefix), null);
1✔
59
    }
1✔
60

61
    @Override
62
    public void attribute(final String localname, final CharSequence value) throws ToolsException {
63
        builder.addAttribute(new QName(localname, XMLConstants.NULL_NS_URI), value.toString());
1✔
64
    }
1✔
65

66
    @Override
67
    public void startContent() throws ToolsException {
68
        //TODO this is not needed, it is very saxon specific
69
    }
1✔
70

71
    @Override
72
    public void endElem() throws ToolsException {
73
        builder.endElement();
1✔
74
    }
1✔
75
    
76
    public DocumentImpl close() {
77
        builder.endDocument();
1✔
78
        final DocumentImpl doc = builder.getDocument();
1✔
79
        builder.getContext().popDocumentContext();
1✔
80
        return doc;
1✔
81
    }
82

83
    @Override
84
    public void outputHeaders(HeaderSet headers)
85
            throws HttpClientException
86
    {
87
        for ( Header h : headers ) {
1✔
88
            assert h.getName() != null : "Header name cannot be null";
1!
89
            String name = h.getName().toLowerCase();
1✔
90
            try {
91
                startElem("header");
1✔
92
                attribute("name", name);
1✔
93
                attribute("value", h.getValue());
1✔
94
                //startContent();
95
                endElem();
1✔
96
            }
97
            catch ( ToolsException ex ) {
×
98
                throw new HttpClientException("Error building the header " + name, ex);
×
99
            }
1✔
100
        }
1✔
101
    }
1✔
102

103
}
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