package fr.adrienbrault.idea.symfony2plugin.doctrine.querybuilder.util;
import fr.adrienbrault.idea.symfony2plugin.doctrine.ObjectRepositoryTypeProvider;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.HashSet;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
*/
public class QueryBuilderUtil {
/**
* $em->getRepository('Class\Car')->createQueryBuilder('f')->andWhere('<caret>')
* $em->getRepository(Car::class)->createQueryBuilder('f')->andWhere('<caret>')
*/
public static Collection<String> extractQueryBuilderRepositoryParameters(@NotNull String content) {
Collection<String> results = new HashSet<>();
for(String signature : content.split("\\|")) {
int endIndex = signature.lastIndexOf(ObjectRepositoryTypeProvider.TRIM_KEY);
if(endIndex != -1) {
String parameter = signature.substring(endIndex + 1);
int point = parameter.indexOf(".createQueryBuilder");
if(point > -1) {
parameter = parameter.substring(0, point);
results.add(parameter);
}
}
}
return results;
}
}