test_class.declarator: builder
test_class.modifier: private
test_class.original_string: private MapTypeDefinitionBuilder builder;
test_class.type: MapTypeDefinitionBuilder
test_class.var_name: builder
test_class.declarator: stringsField
test_class.modifier: private
test_class.original_string: private VariableElement stringsField;
test_class.type: VariableElement
test_class.var_name: stringsField
test_class.declarator: colorsField
test_class.modifier: private
test_class.original_string: private VariableElement colorsField;
test_class.type: VariableElement
test_class.var_name: colorsField
test_class.declarator: primitiveTypeModelsField
test_class.modifier: private
test_class.original_string: private VariableElement primitiveTypeModelsField;
test_class.type: VariableElement
test_class.var_name: primitiveTypeModelsField
test_class.declarator: modelsField
test_class.modifier: private
test_class.original_string: private VariableElement modelsField;
test_class.type: VariableElement
test_class.var_name: modelsField
test_class.declarator: modelArraysField
test_class.modifier: private
test_class.original_string: private VariableElement modelArraysField;
test_class.type: VariableElement
test_class.var_name: modelArraysField
test_class.file: dubbo-metadata/dubbo-metadata-processor/src/test/java/org/apache/dubbo/metadata/annotation/processing/builder/MapTypeDefinitionBuilderTest.java
test_class.identifier: MapTypeDefinitionBuilderTest
test_class.superclass: extends AbstractAnnotationProcessingTest
test_case.body: @Test
      public void testBuild() {
  
          buildAndAssertTypeDefinition(processingEnv, stringsField,
                  "java.util.Map<java.lang.String,java.lang.String>",
                  "java.lang.String",
                  "java.lang.String",
                  builder);
  
          buildAndAssertTypeDefinition(processingEnv, colorsField,
                  "java.util.SortedMap<java.lang.String,org.apache.dubbo.metadata.annotation.processing.model.Color>",
                  "java.lang.String",
                  "org.apache.dubbo.metadata.annotation.processing.model.Color",
                  builder);
  
          buildAndAssertTypeDefinition(processingEnv, primitiveTypeModelsField,
                  "java.util.NavigableMap<org.apache.dubbo.metadata.annotation.processing.model.Color,org.apache.dubbo.metadata.annotation.processing.model.PrimitiveTypeModel>",
                  "org.apache.dubbo.metadata.annotation.processing.model.Color",
                  "org.apache.dubbo.metadata.annotation.processing.model.PrimitiveTypeModel",
                  builder);
  
          buildAndAssertTypeDefinition(processingEnv, modelsField,
                  "java.util.HashMap<java.lang.String,org.apache.dubbo.metadata.annotation.processing.model.Model>",
                  "java.lang.String",
                  "org.apache.dubbo.metadata.annotation.processing.model.Model",
                  builder);
  
          buildAndAssertTypeDefinition(processingEnv, modelArraysField,
                  "java.util.TreeMap<org.apache.dubbo.metadata.annotation.processing.model.PrimitiveTypeModel,org.apache.dubbo.metadata.annotation.processing.model.Model[]>",
                  "org.apache.dubbo.metadata.annotation.processing.model.PrimitiveTypeModel",
                  "org.apache.dubbo.metadata.annotation.processing.model.Model[]",
                  builder);
      }
test_case.class_method_signature: MapTypeDefinitionBuilderTest.testBuild()
test_case.full_signature: @Test public void testBuild()
test_case.identifier: testBuild
test_case.invocations: buildAndAssertTypeDefinition buildAndAssertTypeDefinition buildAndAssertTypeDefinition buildAndAssertTypeDefinition buildAndAssertTypeDefinition
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testBuild()
focal_class.file: dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/builder/MapTypeDefinitionBuilder.java
focal_class.identifier: MapTypeDefinitionBuilder
focal_class.interfaces: implements DeclaredTypeDefinitionBuilder
focal_class.class_method_signature: MapTypeDefinitionBuilder.accept(ProcessingEnvironment processingEnv, DeclaredType type)
focal_class.full_signature: @Override public boolean accept(ProcessingEnvironment processingEnv, DeclaredType type)
focal_class.identifier: accept
focal_class.modifiers: @Override public
focal_class.parameters: (ProcessingEnvironment processingEnv, DeclaredType type)
focal_class.return: boolean
focal_class.signature: boolean accept(ProcessingEnvironment processingEnv, DeclaredType type)
focal_class.class_method_signature: MapTypeDefinitionBuilder.build(ProcessingEnvironment processingEnv, DeclaredType type, TypeDefinition typeDefinition)
focal_class.full_signature: @Override public void build(ProcessingEnvironment processingEnv, DeclaredType type, TypeDefinition typeDefinition)
focal_class.identifier: build
focal_class.modifiers: @Override public
focal_class.parameters: (ProcessingEnvironment processingEnv, DeclaredType type, TypeDefinition typeDefinition)
focal_class.return: void
focal_class.signature: void build(ProcessingEnvironment processingEnv, DeclaredType type, TypeDefinition typeDefinition)
focal_class.class_method_signature: MapTypeDefinitionBuilder.getPriority()
focal_class.full_signature: @Override public int getPriority()
focal_class.identifier: getPriority
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getPriority()
focal_method.body: @Override
      public void build(ProcessingEnvironment processingEnv, DeclaredType type, TypeDefinition typeDefinition) {
          // Generic Type arguments
          type.getTypeArguments()
                  .stream()
                  .map(typeArgument -> TypeDefinitionBuilder.build(processingEnv, typeArgument)) // build the TypeDefinition from typeArgument
                  .filter(Objects::nonNull)
                  .forEach(typeDefinition.getItems()::add);                              // Add into the declared TypeDefinition
  
      }
focal_method.class_method_signature: MapTypeDefinitionBuilder.build(ProcessingEnvironment processingEnv, DeclaredType type, TypeDefinition typeDefinition)
focal_method.full_signature: @Override public void build(ProcessingEnvironment processingEnv, DeclaredType type, TypeDefinition typeDefinition)
focal_method.identifier: build
focal_method.invocations: forEach filter map stream getTypeArguments build getItems
focal_method.modifiers: @Override public
focal_method.parameters: (ProcessingEnvironment processingEnv, DeclaredType type, TypeDefinition typeDefinition)
focal_method.return: void
focal_method.signature: void build(ProcessingEnvironment processingEnv, DeclaredType type, TypeDefinition typeDefinition)