Class DataModelMapper

java.lang.Object
io.github.besi97.graphql.codegen.mapper.DataModelMapper
Direct Known Subclasses:
JavaDataModelMapper, KotlinDataModelMapper

public abstract class DataModelMapper extends Object
Generic mapper for all languages
  • Constructor Details

    • DataModelMapper

      public DataModelMapper()
  • Method Details

    • getModelClassNameWithPrefixAndSuffix

      public String getModelClassNameWithPrefixAndSuffix(MappingContext mappingContext, ExtendedDefinition<?,?> extendedDefinition)
      Generates a model class name including prefix and suffix (if any)
      Parameters:
      mappingContext - Global mapping context, record enum type
      extendedDefinition - GraphQL extended definition
      Returns:
      Class name of GraphQL model node
    • getModelClassNameWithPrefixAndSuffix

      public static String getModelClassNameWithPrefixAndSuffix(MappingContext mappingContext, String definitionName)
      Generates a model class name including prefix and suffix (if any)
      Parameters:
      mappingContext - Global mapping context
      definitionName - GraphQL node name
      Returns:
      Class name of GraphQL model node
    • getModelPackageName

      public static String getModelPackageName(MappingContext mappingContext)
      Get java package name for model class.
      Parameters:
      mappingContext - Global mapping context
      Returns:
      model package name if present. Generic package name otherwise
    • getImports

      public static Set<String> getImports(MappingContext mappingContext, String packageName)
      Returns imports required for a generated class: - model package name - generic package name
      Parameters:
      mappingContext - Global mapping context
      packageName - Package name of the generated class which will be ignored
      Returns:
      all imports required for a generated class
    • capitalizeIfRestricted

      public abstract String capitalizeIfRestricted(MappingContext mappingContext, String fieldName)
      Capitalize field name if it is language-restricted. Examples: * 'class' becomes 'Class' * 'int' becomes 'Int'
      Parameters:
      fieldName - any string
      mappingContext - Global mapping context
      Returns:
      capitalized value if it is restricted in java/scala/kotlin/etc, same value as parameter otherwise
    • capitalizeMethodNameIfRestricted

      public abstract String capitalizeMethodNameIfRestricted(MappingContext mappingContext, String methodName)
      Capitalize method name if it is language-restricted. Examples: * 'getClass' becomes 'GetClass' * 'wait' becomes 'Wait' * 'this' becomes 'This'
      Parameters:
      methodName - any string
      mappingContext - Global mapping context
      Returns:
      capitalized value if it is restricted in java/scala/kotlin/etc, same value as parameter otherwise