diff options
Diffstat (limited to 'src/main/java/net/fabricmc/loom')
| -rw-r--r-- | src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java b/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java index 801cc118..4e587e10 100644 --- a/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java +++ b/src/main/java/net/fabricmc/loom/util/GroovyXmlUtil.java @@ -31,6 +31,8 @@ import java.util.stream.Stream; import groovy.util.Node; import groovy.xml.QName; +import net.fabricmc.loom.util.gradle.GradleSupport; + public final class GroovyXmlUtil { private GroovyXmlUtil() { } @@ -63,9 +65,19 @@ public final class GroovyXmlUtil { return ((QName) nodeName).matches(givenName); } + // New groovy 3 (gradle 7) class + if (GradleSupport.IS_GRADLE_7_OR_NEWER && nodeName.getClass().getName().equals("groovy.namespace.QName")) { + return isSameNameGroovy3(nodeName, givenName); + } + throw new UnsupportedOperationException("Cannot determine if " + nodeName.getClass() + " is the same as a String"); } + // TODO Move out of its own method when requiring gradle 7 + private static boolean isSameNameGroovy3(Object nodeName, String givenName) { + return ((groovy.namespace.QName) nodeName).matches(givenName); + } + public static Stream<Node> childrenNodesStream(Node node) { //noinspection unchecked return (Stream<Node>) (Stream) (((List<Object>) node.children()).stream().filter((i) -> i instanceof Node)); |
