test_class.declarator: namedProjectionAnnotationMock
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private NamedProjection namedProjectionAnnotationMock;
test_class.type: NamedProjection
test_class.var_name: namedProjectionAnnotationMock
test_class.declarator: typeScannerMock
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private AnnotatedTypeScanner typeScannerMock;
test_class.type: AnnotatedTypeScanner
test_class.var_name: typeScannerMock
test_class.declarator: annotationUtilsWrapperMock
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private AnnotationUtilsWrapper annotationUtilsWrapperMock;
test_class.type: AnnotationUtilsWrapper
test_class.var_name: annotationUtilsWrapperMock
test_class.declarator: annotatedClass
test_class.modifier: private
test_class.original_string: private Class annotatedClass;
test_class.type: Class
test_class.var_name: annotatedClass
test_class.declarator: projectionService
test_class.modifier: private
test_class.original_string: private ProjectionService projectionService;
test_class.type: ProjectionService
test_class.var_name: projectionService
test_class.file: backend/project-board/src/test/java/de/adesso/projectboard/base/projection/ProjectionServiceTest.java
test_class.identifier: ProjectionServiceTest
test_case.body: @Test
      public void getByNameOrDefaultReturnsProjectWithMatchingNameAndTarget() {
          // given
          var expectedName = "projection-name";
          var expectedTarget = String.class;
          Pair<String, Class<?>> pair = Pair.of(expectedName, expectedTarget);
  
          projectionService.projectionClassMap.put(pair, annotatedClass);
  
          // when
          var actualProjection = projectionService.getByNameOrDefault(expectedName, expectedTarget);
  
          // then
          assertThat(actualProjection).isEqualTo(annotatedClass);
      }
