27
27
import static jdk .jpackage .internal .util .XmlUtils .toXmlConsumer ;
28
28
29
29
import java .io .IOException ;
30
-
30
+ import java .util .Collection ;
31
+ import java .util .List ;
32
+ import java .util .Optional ;
31
33
import javax .xml .stream .XMLStreamException ;
32
34
import javax .xml .stream .XMLStreamWriter ;
33
35
@@ -39,30 +41,41 @@ public static void writeBoolean(XMLStreamWriter xml, String key, boolean value)
39
41
xml .writeEmptyElement (Boolean .toString (value ));
40
42
}
41
43
44
+ public static void writeBooleanIf (XMLStreamWriter xml , String key , boolean value , boolean expectedValue )
45
+ throws XMLStreamException {
46
+ if (expectedValue == value ) {
47
+ writeBoolean (xml , key , value );
48
+ }
49
+ }
50
+
42
51
public static void writeString (XMLStreamWriter xml , String key , Object value )
43
52
throws XMLStreamException {
44
53
writeKey (xml , key );
45
54
writeString (xml , value );
46
55
}
47
56
48
- public static void writeStringArray (XMLStreamWriter xml , String key , Iterable <?> values )
57
+ public static void writeStringOptional (XMLStreamWriter xml , String key , Optional <?> value )
58
+ throws XMLStreamException {
59
+ if (value .isPresent ()) {
60
+ writeString (xml , key , value .orElseThrow ());
61
+ }
62
+ }
63
+
64
+ public static void writeStringArray (XMLStreamWriter xml , String key , Collection <?> values )
49
65
throws XMLStreamException , IOException {
50
- writeKey (xml , key );
51
- writeArray (xml , toXmlConsumer (() -> {
52
- for (var v : values ) {
53
- writeString (xml , v );
54
- }
55
- }));
66
+ if (!values .isEmpty ()) {
67
+ writeKey (xml , key );
68
+ writeArray (xml , toXmlConsumer (() -> {
69
+ for (var v : values ) {
70
+ writeString (xml , v );
71
+ }
72
+ }));
73
+ }
56
74
}
57
75
58
76
public static void writeStringArray (XMLStreamWriter xml , String key , Object ... values )
59
77
throws XMLStreamException , IOException {
60
- writeKey (xml , key );
61
- writeArray (xml , toXmlConsumer (() -> {
62
- for (var v : values ) {
63
- writeString (xml , v );
64
- }
65
- }));
78
+ writeStringArray (xml , key , List .of (values ));
66
79
}
67
80
68
81
public static void writeDict (XMLStreamWriter xml , XmlConsumer content )
0 commit comments