diff options
author | modmuss50 <modmuss50@gmail.com> | 2021-04-02 19:30:43 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-02 19:30:43 +0100 |
commit | 98731532d57d31e3084ef932cce2435d872772c2 (patch) | |
tree | 30fe1d777a20fcb6ea20c5242bf6bde2846b478b /src/main/java/net/fabricmc | |
parent | 93afc7574d01e260e4219d8c8a17c0880042adf7 (diff) | |
download | architectury-loom-98731532d57d31e3084ef932cce2435d872772c2.tar.gz architectury-loom-98731532d57d31e3084ef932cce2435d872772c2.tar.bz2 architectury-loom-98731532d57d31e3084ef932cce2435d872772c2.zip |
Support Groovy 3's QName in GroovyXmlUtil (#379)
Diffstat (limited to 'src/main/java/net/fabricmc')
-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)); |