function generateJavaTypeEquivalent()

in build-tools/scraper.js [103:162]


function generateJavaTypeEquivalent(currentType, prop) {
    if (prop.hasOwnProperty('type')) {
        // if it's a primitive type, then just map to the java equivalent
        var type = primitiveObjectTypes.hasOwnProperty(prop.type) ? primitiveObjectTypes[prop.type] : prop.type;

        // if the property is optional, it is nullable
        if (prop.optional && primitiveOptionalObjectTypes.hasOwnProperty(prop.type)) {
            type = primitiveOptionalObjectTypes[prop.type];
        }

        if (prop.type == 'array') {
            if (prop.items.hasOwnProperty('$ref')) {
                if (currentType != prop.items.$ref) {
                    addDependencyIfNotGenerated(prop.items.$ref);
                }
                type = 'List<' + prop.items.$ref + '>';
            } else {
                type = getAnonymousTypeName();
                var typeDef = {
                    id: type,
                    type: prop.items.type,
                    properties: prop.items.properties
                };

                type = 'List<' + type + '>';

                anonymousTypesToGenerate.push(typeDef);

            }
        }

        return type;
    } else {
        var typeDefinition = findTypeDefinition(resolveName(prop.$ref));

        if (!isPrimitiveOrArray(typeDefinition.type)) {
            if (typeDefinition.type != currentType) {
                addDependencyIfNotGenerated(prop.$ref);
            }
            return prop.$ref;
        } else {
            var type = typeDefinition.type;
            var resolvedType = primitiveObjectTypes[type] || type;

            if (prop.optional) {
                if (primitiveOptionalObjectTypes.hasOwnProperty(type)) {
                    resolvedType = primitiveOptionalObjectTypes[type];
                }
            }

            if (type == 'array') {
                addDependencyIfNotGenerated(typeDefinition.items.$ref);
                return 'List<' + typeDefinition.items.$ref + '>';
            }

            return resolvedType;
        }

    }
}