public static MultiComparator create(IBinaryComparatorFactory[] cmpFactories) { IBinaryComparator[] cmps = new IBinaryComparator[cmpFactories.length]; for (int i = 0; i < cmpFactories.length; i++) { cmps[i] = cmpFactories[i].createBinaryComparator(); } if (cmps.length == 1) { return new SingleComparator(cmps); } else { return new MultiComparator(cmps); } }
public static MultiComparator create(IBinaryComparatorFactory[] cmpFactories, int startIndex, int numCmps) { IBinaryComparator[] cmps = new IBinaryComparator[numCmps]; for (int i = startIndex; i < startIndex + numCmps; i++) { cmps[i] = cmpFactories[i].createBinaryComparator(); } if (cmps.length == 1) { return new SingleComparator(cmps); } else { return new MultiComparator(cmps); } }
public static MultiComparator create(IBinaryComparatorFactory[]... cmpFactories) { int size = 0; for (int i = 0; i < cmpFactories.length; i++) { size += cmpFactories[i].length; } IBinaryComparator[] cmps = new IBinaryComparator[size]; int x = 0; for (int i = 0; i < cmpFactories.length; i++) { for (int j = 0; j < cmpFactories[i].length; j++) { cmps[x++] = cmpFactories[i][j].createBinaryComparator(); } } if (cmps.length == 1) { return new SingleComparator(cmps); } else { return new MultiComparator(cmps); } } }