jsonschema2pojo-强制为Enum

时间:2018-07-30 18:36:09

标签: jsonschema2pojo

我知道在大多数情况下(除了一些罕见的情况),在json模式中定义的枚举类型都嵌入在拥有者的类中。我有一个方案,该枚举没有被嵌入,但它被创建为一个单独的类 我想重写此行为,并强制将枚举创建为内部类。这样做的原因是由于在json模式(我无法修改)中,该枚举与其他定义冲突,而另一个定义具有相同的枚举名称,并且其中一个定义丢失。

{
  "$schema": "http://json-schema.org/draft-03/schema#",
  "javaType": "mypackage.Order",
  "type": "object",
  "properties": {
    "@id": {
      "type": "string"
    },
    "property2": {
      "type": "string"
    },
    "property3": {
      "type": "number"
    },
    "property4": {
      "type": "array",
      "items": {
        "$ref": "#/definitions/defintion1"
      }
    }
  },
  "definitions": {
    "defintion1": {
      "$schema": "http://json-schema.org/draft-03/schema#",
      "javaType": "mypackage.order.Definition1",
      "type": "object",
      "properties": {
        "@id": {
          "type": "string"
        },
        "enum1": {
          "enum": [
            "enum1_1",
            "enum1_2",
            "enum1_3"
          ]
        },
        "arrayOfEnums": {
          "type": "array",
          "items": {
            "enum": [
              "enum2_1",
              "enum1_2",
              "enum2_3"
            ]
          }
        }
      }
    }
  }
}

当我运行mvn -U clean install时:我得到enum1作为Definition1的内部类生成,但arrayOfEnums是一个枚举数组,并且该enum作为单独的类生成(它在ArrayOfEnum类中生成) 。如何强制在Definition1类内部生成它?

在另一个json模式文件中,我有另一个ArrayOfEnum定义,该定义有冲突:

{
  ...
  "definition_ArrayOfEnum": {
    "$schema": "http://json-schema.org/draft-03/schema#",
    "javaType": "mypackage.order.ArrayOfEnum",
    "type": "object",
    "properties": {
      "property1": {
        "type": "string"
      }
    }
  }
  ...
}

最后,最后一个定义丢失。我该如何保留两者?如果在第一个定义中,Enum作为内部类生成;没关系的任何解决方法?正如我提到的,由于我不是所有者,所以无法更改json模式

0 个答案:

没有答案