@SuppressWarnings({"unchecked", "rawtypes"})
    public <T, I, D, J> RelationshipRepository<T, I, D, J> getRepositoryForType(
            Class<T> sourceClass, Class<D> targetClass) {
        init();

        RelationshipRepositoryAdapter repositoryAdapter = allocateRepositoryRelation(sourceClass, targetClass);
        return (RelationshipRepository<T, I, D, J>) repositoryAdapter.getRelationshipRepository();
    }
@ SuppressWarnings ( { "unchecked" , "rawtypes" } ) public < T , I , D , J > RelationshipRepository < T , I , D , J > getRepositoryForType ( Class < T > sourceClass , Class < D > targetClass ) { init ( ) ; RelationshipRepositoryAdapter repositoryAdapter = allocateRepositoryRelation ( sourceClass , targetClass ) ; return ( RelationshipRepository < T , I , D , J > ) repositoryAdapter . getRelationshipRepository ( ) ; }
@param sourceClass source class
@param targetClass target class
@return stub for the relationship between the given source and target
class