test_class.declarator: classConverter
test_class.modifier: @Inject
      private
test_class.original_string: @Inject
      private ClassConverter classConverter;
test_class.type: ClassConverter
test_class.var_name: classConverter
test_class.file: artemis-core/src/test/java/org/jnosql/artemis/reflection/ClassConverterTest.java
test_class.identifier: ClassConverterTest
test_case.body: @Test
      public void shouldCreateClassMappingWithEmbeddedClass() {
          ClassMapping classMapping = classConverter.create(Director.class);
          assertEquals("Director", classMapping.getName());
          assertEquals(Director.class, classMapping.getClassInstance());
          assertEquals(5, classMapping.getFields().size());
          assertThat(classMapping.getFieldsName(), containsInAnyOrder("_id", "name", "age", "phones", "movie"));
  
      }
test_case.class_method_signature: ClassConverterTest.shouldCreateClassMappingWithEmbeddedClass()
test_case.full_signature: @Test public void shouldCreateClassMappingWithEmbeddedClass()
test_case.identifier: shouldCreateClassMappingWithEmbeddedClass
test_case.invocations: create assertEquals getName assertEquals getClassInstance assertEquals size getFields assertThat getFieldsName containsInAnyOrder
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void shouldCreateClassMappingWithEmbeddedClass()
focal_class.declarator: LOGGER = Logger.getLogger(ClassConverter.class.getName())
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = Logger.getLogger(ClassConverter.class.getName());
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.declarator: reflections
focal_class.modifier: private
focal_class.original_string: private Reflections reflections;
focal_class.type: Reflections
focal_class.var_name: reflections
focal_class.declarator: writerFactory
focal_class.modifier: private
focal_class.original_string: private FieldWriterFactory writerFactory;
focal_class.type: FieldWriterFactory
focal_class.var_name: writerFactory
focal_class.declarator: readerFactory
focal_class.modifier: private
focal_class.original_string: private FieldReaderFactory readerFactory;
focal_class.type: FieldReaderFactory
focal_class.var_name: readerFactory
focal_class.declarator: instanceSupplierFactory
focal_class.modifier: private
focal_class.original_string: private InstanceSupplierFactory instanceSupplierFactory;
focal_class.type: InstanceSupplierFactory
focal_class.var_name: instanceSupplierFactory
focal_class.file: artemis-core/src/main/java/org/jnosql/artemis/reflection/ClassConverter.java
focal_class.identifier: ClassConverter
focal_class.class_method_signature: ClassConverter.ClassConverter(Reflections reflections)
focal_class.full_signature: @Inject  ClassConverter(Reflections reflections)
focal_class.identifier: ClassConverter
focal_class.modifiers: @Inject
focal_class.parameters: (Reflections reflections)
focal_class.signature:  ClassConverter(Reflections reflections)
focal_class.class_method_signature: ClassConverter.ClassConverter()
focal_class.full_signature:   ClassConverter()
focal_class.identifier: ClassConverter
focal_class.parameters: ()
focal_class.signature:  ClassConverter()
focal_class.class_method_signature: ClassConverter.create(Class<?> entityClass)
focal_class.full_signature: public ClassMapping create(Class<?> entityClass)
focal_class.identifier: create
focal_class.modifiers: public
focal_class.parameters: (Class<?> entityClass)
focal_class.return: ClassMapping
focal_class.signature: ClassMapping create(Class<?> entityClass)
focal_class.class_method_signature: ClassConverter.getNativeFieldGroupByJavaField(List<FieldMapping> fields,
                                                                        String javaField, String nativeField)
focal_class.full_signature: private Map<String, NativeMapping> getNativeFieldGroupByJavaField(List<FieldMapping> fields,
                                                                        String javaField, String nativeField)
focal_class.identifier: getNativeFieldGroupByJavaField
focal_class.modifiers: private
focal_class.parameters: (List<FieldMapping> fields,
                                                                        String javaField, String nativeField)
focal_class.return: Map<String, NativeMapping>
focal_class.signature: Map<String, NativeMapping> getNativeFieldGroupByJavaField(List<FieldMapping> fields,
                                                                        String javaField, String nativeField)
focal_class.class_method_signature: ClassConverter.appendValue(Map<String, NativeMapping> nativeFieldGroupByJavaField, FieldMapping field,
                               String javaField, String nativeField)
focal_class.full_signature: private void appendValue(Map<String, NativeMapping> nativeFieldGroupByJavaField, FieldMapping field,
                               String javaField, String nativeField)
focal_class.identifier: appendValue
focal_class.modifiers: private
focal_class.parameters: (Map<String, NativeMapping> nativeFieldGroupByJavaField, FieldMapping field,
                               String javaField, String nativeField)
focal_class.return: void
focal_class.signature: void appendValue(Map<String, NativeMapping> nativeFieldGroupByJavaField, FieldMapping field,
                               String javaField, String nativeField)