test_case.class_method_signature: ProjectionServiceTest.getByNameOrDefaultReturnsProjectWithMatchingNameAndTarget()
test_case.full_signature: @Test public void getByNameOrDefaultReturnsProjectWithMatchingNameAndTarget()
test_case.identifier: getByNameOrDefaultReturnsProjectWithMatchingNameAndTarget
test_case.invocations: of put getByNameOrDefault isEqualTo assertThat
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void getByNameOrDefaultReturnsProjectWithMatchingNameAndTarget()
focal_class.declarator: BASE_PACKAGE = "de/adesso/projectboard/base"
focal_class.modifier: private final
focal_class.original_string: private final String BASE_PACKAGE = "de/adesso/projectboard/base";
focal_class.type: String
focal_class.var_name: BASE_PACKAGE
focal_class.declarator: typeScanner
focal_class.modifier: private final
focal_class.original_string: private final AnnotatedTypeScanner typeScanner;
focal_class.type: AnnotatedTypeScanner
focal_class.var_name: typeScanner
focal_class.declarator: annotationUtilsWrapper
focal_class.modifier: private final
focal_class.original_string: private final AnnotationUtilsWrapper annotationUtilsWrapper;
focal_class.type: AnnotationUtilsWrapper
focal_class.var_name: annotationUtilsWrapper
focal_class.declarator: projectionClassMap
focal_class.modifier: final
focal_class.original_string: final Map<Pair<String, Class<?>>, Class<?>> projectionClassMap;
focal_class.type: Map<Pair<String, Class<?>>, Class<?>>
focal_class.var_name: projectionClassMap
focal_class.declarator: defaultProjectionClassMap
focal_class.modifier: final
focal_class.original_string: final Map<Class<?>, Class<?>> defaultProjectionClassMap;
focal_class.type: Map<Class<?>, Class<?>>
focal_class.var_name: defaultProjectionClassMap
focal_class.file: backend/project-board/src/main/java/de/adesso/projectboard/base/projection/ProjectionService.java
focal_class.identifier: ProjectionService
focal_class.interfaces: implements InitializingBean
focal_class.class_method_signature: ProjectionService.ProjectionService(AnnotatedTypeScanner typeScanner, AnnotationUtilsWrapper annotationUtilsWrapper)
focal_class.full_signature: @Autowired public  ProjectionService(AnnotatedTypeScanner typeScanner, AnnotationUtilsWrapper annotationUtilsWrapper)
focal_class.identifier: ProjectionService
focal_class.modifiers: @Autowired public
focal_class.parameters: (AnnotatedTypeScanner typeScanner, AnnotationUtilsWrapper annotationUtilsWrapper)
focal_class.signature:  ProjectionService(AnnotatedTypeScanner typeScanner, AnnotationUtilsWrapper annotationUtilsWrapper)
focal_class.class_method_signature: ProjectionService.getByNameOrDefault(@NonNull String projectionName, @NonNull Class<?> projectionTarget)
focal_class.full_signature: public Class<?> getByNameOrDefault(@NonNull String projectionName, @NonNull Class<?> projectionTarget)
focal_class.identifier: getByNameOrDefault
focal_class.modifiers: public
focal_class.parameters: (@NonNull String projectionName, @NonNull Class<?> projectionTarget)
focal_class.return: Class<?>
focal_class.signature: Class<?> getByNameOrDefault(@NonNull String projectionName, @NonNull Class<?> projectionTarget)
focal_class.class_method_signature: ProjectionService.getDefault(Class<?> projectionTarget)
focal_class.full_signature: public Class<?> getDefault(Class<?> projectionTarget)
focal_class.identifier: getDefault
focal_class.modifiers: public
focal_class.parameters: (Class<?> projectionTarget)
focal_class.return: Class<?>
focal_class.signature: Class<?> getDefault(Class<?> projectionTarget)
focal_class.class_method_signature: ProjectionService.addProjectionInterfaces(String basePackage)
focal_class.full_signature:  void addProjectionInterfaces(String basePackage)
focal_class.identifier: addProjectionInterfaces
focal_class.parameters: (String basePackage)
focal_class.return: void
focal_class.signature: void addProjectionInterfaces(String basePackage)
focal_class.class_method_signature: ProjectionService.getAnnotatedInterfaces(String basePackage)
focal_class.full_signature:  Set<Class<?>> getAnnotatedInterfaces(String basePackage)
focal_class.identifier: getAnnotatedInterfaces
focal_class.parameters: (String basePackage)
focal_class.return: Set<Class<?>>
focal_class.signature: Set<Class<?>> getAnnotatedInterfaces(String basePackage)
focal_class.class_method_signature: ProjectionService.addProjectionInterface(NamedProjection annotation, Class<?> annotatedInterface)
focal_class.full_signature:  void addProjectionInterface(NamedProjection annotation, Class<?> annotatedInterface)
focal_class.identifier: addProjectionInterface
focal_class.parameters: (NamedProjection annotation, Class<?> annotatedInterface)
focal_class.return: void
focal_class.signature: void addProjectionInterface(NamedProjection annotation, Class<?> annotatedInterface)
focal_class.class_method_signature: ProjectionService.getProjectionName(NamedProjection annotation, Class<?> projectionInterface)
focal_class.full_signature:  String getProjectionName(NamedProjection annotation, Class<?> projectionInterface)
focal_class.identifier: getProjectionName
focal_class.parameters: (NamedProjection annotation, Class<?> projectionInterface)
focal_class.return: String
focal_class.signature: String getProjectionName(NamedProjection annotation, Class<?> projectionInterface)
focal_class.class_method_signature: ProjectionService.afterPropertiesSet()
focal_class.full_signature: @Override public void afterPropertiesSet()
focal_class.identifier: afterPropertiesSet
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void afterPropertiesSet()
focal_method.body: public Class<?> getByNameOrDefault(@NonNull String projectionName, @NonNull Class<?> projectionTarget) {
          return projectionClassMap.getOrDefault(Pair.of(projectionName, projectionTarget), getDefault(projectionTarget));
      }
focal_method.class_method_signature: ProjectionService.getByNameOrDefault(@NonNull String projectionName, @NonNull Class<?> projectionTarget)
focal_method.full_signature: public Class<?> getByNameOrDefault(@NonNull String projectionName, @NonNull Class<?> projectionTarget)
focal_method.identifier: getByNameOrDefault
focal_method.invocations: getOrDefault of getDefault
focal_method.modifiers: public
focal_method.parameters: (@NonNull String projectionName, @NonNull Class<?> projectionTarget)
focal_method.return: Class<?>
focal_method.signature: Class<?> getByNameOrDefault(@NonNull String projectionName, @NonNull Class<?> projectionTarget)