InputDefinitionToDataModelMapper.java 1.8 KB
Newer Older
1 2 3
package com.kobylynskyi.graphql.codegen.mapper;

import com.kobylynskyi.graphql.codegen.model.MappingConfig;
4
import com.kobylynskyi.graphql.codegen.model.definitions.ExtendedInputObjectTypeDefinition;
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

import java.util.HashMap;
import java.util.Map;

import static com.kobylynskyi.graphql.codegen.model.DataModelFields.*;

/**
 * Map input type definition to a Freemarker data model
 *
 * @author kobylynskyi
 */
public class InputDefinitionToDataModelMapper {

    /**
     * Map input type definition to a Freemarker data model
     *
21 22
     * @param mappingConfig Global mapping configuration
     * @param definition    Definition of input type including base definition and its extensions
23 24
     * @return Freemarker data model of the GraphQL type
     */
25
    public static Map<String, Object> map(MappingConfig mappingConfig, ExtendedInputObjectTypeDefinition definition) {
26
        Map<String, Object> dataModel = new HashMap<>();
27 28
        // type/enum/input/interface/union classes do not require any imports
        dataModel.put(PACKAGE, MapperUtils.getModelPackageName(mappingConfig));
29
        dataModel.put(CLASS_NAME, MapperUtils.getClassNameWithPrefixAndSuffix(mappingConfig, definition));
30
        dataModel.put(JAVA_DOC, definition.getJavaDoc());
31 32
        dataModel.put(NAME, definition.getName());
        dataModel.put(FIELDS, InputValueDefinitionToParameterMapper.map(mappingConfig, definition.getValueDefinitions(), definition.getName()));
33
        dataModel.put(BUILDER, mappingConfig.getGenerateBuilder());
A
Alberto Valiña 已提交
34 35
        dataModel.put(EQUALS_AND_HASH_CODE, mappingConfig.getGenerateEqualsAndHashCode());
        dataModel.put(TO_STRING, mappingConfig.getGenerateToString());
36
        dataModel.put(TO_STRING_FOR_REQUEST, mappingConfig.getGenerateRequests());
37 38 39 40
        return dataModel;
    }

}