标签: code-generation

Maven中的代码生成

我想从接口自动生成一些java类.我的第一个想法是编写代码生成器,并将其集成为maven插件.

我正在考虑创建一个maven插件,其中包含在构建过​​程中调用的codegen目标.

因此,如果我选择此路由,如何为插件提供要处理的接口?应该在哪里生成文件?

是否有任何现有的插件可以配置为生成默认的类实现?

java plugins maven-2 code-generation

11
推荐指数
1
解决办法
7244
查看次数

从string和int创建哈希

我记得eclipse和idea有这个模板根据其属性自动创建一个对象的hashCode.

如果使用数字和字符串,其中一种策略是这样的.

  return stringValue.hashCode() + intValue * 32;
Run Code Online (Sandbox Code Playgroud)

这样的东西.

我手头没有也没有eclipse或想法,我想创建这样的功能.

编辑

根据答案,我创建了这个迷你课程

    class StringInt {
        private final String s;
        private final int i;

        static StringInt valueOf( String string , int value ) {
            return new StringInt( string, value );
        }
        private StringInt( String string, int value ) {
            this.s = string;
            this.i = value;
        }
        public boolean equals( Object o ) {
            if( o != null && o instanceof StringInt ){
                StringInt other = ( StringInt ) o;
                return this.s …
Run Code Online (Sandbox Code Playgroud)

java eclipse hash code-generation intellij-idea

11
推荐指数
1
解决办法
2万
查看次数

javascript dom,如何处理"特殊属性"与属性?

问题是是否使用属性或属性.

没有发现这个记录,所以进行了一些测试(铬12):

property <=>属性

accept, alt, formMethod, formTarget, id, name, placeholder, type, maxlength, size
form: method, name, target, action, enctype
  • 可以设置属性或属性
  • 将反映属性或属性
  • 异常1:如果form属性首先查找该名称的元素(!)
  • 异常2:action属性使用value重写自身,将set value传递给attribute
  • 异常3:enctype维护其完整性,但将set值传递给attribute

property <= attribute

value, autofocus, checked, disabled, formNoValidate, multiple, required
  • 设置属性对属性没有影响
  • setting属性也设置属性

property =>属性

indeterminate
  • setting属性也设置属性
  • 设置属性对属性没有影响

propetry> <属性

defaultValue, validity, defaultChecked, readOnly
form: novalidate
  • 设置属性或属性对另一个没有影响


对我来说,这似乎很随意.

给出一个随机属性/值来应用于一个元素,这里是我提出的最好的规则(根据Tim Down(谢谢!)修改):

  • if class,write with classList,read with classNameproperty

  • 如果一个表单,总是使用属性读取(并且要小心)

  • 如果typeof element[propName] != "undefined",使用财产,即,element[attr]=val

  • 否则,使用属性,即 element.setAttribute(attr,val)

这甚至接近正确吗?

注意:有趣的是,如果你有一个名为"novalidate"的元素的表单,是否可以访问novalidate表单本身的属性?

javascript dom code-generation

11
推荐指数
1
解决办法
1369
查看次数

如何将任意字符串转换为Java标识符?

我需要转换任意字符串:

  • 带空格的字符串
  • 100stringsstartswithnumber
  • 字符串€有%的特别†字符/ \!
  • [空字符串]

到有效的Java标识符:

  • string_with_spaces
  • _100stringsstartswithnumber
  • string_with_special_characters___
  • _

是否有现有的工具可用于此任务?

有了这么多Java源代码重构/生成框架,人们会认为这应该是非常常见的任务.

java string code-generation identifier

11
推荐指数
1
解决办法
5660
查看次数

JSON模式到Javascript类型的对象

是否有任何库可以从JSON模式生成Javascript类型的对象(JS函数)?基本上是这个http://code.google.com/p/jsonschema2pojo/的等效JS版本.谢谢.

编辑:

从...开始 :

{
    "description": "An entity",
    "type":"object",
    "properties": {
        "geometries": {"type": "array",
            "items": {
                "$ref" : "geometry"
             }
          }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想为我生成一些像这样的代码

function Entity {
    this.geometries;
}
Run Code Online (Sandbox Code Playgroud)

显然,使用$ ref等模式可能会更复杂.我希望这会给出这个想法.

javascript json code-generation

11
推荐指数
1
解决办法
5101
查看次数

CodeDom有官方替代品吗?

我正在寻找与语言无关(至少在某些范围内)源代码生成的System.CodeDom命名空间,并且我发现了一些阻止使用的信息CodeDom.

我认为这篇早期博客文章中描述的一些遗漏现在已经修复,而且CodeDom似乎没有提供创建switch语句的方法的事实仍然允许 - 性能较差? - 没有弄乱生成类型的公共接口的变通方法.这同样适用于自动C#属性和集合初始值设定项.

但是,其他遗漏实际上无法解决,例如无法创建终结器,无法声明扩展方法,或者缺乏对通用引用类型约束的直接支持.

请注意,CodeSnippetTypeMember通过任何其他方式使用或注入文字源代码片段的建议解决方案并不令人满意,因为它们不是与语言无关的 - 从而消除了整个使用点CodeDom而不是String.Format文字代码片段.

最后,甚至在这个SO问题中建议"CodeDom是失败的,表达树(或者更确切地说是"语句"树)是前进的方式" - 尽管没有任何解释如何从表达式树中实际获取任何源代码(除了不能用表达式树声明类的限制之外.

CodeDom仍然是生成源代码的首选方法,还是当前的BCL提供了一个我想不到的名称的任何模糊替换?

.net code-generation codedom

11
推荐指数
1
解决办法
3021
查看次数

hosts标识在t4模板中表示什么?

<#@ template debug="false" hostspecific="false" language="C#" #>
Run Code Online (Sandbox Code Playgroud)

hosts特有属性在这里表示什么.

.net t4 code-generation

11
推荐指数
2
解决办法
1980
查看次数

如何从Swagger 1.2规范生成C#客户端?

每个平台似乎都有数以百万计的选择,但我很难找到一个简单的C#解决方案.我发现的所有这些似乎给了我麻烦:要么他们根本不工作(例如http://swaggercodegen.azurewebsites.net/),要么只支持2.0(例如AutoRest和NSwag).一半的工具甚至不清楚它们支持的版本:-(

我知道官方工具,但这需要JDK 7,这对我来说当前不是一个选择.

在绝望中我甚至尝试将swagger规范转换为2.0,但是我试过的一半转换工具不起作用,给出了相互矛盾的建议,或者我无法弄清楚如何使用(我发现自己很快陷入了nodejs. ..这真的是一个勇敢的新世界吗?!带回WSDL ;-)).

.net c# code-generation swagger

11
推荐指数
1
解决办法
2万
查看次数

如何将 OpenAPI 规范 (Swagger 2.0) 转换为 proto3?

我已经进行了广泛的谷歌搜索,但找不到一个好的工具来做到这一点。我能找到的最接近的是https://github.com/googleapis/gnostic,它允许将 OpenAPI 描述 (swagger.yaml) 转换为 .pb 文件或 .json 文件。我想知道是否有任何工具可以将此 .pb 文件转换为 .proto proto3 文件?

我也试过https://github.com/NYTimes/openapi2proto但不幸的是有一些情况没有正确处理。

在此先感谢您的帮助!

code-generation protocol-buffers openapi

11
推荐指数
1
解决办法
1798
查看次数

生成 Spring 代码时如何将 OpenAPI“oneOf”属性与 openapi-generator-maven-plugin 一起使用

我正在开发一个带有 Angular 前端和 RESTful Spring Boot 后端的应用程序

我从 org.openapitools找到了这个非常方便的 maven 插件openapi-generator-maven-plugin。凭借其代码生成功能,它有助于在我们的 API 的前端和后端之间实施“合同优先”的方法。但是我们的 swagger 文件在 requestBody 和 responseBody 定义中使用了“oneOf”属性。我试图从中生成 Spring 代码,但生成的 Java 类缺少导入:

import com.pack.api.dto.OneOfLatteCoffeAmericanoCoffe;
import com.pack.api.dto.UNKNOWN_BASE_TYPE;
Run Code Online (Sandbox Code Playgroud)

是否可以配置插件以使用 Swagger 的 oneOf 属性?我正在使用 Spring Boot 2.3.1、Swagger 3.0 和 Openapi-generator-maven-plugin 4.3

code-generation maven-plugin spring-boot openapi-generator

11
推荐指数
3
解决办法
8431
查看次数