INNER CODE UNIT · Java
relations
elki-project/elki · elki-core-api/src/main/java/elki/Algorithm.java:112
Object[] relations = new Object[inputs.length + 1];
Class<?>[] signature = new Class<?>[inputs.length + 1];
// First parameter is the database
relations[0] = database;
signature[0] = Database.class;
// Other parameters are the bound relations
for(int i = 1; i <= inputs.length; i++) {
// TODO: don't bind the same relation twice?
// But sometimes this is wanted (e.g., using projected distances)
relations[i] = database.getRelation(inputs[i - 1]);
signature[i] = Relation.class;
}
try {
return a.getClass().getMethod("run", signature).invoke(a, relations);
}
catch(NoSuchMethodException e) {
// continue below.