Vous pouvez utiliser la fonction d'exécution mixin
de groovy pour mixer de façon permanente dans la catégorie. Class.mixin ajoute les méthodes applicables dans la catégorie à la métaClasse de la classe. Appliquez-le aux classes et aux interfaces qui apparaissent comme le premier paramètre de chaque méthode de catégorie, et la catégorie sera disponible sans enfermer le code dans un bloc use(DOMCategory)
.
Exemple:
import org.w3c.dom.*
import groovy.xml.DOMBuilder
import groovy.xml.dom.DOMCategory
[Node, NodeList, NamedNodeMap, DOMCategory.NodesHolder]*.mixin DOMCategory
def sampleXml = '''
<sample>
<someNode anAttribute='foo'>bar</someNode>
</sample>
'''
def sample = DOMBuilder.parse(new StringReader(sampleXml)).documentElement
println sample.someNode*.tagName
println sample.someNode[0].'@anAttribute'
println sample.someNode[0].attributes['anAttribute']
donne:
[someNode]
foo
foo
Pouvez-vous mettre ce que vous avez essayé c'est unsatisfatory dans la question? –