@Override public void addRepository(Object repository) { aggregatedModule.addRepository(repository); }
JsonApiResourceRepository annotation = ClassUtils.getAnnotation(repository.getClass(), JsonApiResourceRepository.class).get(); Class<?> resourceClass = annotation.value(); module.addRepository(resourceClass, repository); module.addRepository(annotation.source(), annotation.target(), repository);
@Override public void addRepository(Class<?> sourceType, Class<?> targetType, Object repository) { checkNotInitialized(); aggregatedModule.addRepository(repository); }
@Override public void addRepository(Class<?> type, Object repository) { checkNotInitialized(); aggregatedModule.addRepository(repository); }
private void setupRepository(SimpleModule module, Object repository) { if (repository instanceof ResourceRepository) { ResourceRepository resRepository = (ResourceRepository) repository; Class<?>[] typeArgs = TypeResolver.resolveRawArguments(ResourceRepository.class, resRepository.getClass()); Class resourceClass = typeArgs[0]; module.addRepository(resourceClass, resRepository); } else if (repository instanceof RelationshipRepository) { RelationshipRepository relRepository = (RelationshipRepository) repository; Class<?>[] typeArgs = TypeResolver.resolveRawArguments(RelationshipRepository.class, relRepository.getClass()); Class sourceResourceClass = typeArgs[0]; Class targetResourceClass = typeArgs[2]; module.addRepository(sourceResourceClass, targetResourceClass, relRepository); } else if (repository instanceof ResourceRepositoryV2) { ResourceRepositoryV2<?, ?> resRepository = (ResourceRepositoryV2<?, ?>) repository; module.addRepository(resRepository.getResourceClass(), resRepository); } else if (repository instanceof RelationshipRepositoryV2) { RelationshipRepositoryV2<?, ?, ?, ?> relRepository = (RelationshipRepositoryV2<?, ?, ?, ?>) repository; module.addRepository(relRepository.getSourceResourceClass(), relRepository.getTargetResourceClass(), relRepository); } else { throw new IllegalStateException(repository.toString()); } }