作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Grails 应用程序中,有一个文件夹 grails-app/mongoDomain。在这个文件夹中有几个类也在各种包中。
我想为文件夹 grails-app/mongoDomain 中的所有类添加一个方法“save()”的 GDSL 定义。
我已经成功地将这个方法添加到一个类中,但是在 grails-app/mongoDomain 中的所有类中添加任何方法?.
.
我试过这样做,但没有成功..
def mongoDomainContext = context(pathRegexp: /.*grails-app\/mongoDomain.*/)
contributor(mongoDomainContext) {
method(name: 'save', type: 'void', params: [closure: { }])
}
但是上面的代码没有起作用,正确的方法是什么??
.
.
问候库沙尔
最佳答案
不幸的是,还没有这样的 GDSL 原语。在 Griffon 中,他们有以下使用未记录功能的 GDSL 片段:
['Controller', 'Model', 'View', 'Service'].each { type ->
String artifactPath = type.toLowerCase() + 's'
contributor(ctype: PsiJavaPatterns.psiClass().withName(PlatformPatterns.string().matches(/.*${type}/))) {
def path = psiClass.containingFile.originalFile.virtualFile.path
if (path =~ ".*/*griffon-app/${artifactPath}/.*") {
delegatesTo(findClass("griffon.core.Griffon${type}"))
if (type == 'View') {
addNodeContributions(delegate)
}
}
}
它们匹配类名及其路径,您只需要第二部分,在贡献者调用中。
关于intellij-idea - IDEA GDSL 如何为文件夹中的所有文件(类)添加方法定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8440837/
我是一名优秀的程序员,十分优秀!