无法在Xtext中向AbstractJavaValidator添加新的验证器类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了无法在Xtext中向AbstractJavaValidator添加新的验证器类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1827字,纯文字阅读大概需要3分钟。
内容图文
![无法在Xtext中向AbstractJavaValidator添加新的验证器类](/upload/InfoBanner/zyjiaocheng/785/ead9c9b1519e442b9abcde81a90b53a2.jpg)
我这里有一个小问题.即使它与Xtext有关,我认为解决方案可能与java更相关.
我正在使用Xtext创建一个工作正常的语法.对于语法,存在称为BufferValidator的现有验证.它正确定义为
public class BufferValidator extends AbstractSPJavaValidator {
// Validation methods which work fine
}
我又添了一个.
public class FreqValueValidator extends AbstractSPJavaValidator{
// Some new validation methods
}
现在,当我运行项目时,文件夹src-gen /会自动创建,并在名为AbstractSPJavaValidator的文件中包含验证信息.
**Snip**
@ComposedChecks(validators= {gem.demo.validation.BufferValidator.class})
public class AbstractSPJavaValidator extends AbstractDeclarativeValidator {
// Methods here
}
}
显然,我的新验证器未添加到@ComposedChecks验证器列表中.现在如果我自己在文件中添加我的验证器(理想情况下我不应该自动生成此文件),它按预期工作.
知道我在这里可能缺少什么.对于初学者,我在添加新的验证类后重新创建/重新生成语法符号.
解决方法:
我希望我能正确理解你的情况:
BufferValidator是自动生成的Validator,默认情况下只有那些验证有效.你想添加另一个名为FreqValueValidator的Validator,它只在你操作src-gen文件夹中的抽象类时才有效,该文件夹将被下一个构建的文件覆盖.
您可以拆分验证器,并使用@ComposedChecks注释在您的案例中的“主”验证器,BufferValidator中定义它们.在子验证器中,您必须覆盖寄存器方法.它不是必需的,不应该调用super方法,只需将其留空并注释.
BufferValidator:
@ComposedChecks(validators = { FreqValueValidator.class })
public class BufferValidator extends AbstractSPJavaValidator {
// Validation methods which work fine
}
FreqValueValidator:
public class FreqValueValidator extends AbstractDeclarativeValidator {
@Override
@Inject
public void register(EValidatorRegistrar registrar) {
// nothing to do
}
// Some new validation methods
}
我从官方的xtext支持论坛得到了这个解决方案,但遗憾的是没有找到该主题.我正在使用它,它就像一个魅力.我希望我在上面的代码中得到了任何正确的信息,这是未经测试的.但它应该让你去.
内容总结
以上是互联网集市为您收集整理的无法在Xtext中向AbstractJavaValidator添加新的验证器类全部内容,希望文章能够帮你解决无法在Xtext中向AbstractJavaValidator添加新的验证器类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。