package io.katharsis.resource.registry.repository;
import io.katharsis.repository.RelationshipRepository;
import io.katharsis.repository.RepositoryInstanceBuilder;
import net.jodah.typetools.TypeResolver;
public class DirectResponseRelationshipEntry<T, D> implements ResponseRelationshipEntry<T, D> {
private RepositoryInstanceBuilder<RelationshipRepository> repositoryInstanceBuilder;
public DirectResponseRelationshipEntry(RepositoryInstanceBuilder<RelationshipRepository> repositoryInstanceBuilder) {
this.repositoryInstanceBuilder = repositoryInstanceBuilder;
}
@Override
public Class<?> getTargetAffiliation() {
Class<?>[] typeArgs = TypeResolver
.resolveRawArguments(RelationshipRepository.class, repositoryInstanceBuilder.getRepositoryClass());
return typeArgs[RelationshipRepository.TARGET_TYPE_GENERIC_PARAMETER_IDX];
}
public RelationshipRepository getRepositoryInstanceBuilder() {
return repositoryInstanceBuilder.buildRepository();
}
@Override
public String toString() {
return "DirectResponseRelationshipEntry{" +
"repositoryInstanceBuilder=" + repositoryInstanceBuilder +
'}';
}
}