Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
ff7f2b6df3
|
|||
|
2853382889
|
1
.idea/gradle.xml
generated
1
.idea/gradle.xml
generated
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
|
||||
@@ -14,7 +14,7 @@ compileJava {
|
||||
}
|
||||
|
||||
group = "ru.di9"
|
||||
version = "1.1"
|
||||
version = "1.2"
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
|
||||
@@ -56,21 +56,30 @@ public class XmlElement implements Iterable<XmlElement> {
|
||||
return element.hasAttribute(key);
|
||||
}
|
||||
|
||||
public String getAttribute(String key) {
|
||||
return element.getAttribute(key);
|
||||
public Optional<String> getAttribute(String key) {
|
||||
if (element.hasAttribute(key)) {
|
||||
return Optional.of(element.getAttribute(key));
|
||||
} else {
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
||||
public int getAttributeAsInt(String key) {
|
||||
var value = element.getAttribute(key);
|
||||
return StringUtils.isEmpty(value) ? 0 : Integer.parseInt(value);
|
||||
public OptionalInt getAttributeAsInt(String key) {
|
||||
if (element.hasAttribute(key)) {
|
||||
return OptionalInt.of(Integer.parseInt(element.getAttribute(key)));
|
||||
} else {
|
||||
return OptionalInt.empty();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean getAttributeAsBool(String key) {
|
||||
var value = element.getAttribute(key);
|
||||
return !StringUtils.isEmpty(value) && Boolean.parseBoolean(value);
|
||||
public Optional<Boolean> getAttributeAsBool(String key) {
|
||||
if (element.hasAttribute(key)) {
|
||||
return Optional.of(Boolean.parseBoolean(element.getAttribute(key)));
|
||||
} else {
|
||||
return Optional.empty();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("NullableProblems")
|
||||
@Override
|
||||
public Iterator<XmlElement> iterator() {
|
||||
return new XmlElementIterator(element.getChildNodes());
|
||||
|
||||
@@ -34,6 +34,7 @@ class XmlElementTest {
|
||||
assertEquals("root", rootElement.getTagName());
|
||||
}
|
||||
|
||||
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||
@Test
|
||||
void testIterator() {
|
||||
Iterator<XmlElement> iteratorElement = rootElement.iterator();
|
||||
@@ -47,13 +48,22 @@ class XmlElementTest {
|
||||
|
||||
assertEquals(tagName, element.getTagName());
|
||||
switch (element.getTagName()) {
|
||||
case "node_str" -> assertEquals(attr, element.getAttribute("attr"));
|
||||
case "node_int" -> assertEquals(attr, element.getAttributeAsInt("attr"));
|
||||
case "node_bool" -> assertEquals(attr, element.getAttributeAsBool("attr"));
|
||||
case "node_str" -> {
|
||||
assertTrue(element.getAttribute("attr").isPresent());
|
||||
assertEquals(attr, element.getAttribute("attr").get());
|
||||
}
|
||||
case "node_int" -> {
|
||||
assertTrue(element.getAttribute("attr").isPresent());
|
||||
assertEquals(attr, element.getAttributeAsInt("attr").getAsInt());
|
||||
}
|
||||
case "node_bool" -> {
|
||||
assertTrue(element.getAttribute("attr").isPresent());
|
||||
assertEquals(attr, element.getAttributeAsBool("attr").get());
|
||||
}
|
||||
case "empty" -> {
|
||||
assertTrue(StringUtils.isEmpty(element.getValue()));
|
||||
assertFalse(element.hasAttribute("attr"));
|
||||
assertTrue(StringUtils.isEmpty(element.getAttribute("attr")));
|
||||
assertTrue(element.getAttribute("attr").isEmpty());
|
||||
}
|
||||
default -> fail("Unknown tag '%s'".formatted(element.getTagName()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user