json-schema-java-mapper-utils
Advanced tools
+5
-0
| 0.0.3 / 2015-02-06 | ||
| ================== | ||
| * solving issue with list of primitives and fixing trouble with inline ref classes | ||
| 0.0.2 / 2015-02-06 | ||
@@ -3,0 +8,0 @@ ================== |
@@ -1,2 +0,2 @@ | ||
| var Deref, handleArray, handleObject, handlePatternProperties, pascalCase, resolveInnerClass, resolveType, resolveTypeByRef, util, _; | ||
| var Deref, handleArray, handleObject, handlePatternProperties, mapInnerClass, pascalCase, resolveType, resolveTypeByRef, util, _; | ||
@@ -45,20 +45,22 @@ Deref = require('deref'); | ||
| util.mapProperty = function(property, name, annotation, mapping, refMap) { | ||
| var keyRef, keyRefData, objDef, propertyDef, _ref; | ||
| var itemsType, keyRefData, objDef, propertyDef, _ref; | ||
| propertyDef = {}; | ||
| propertyDef.property = {}; | ||
| if (property.items && property.items["$ref"]) { | ||
| keyRef = property.items["$ref"]; | ||
| keyRefData = resolveTypeByRef(keyRef, refMap, name, true); | ||
| keyRefData = resolveTypeByRef(property.items["$ref"], refMap, name, true); | ||
| } else if (property["$ref"]) { | ||
| keyRef = property["$ref"]; | ||
| keyRefData = resolveTypeByRef(keyRef, refMap, name); | ||
| keyRefData = resolveTypeByRef(property["$ref"], refMap, name); | ||
| propertyDef.property.type = keyRefData.type; | ||
| if (keyRefData.innnerSchema.type) { | ||
| property.type = keyRefData.innnerSchema.type; | ||
| } | ||
| } else if (property.patternProperties) { | ||
| propertyDef.patternProperties = []; | ||
| propertyDef.patternProperties = handlePatternProperties(property, name, refMap, keyRefData, mapping, annotation); | ||
| propertyDef.patternProperties = handlePatternProperties(property, name, refMap, mapping, annotation); | ||
| return propertyDef; | ||
| } | ||
| if (keyRefData && keyRefData.innnerSchema.type) { | ||
| property.type = keyRefData.innnerSchema.type; | ||
| } else if (keyRefData && !keyRefData.innnerSchema.type && !property.items) { | ||
| property.type = resolveType(propertyDef.innerClass, name); | ||
| property.properties = keyRefData.innnerSchema; | ||
| propertyDef.innerClass = mapInnerClass(keyRefData.type, property, refMap, mapping); | ||
| } | ||
| propertyDef.property.name = name; | ||
@@ -82,3 +84,6 @@ propertyDef.property.comment = property.description; | ||
| case 'array': | ||
| propertyDef.property.type = handleArray(keyRefData, mapping); | ||
| if (property.items) { | ||
| itemsType = property.items.type; | ||
| } | ||
| propertyDef.property.type = handleArray(keyRefData, itemsType, mapping); | ||
| break; | ||
@@ -108,3 +113,3 @@ case 'object': | ||
| handlePatternProperties = function(property, name, refMap, keyRefData, mapping, annotation) { | ||
| handlePatternProperties = function(property, name, refMap, mapping, annotation) { | ||
| var key, patternProperties, patternProperty, propertyMapped; | ||
@@ -122,3 +127,3 @@ patternProperties = []; | ||
| handleArray = function(keyRefData, mapping) { | ||
| handleArray = function(keyRefData, itemsType, mapping) { | ||
| var auxType, primitiveType; | ||
@@ -133,2 +138,7 @@ auxType = "List"; | ||
| } | ||
| } else { | ||
| primitiveType = mapping[itemsType]; | ||
| if (primitiveType) { | ||
| auxType += "<" + primitiveType + ">"; | ||
| } | ||
| } | ||
@@ -147,3 +157,3 @@ return auxType; | ||
| objectDesc.type = resolveType(property, name); | ||
| innerClass = resolveInnerClass(objectDesc.type, property, refMap, mapping); | ||
| innerClass = mapInnerClass(objectDesc.type, property, refMap, mapping); | ||
| objectDesc.innerClass = innerClass; | ||
@@ -154,3 +164,3 @@ } | ||
| property.properties = keyRefData.innnerSchema; | ||
| objectDesc.innerClass = resolveInnerClass(keyRefData.type, property, refMap, mapping); | ||
| objectDesc.innerClass = mapInnerClass(keyRefData.type, property, refMap, mapping); | ||
| } else { | ||
@@ -198,3 +208,3 @@ objectDesc.type = 'Map'; | ||
| resolveInnerClass = function(name, property, refMap, mapping) { | ||
| mapInnerClass = function(name, property, refMap, mapping) { | ||
| var aux, innerClass; | ||
@@ -201,0 +211,0 @@ innerClass = {}; |
+1
-1
| { | ||
| "name": "json-schema-java-mapper-utils", | ||
| "version": "0.0.2", | ||
| "version": "0.0.3", | ||
| "description": "This is used to convert json-schema to java/groovy files", | ||
@@ -5,0 +5,0 @@ "main": "lib/utils/map-properties.js", |
@@ -37,15 +37,19 @@ Deref = require('deref') | ||
| if property.items and property.items["$ref"] | ||
| keyRef = property.items["$ref"] | ||
| keyRefData = resolveTypeByRef(keyRef, refMap, name, true) | ||
| keyRefData = resolveTypeByRef(property.items["$ref"], refMap, name, true) | ||
| else if property["$ref"] | ||
| keyRef = property["$ref"] | ||
| keyRefData = resolveTypeByRef(keyRef, refMap, name) | ||
| keyRefData = resolveTypeByRef(property["$ref"], refMap, name) | ||
| propertyDef.property.type = keyRefData.type | ||
| if keyRefData.innnerSchema.type | ||
| property.type = keyRefData.innnerSchema.type | ||
| else if property.patternProperties | ||
| propertyDef.patternProperties = [] | ||
| propertyDef.patternProperties = handlePatternProperties(property, name, refMap, keyRefData, mapping, annotation) | ||
| propertyDef.patternProperties = handlePatternProperties(property, name, refMap, mapping, annotation) | ||
| return propertyDef | ||
| #If the schema has type it doesn't need a innerClass | ||
| if keyRefData and keyRefData.innnerSchema.type | ||
| property.type = keyRefData.innnerSchema.type | ||
| else if keyRefData and not keyRefData.innnerSchema.type and not property.items | ||
| property.type = resolveType(propertyDef.innerClass, name) | ||
| property.properties = keyRefData.innnerSchema | ||
| propertyDef.innerClass = mapInnerClass(keyRefData.type, property, refMap, mapping) | ||
| propertyDef.property.name = name | ||
@@ -60,3 +64,4 @@ propertyDef.property.comment = property.description | ||
| when 'array' | ||
| propertyDef.property.type = handleArray( keyRefData, mapping) | ||
| itemsType = property.items.type if property.items | ||
| propertyDef.property.type = handleArray( keyRefData, itemsType, mapping) | ||
| when 'object' | ||
@@ -82,3 +87,3 @@ objDef = handleObject(property, name, refMap, keyRefData, mapping ) | ||
| handlePatternProperties = (property, name, refMap, keyRefData, mapping, annotation) -> | ||
| handlePatternProperties = (property, name, refMap, mapping, annotation) -> | ||
| patternProperties = [] | ||
@@ -94,7 +99,7 @@ for key of property.patternProperties | ||
| handleArray = (keyRefData, mapping) -> | ||
| handleArray = (keyRefData, itemsType, mapping) -> | ||
| auxType = "List" | ||
| if keyRefData and keyRefData.innnerSchema.items isnt undefined | ||
| primitiveType = mapping[keyRefData.innnerSchema.items.type] | ||
| #if property doesn't has title we use primitive types | ||
@@ -105,3 +110,7 @@ if keyRefData.innnerSchema.items.title | ||
| auxType += "<#{primitiveType}>" | ||
| else | ||
| primitiveType = mapping[itemsType] | ||
| auxType += "<#{primitiveType}>" if primitiveType | ||
| auxType | ||
@@ -118,3 +127,3 @@ | ||
| objectDesc.type = resolveType(property, name) | ||
| innerClass = resolveInnerClass(objectDesc.type, property, refMap, mapping) | ||
| innerClass = mapInnerClass(objectDesc.type, property, refMap, mapping) | ||
| objectDesc.innerClass = innerClass | ||
@@ -125,3 +134,3 @@ | ||
| property.properties = keyRefData.innnerSchema | ||
| objectDesc.innerClass = resolveInnerClass(keyRefData.type, property, refMap, mapping) | ||
| objectDesc.innerClass = mapInnerClass(keyRefData.type, property, refMap, mapping) | ||
| else | ||
@@ -151,2 +160,3 @@ objectDesc.type = 'Map' | ||
| resolveType = (schema, propertyName) -> | ||
@@ -162,3 +172,3 @@ type = "" | ||
| resolveInnerClass = (name, property, refMap, mapping) -> | ||
| mapInnerClass = (name, property, refMap, mapping) -> | ||
| innerClass = {} | ||
@@ -165,0 +175,0 @@ #if the property has #ref and title we don't need innerClass |
17719
6.04%265
3.92%