Skip to content

Commit beff77f

Browse files
Enhance PListWriter
1 parent 13419ee commit beff77f

File tree

1 file changed

+27
-14
lines changed

1 file changed

+27
-14
lines changed

src/jdk.jpackage/macosx/classes/jdk/jpackage/internal/util/PListWriter.java

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
import static jdk.jpackage.internal.util.XmlUtils.toXmlConsumer;
2828

2929
import java.io.IOException;
30-
30+
import java.util.Collection;
31+
import java.util.List;
32+
import java.util.Optional;
3133
import javax.xml.stream.XMLStreamException;
3234
import javax.xml.stream.XMLStreamWriter;
3335

@@ -39,30 +41,41 @@ public static void writeBoolean(XMLStreamWriter xml, String key, boolean value)
3941
xml.writeEmptyElement(Boolean.toString(value));
4042
}
4143

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+
4251
public static void writeString(XMLStreamWriter xml, String key, Object value)
4352
throws XMLStreamException {
4453
writeKey(xml, key);
4554
writeString(xml, value);
4655
}
4756

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)
4965
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+
}
5674
}
5775

5876
public static void writeStringArray(XMLStreamWriter xml, String key, Object... values)
5977
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));
6679
}
6780

6881
public static void writeDict(XMLStreamWriter xml, XmlConsumer content)

0 commit comments

Comments
 (0)