@@ -90,64 +90,41 @@ public static final Sequence javaObjectToXPath(Object obj, XQueryContext context
90
90
}
91
91
92
92
public static final Sequence javaObjectToXPath (Object obj , XQueryContext context ,
93
- boolean expandChars , final Expression expression ) throws XPathException {
93
+ boolean expandChars , final Expression expression ) throws XPathException {
94
94
95
- switch (obj ) {
96
- case null -> {
97
- //return Sequence.EMPTY_SEQUENCE;
98
- return null ;
99
- //return Sequence.EMPTY_SEQUENCE;
100
- }
101
- case Sequence sequence -> {
102
- return sequence ;
103
- }
104
- case String s -> {
105
- final StringValue v = new StringValue (expression , s );
106
- return (expandChars ? v .expand () : v );
107
- }
108
- case Boolean b -> {
109
- return BooleanValue .valueOf (b );
110
- }
111
- case Float v -> {
112
- return new FloatValue (expression , v );
113
- }
114
- case Double v -> {
115
- return new DoubleValue (expression , v );
116
- }
117
- case Short aShort -> {
118
- return new IntegerValue (expression , aShort , Type .SHORT );
119
- }
120
- case Integer integer -> {
121
- return new IntegerValue (expression , integer , Type .INT );
122
- }
123
- case Long l -> {
124
- return new IntegerValue (expression , l , Type .LONG );
125
- }
126
- case BigInteger bigInteger -> {
127
- return new IntegerValue (expression , bigInteger );
128
- }
129
- case BigDecimal bigDecimal -> {
130
- return new DecimalValue (expression , bigDecimal );
131
- }
132
- case byte [] bytes -> {
133
- return BinaryValueFromInputStream .getInstance (context , new Base64BinaryValueType (), new UnsynchronizedByteArrayInputStream (bytes ), expression );
95
+ return switch (obj ) {
96
+ case null -> null ; //return Sequence.EMPTY_SEQUENCE;
97
+ case Sequence sequence -> sequence ;
98
+ case String stringValue -> {
99
+ final StringValue v = new StringValue (expression , stringValue );
100
+ yield (expandChars ? v .expand () : v );
134
101
}
102
+ case Boolean booleanValue -> BooleanValue .valueOf (booleanValue );
103
+ case Float floatValue -> new FloatValue (expression , floatValue );
104
+ case Double doubleValue -> new DoubleValue (expression , doubleValue );
105
+ case Short shortValue -> new IntegerValue (expression , shortValue , Type .SHORT );
106
+ case Integer integerValue -> new IntegerValue (expression , integerValue , Type .INT );
107
+ case Long longValue -> new IntegerValue (expression , longValue , Type .LONG );
108
+ case BigInteger bigInteger -> new IntegerValue (expression , bigInteger );
109
+ case BigDecimal bigDecimal -> new DecimalValue (expression , bigDecimal );
110
+ case byte [] bytes ->
111
+ BinaryValueFromInputStream .getInstance (context , new Base64BinaryValueType (),
112
+ new UnsynchronizedByteArrayInputStream (bytes ), expression );
135
113
case ResourceSet resourceSet -> {
136
114
final Sequence seq = new AVLTreeNodeSet ();
137
115
try {
138
116
final DBBroker broker = context .getBroker ();
139
- for (final ResourceIterator it = (( ResourceSet ) obj ) .getIterator (); it .hasMoreResources (); ) {
117
+ for (final ResourceIterator it = resourceSet .getIterator (); it .hasMoreResources (); ) {
140
118
seq .add (getNode (broker , (XMLResource ) it .nextResource (), expression ));
141
119
}
142
120
} catch (final XMLDBException xe ) {
143
121
throw new XPathException (expression , "Failed to convert ResourceSet to node: " + xe .getMessage ());
144
122
}
145
- return seq ;
123
+ yield seq ;
146
124
147
125
}
148
- case XMLResource xmlResource -> {
149
- return getNode (context .getBroker (), xmlResource , expression );
150
- }
126
+ case XMLResource xmlResource -> getNode (context .getBroker (), xmlResource , expression );
127
+
151
128
case Node node -> {
152
129
context .pushDocumentContext ();
153
130
final DOMStreamer streamer = (DOMStreamer ) SerializerPool .getInstance ().borrowObject (DOMStreamer .class );
@@ -156,16 +133,14 @@ public static final Sequence javaObjectToXPath(Object obj, XQueryContext context
156
133
builder .startDocument ();
157
134
final DocumentBuilderReceiver receiver = new DocumentBuilderReceiver (expression , builder );
158
135
streamer .setContentHandler (receiver );
159
- streamer .serialize (( Node ) obj , false );
160
- if (obj instanceof Document ) {
161
- return builder .getDocument ();
136
+ streamer .serialize (node , false );
137
+ if (node instanceof Document ) {
138
+ yield builder .getDocument ();
162
139
} else {
163
- return builder .getDocument ().getNode (1 );
140
+ yield builder .getDocument ().getNode (1 );
164
141
}
165
142
} catch (final SAXException e ) {
166
- throw new XPathException (expression ,
167
- "Failed to transform node into internal model: "
168
- + e .getMessage ());
143
+ throw new XPathException (expression , "Failed to transform node into internal model: " + e .getMessage ());
169
144
} finally {
170
145
context .popDocumentContext ();
171
146
SerializerPool .getInstance ().returnObject (streamer );
@@ -185,7 +160,7 @@ public static final Sequence javaObjectToXPath(Object obj, XQueryContext context
185
160
for (Object o : objects ) {
186
161
seq .add ((Item ) javaObjectToXPath (o , context , expandChars , expression ));
187
162
}
188
- return seq ;
163
+ yield seq ;
189
164
190
165
}
191
166
case NodeList nodeList -> {
@@ -197,20 +172,17 @@ public static final Sequence javaObjectToXPath(Object obj, XQueryContext context
197
172
final DocumentBuilderReceiver receiver = new DocumentBuilderReceiver (expression , builder );
198
173
streamer .setContentHandler (receiver );
199
174
final ValueSequence seq = new ValueSequence ();
200
- final NodeList nl = (NodeList ) obj ;
201
175
int last = builder .getDocument ().getLastNode ();
202
- for (int i = 0 ; i < nl .getLength (); i ++) {
203
- final Node n = nl .item (i );
176
+ for (int i = 0 ; i < nodeList .getLength (); i ++) {
177
+ final Node n = nodeList .item (i );
204
178
streamer .serialize (n , false );
205
179
final NodeImpl created = builder .getDocument ().getNode (last + 1 );
206
180
seq .add (created );
207
181
last = builder .getDocument ().getLastNode ();
208
182
}
209
- return seq ;
183
+ yield seq ;
210
184
} catch (final SAXException e ) {
211
- throw new XPathException (expression ,
212
- "Failed to transform node into internal model: "
213
- + e .getMessage ());
185
+ throw new XPathException (expression , "Failed to transform node into internal model: " + e .getMessage ());
214
186
} finally {
215
187
context .popDocumentContext ();
216
188
SerializerPool .getInstance ().returnObject (streamer );
@@ -230,13 +202,12 @@ public static final Sequence javaObjectToXPath(Object obj, XQueryContext context
230
202
for (Object arrayItem : array ) {
231
203
seq .add ((Item ) javaObjectToXPath (arrayItem , context , expandChars , expression ));
232
204
}
233
- return seq ;
205
+ yield seq ;
234
206
235
207
}
236
- default -> {
237
- return new JavaObjectValue (obj );
238
- }
239
- }
208
+ default -> new JavaObjectValue (obj );
209
+
210
+ };
240
211
}
241
212
242
213
public static final int javaClassToXPath (Class <?> clazz ) {
0 commit comments