Add SQLWhereIn and LevenshteinDistance algorithm

This commit is contained in:
2019-11-03 00:15:23 +01:00
parent 05d115cd19
commit bcb46b7cd5
3 changed files with 102 additions and 145 deletions

View File

@@ -0,0 +1,34 @@
package fr.pandacube.util.orm;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.javatuples.Pair;
public class SQLWhereIn extends SQLWhere {
private SQLField<?, ?> field;
private Collection<?> values;
public <T> SQLWhereIn(SQLField<?, T> f, Collection<T> v) {
if (f == null || v == null)
throw new IllegalArgumentException("All arguments for SQLWhereIn constructor can't be null");
field = f;
values = v;
}
@Override
public Pair<String, List<Object>> toSQL() throws ORMException {
List<Object> params = new ArrayList<>();
for (Object v : values)
SQLElement.addValueToSQLObjectList(params, field, v);
char[] questions = new char[values.size() == 0 ? 0 : (values.size() * 2 - 1)];
for (int i = 0; i < questions.length; i++)
questions[i] = i % 2 == 0 ? '?' : ',';
return new Pair<>("`" + field.getName() + "` IN (" + new String(questions) + ") ", params);
}
}