aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/net/fabricmc
diff options
context:
space:
mode:
authormodmuss50 <modmuss50@gmail.com>2021-04-02 19:30:43 +0100
committerGitHub <noreply@github.com>2021-04-02 19:30:43 +0100
commit98731532d57d31e3084ef932cce2435d872772c2 (patch)
tree30fe1d777a20fcb6ea20c5242bf6bde2846b478b /src/main/java/net/fabricmc
parent93afc7574d01e260e4219d8c8a17c0880042adf7 (diff)
downloadarchitectury-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.java12
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));