packagecom.kobylynskyi.graphql.codegen.mapper;importcom.kobylynskyi.graphql.codegen.model.MappingConfig;importgraphql.language.InputObjectTypeDefinition;importjava.util.HashMap;importjava.util.Map;importstaticcom.kobylynskyi.graphql.codegen.model.DataModelFields.*;/** * Map input type definition to a Freemarker data model * * @author kobylynskyi */publicclassInputDefinitionToDataModelMapper{/** * Map input type definition to a Freemarker data model * * @param mappingConfig Global mapping configuration * @param typeDefinition GraphQL type definition * @return Freemarker data model of the GraphQL type */publicstaticMap<String,Object>map(MappingConfigmappingConfig,InputObjectTypeDefinitiontypeDefinition){Map<String,Object>dataModel=newHashMap<>();StringpackageName=MapperUtils.getModelPackageName(mappingConfig);dataModel.put(PACKAGE,packageName);dataModel.put(IMPORTS,MapperUtils.getImports(mappingConfig,packageName));dataModel.put(CLASS_NAME,MapperUtils.getClassNameWithPrefixAndSuffix(mappingConfig,typeDefinition));dataModel.put(NAME,typeDefinition.getName());dataModel.put(FIELDS,InputValueDefinitionToParameterMapper.map(mappingConfig,typeDefinition.getInputValueDefinitions()));returndataModel;}}