focal_class.class_method_signature: ClassConverter.appendDefaultField(Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                      FieldMapping field, String javaField, String nativeField)
focal_class.full_signature: private void appendDefaultField(Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                      FieldMapping field, String javaField, String nativeField)
focal_class.identifier: appendDefaultField
focal_class.modifiers: private
focal_class.parameters: (Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                      FieldMapping field, String javaField, String nativeField)
focal_class.return: void
focal_class.signature: void appendDefaultField(Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                      FieldMapping field, String javaField, String nativeField)
focal_class.class_method_signature: ClassConverter.appendFields(Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                FieldMapping field,
                                String javaField, String nativeField)
focal_class.full_signature: private void appendFields(Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                FieldMapping field,
                                String javaField, String nativeField)
focal_class.identifier: appendFields
focal_class.modifiers: private
focal_class.parameters: (Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                FieldMapping field,
                                String javaField, String nativeField)
focal_class.return: void
focal_class.signature: void appendFields(Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                FieldMapping field,
                                String javaField, String nativeField)
focal_class.class_method_signature: ClassConverter.appendFields(Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                FieldMapping field, String javaField, String nativeField,
                                Class<?> entityClass)
focal_class.full_signature: private void appendFields(Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                FieldMapping field, String javaField, String nativeField,
                                Class<?> entityClass)
focal_class.identifier: appendFields
focal_class.modifiers: private
focal_class.parameters: (Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                FieldMapping field, String javaField, String nativeField,
                                Class<?> entityClass)
focal_class.return: void
focal_class.signature: void appendFields(Map<String, NativeMapping> nativeFieldGroupByJavaField,
                                FieldMapping field, String javaField, String nativeField,
                                Class<?> entityClass)
focal_class.class_method_signature: ClassConverter.appendPreparePrefix(String prefix, String field)
focal_class.full_signature: private String appendPreparePrefix(String prefix, String field)
focal_class.identifier: appendPreparePrefix
focal_class.modifiers: private
focal_class.parameters: (String prefix, String field)
focal_class.return: String
focal_class.signature: String appendPreparePrefix(String prefix, String field)
focal_class.class_method_signature: ClassConverter.appendPrefix(String prefix, String field)
focal_class.full_signature: private String appendPrefix(String prefix, String field)
focal_class.identifier: appendPrefix
focal_class.modifiers: private
focal_class.parameters: (String prefix, String field)
focal_class.return: String
focal_class.signature: String appendPrefix(String prefix, String field)
focal_class.class_method_signature: ClassConverter.to(Field field)
focal_class.full_signature: private FieldMapping to(Field field)
focal_class.identifier: to
focal_class.modifiers: private
focal_class.parameters: (Field field)
focal_class.return: FieldMapping
focal_class.signature: FieldMapping to(Field field)
focal_method.body: public ClassMapping create(Class<?> entityClass) {
  
          long start = System.currentTimeMillis();
          String entityName = reflections.getEntityName(entityClass);
  
          List<FieldMapping> fields = reflections.getFields(entityClass)
                  .stream().map(this::to).collect(toList());
  
          List<String> fieldsName = fields.stream().map(FieldMapping::getName).collect(toList());
  
          Map<String, NativeMapping> nativeFieldGroupByJavaField =
                  getNativeFieldGroupByJavaField(fields, "", "");
  
          Map<String, FieldMapping> fieldsGroupedByName = fields.stream()
                  .collect(collectingAndThen(toMap(FieldMapping::getName,
                          Function.identity()), Collections::unmodifiableMap));
  
          InstanceSupplier instanceSupplier = instanceSupplierFactory.apply(reflections.makeAccessible(entityClass));
  
          ClassMapping mapping = DefaultClassMapping.builder().withName(entityName)
                  .withClassInstance(entityClass)
                  .withFields(fields)
                  .withFieldsName(fieldsName)
                  .withInstanceSupplier(instanceSupplier)
                  .withJavaFieldGroupedByColumn(nativeFieldGroupByJavaField)
                  .withFieldsGroupedByName(fieldsGroupedByName)
                  .build();
  
          long end = System.currentTimeMillis() - start;
          LOGGER.info(String.format("Scanned %s loaded with time %d ms", entityClass.getName(), end));
          return mapping;
      }
focal_method.class_method_signature: ClassConverter.create(Class<?> entityClass)
focal_method.full_signature: public ClassMapping create(Class<?> entityClass)
focal_method.identifier: create
focal_method.invocations: currentTimeMillis getEntityName collect map stream getFields toList collect map stream toList getNativeFieldGroupByJavaField collect stream collectingAndThen toMap identity apply makeAccessible build withFieldsGroupedByName withJavaFieldGroupedByColumn withInstanceSupplier withFieldsName withFields withClassInstance withName builder currentTimeMillis info format getName
focal_method.modifiers: public
focal_method.parameters: (Class<?> entityClass)
focal_method.return: ClassMapping
focal_method.signature: ClassMapping create(Class<?> entityClass)