• 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

42.86
/exist-core/src/main/java/org/exist/xmldb/function/LocalXmldbCollectionFunction.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.xmldb.function;
25

26
import org.exist.collections.Collection;
27
import org.exist.collections.triggers.TriggerException;
28
import org.exist.security.PermissionDeniedException;
29
import org.exist.storage.DBBroker;
30
import org.exist.storage.txn.Txn;
31
import org.exist.util.LockException;
32
import org.exist.util.SyntaxException;
33
import com.evolvedbinary.j8fu.function.TriFunctionE;
34
import org.xmldb.api.base.ErrorCodes;
35
import org.xmldb.api.base.XMLDBException;
36

37
import java.io.IOException;
38

39
/**
40
 * Specialisation of FunctionE which deals with
41
 * local XMLDB operations; Predominantly converts exceptions
42
 * from the database into XMLDBException types
43
 *
44
 * @author <a href="mailto:adam.retter@googlemail.com">Adam Retter</a>
45
 */
46
@FunctionalInterface
47
public interface LocalXmldbCollectionFunction<R> extends TriFunctionE<Collection, DBBroker, Txn, R, XMLDBException> {
48

49
    @Override
50
    default R apply(final org.exist.collections.Collection collection, final DBBroker broker, final Txn transaction) throws XMLDBException {
51
        try {
52
            return applyXmldb(collection, broker, transaction);
1✔
53
        } catch(final PermissionDeniedException e) {
1✔
54
            throw new XMLDBException(ErrorCodes.PERMISSION_DENIED, e.getMessage(), e);
1✔
55
        } catch(final LockException e) {
×
56
            throw new XMLDBException(ErrorCodes.COLLECTION_CLOSED, e.getMessage(), e);
×
57
        } catch(final TriggerException | IOException | SyntaxException e) {
×
58
            throw new XMLDBException(ErrorCodes.UNKNOWN_ERROR, e.getMessage(), e);
×
59
        }
60
    }
61

62
    /**
63
     * Signature for lambda function which takes a collection
64
     *
65
     * @param collection The database collection
66
     * @param broker The database broker for the XMLDB function
67
     * @param transaction The transaction for the XMLDB function
68
     *
69
     * @return the result of apply the function.
70
     *
71
     * @throws XMLDBException if an error occurs whilst applying the function
72
     * @throws PermissionDeniedException if the user has insufficient permissions
73
     * @throws LockException if an error occurs whilst locking a collection or document
74
     * @throws TriggerException if a  trigger raises an error
75
     * @throws IOException if an IO error occurs
76
     * @throws SyntaxException if a syntax error occurs
77
     */
78
    R applyXmldb(org.exist.collections.Collection collection, final DBBroker broker, final Txn transaction)
79
            throws XMLDBException, PermissionDeniedException, LockException, TriggerException, IOException, SyntaxException;
80
}
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