• 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

0.0
/exist-core/src/main/java/org/exist/xmlrpc/TupleSerializer.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.xmlrpc;
25

26
import com.evolvedbinary.j8fu.tuple.*;
27
import org.apache.xmlrpc.common.TypeFactory;
28
import org.apache.xmlrpc.common.XmlRpcStreamConfig;
29
import org.apache.xmlrpc.serializer.TypeSerializer;
30
import org.apache.xmlrpc.serializer.TypeSerializerImpl;
31
import org.xml.sax.ContentHandler;
32
import org.xml.sax.SAXException;
33

34
/**
35
 * XML-RPC type serializer for sub-classes of
36
 * {@link com.evolvedbinary.j8fu.tuple.Tuple}.
37
 *
38
 * @author <a href="mailto:adam@evolvedbinary.com">Adam Retter</a>
39
 */
40
class TupleSerializer extends TypeSerializerImpl {
41
    public static final String TUPLE_TAG = "tuple";
42
    public static final String DATA_TAG = "data";
43

44
    private final TypeFactory typeFactory;
45
    private final XmlRpcStreamConfig config;
46

47
    TupleSerializer(final TypeFactory typeFactory, final XmlRpcStreamConfig config) {
×
48
        this.typeFactory = typeFactory;
×
49
        this.config = config;
×
50
    }
×
51

52
    private void writeObject(final ContentHandler handler, final Object object) throws SAXException {
53
        TypeSerializer ts = typeFactory.getSerializer(config, object);
×
54
        if (ts == null) {
×
55
            throw new SAXException("Unsupported Java type: " + object.getClass().getName());
×
56
        }
57
        ts.write(handler, object);
×
58
    }
×
59

60
    private void writeData(final ContentHandler handler, final Object object) throws SAXException {
61
        final Tuple tuple = (Tuple) object;
×
62
        if(tuple instanceof Tuple2) {
×
63
            writeObject(handler, ((Tuple2)tuple)._1);
×
64
            writeObject(handler, ((Tuple2)tuple)._2);
×
65
        } else if(tuple instanceof Tuple3) {
×
66
            writeObject(handler, ((Tuple3)tuple)._1);
×
67
            writeObject(handler, ((Tuple3)tuple)._2);
×
68
            writeObject(handler, ((Tuple3)tuple)._3);
×
69
        } else if(tuple instanceof Tuple4) {
×
70
            writeObject(handler, ((Tuple4)tuple)._1);
×
71
            writeObject(handler, ((Tuple4)tuple)._2);
×
72
            writeObject(handler, ((Tuple4)tuple)._3);
×
73
            writeObject(handler, ((Tuple4)tuple)._4);
×
74
        } else if(tuple instanceof Tuple5) {
×
75
            writeObject(handler, ((Tuple5)tuple)._1);
×
76
            writeObject(handler, ((Tuple5)tuple)._2);
×
77
            writeObject(handler, ((Tuple5)tuple)._3);
×
78
            writeObject(handler, ((Tuple5)tuple)._4);
×
79
            writeObject(handler, ((Tuple5)tuple)._5);
×
80
        } else if(tuple instanceof Tuple6) {
×
81
            writeObject(handler, ((Tuple6) tuple)._1);
×
82
            writeObject(handler, ((Tuple6) tuple)._2);
×
83
            writeObject(handler, ((Tuple6) tuple)._3);
×
84
            writeObject(handler, ((Tuple6) tuple)._4);
×
85
            writeObject(handler, ((Tuple6) tuple)._5);
×
86
            writeObject(handler, ((Tuple6) tuple)._6);
×
87
        } else {
×
88
            throw new SAXException("Unsupported Tuple class: " + tuple.getClass().getName());
×
89
        }
90
    }
×
91

92
    @Override
93
    public void write(final ContentHandler pHandler, Object pObject) throws SAXException {
94
        pHandler.startElement("", VALUE_TAG, VALUE_TAG, ZERO_ATTRIBUTES);
×
95
        pHandler.startElement("", TUPLE_TAG, TUPLE_TAG, ZERO_ATTRIBUTES);
×
96
        pHandler.startElement("", DATA_TAG, DATA_TAG, ZERO_ATTRIBUTES);
×
97
        writeData(pHandler, pObject);
×
98
        pHandler.endElement("", DATA_TAG, DATA_TAG);
×
99
        pHandler.endElement("", TUPLE_TAG, TUPLE_TAG);
×
100
        pHandler.endElement("", VALUE_TAG, VALUE_TAG);
×
101
    }
×
102
}
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