package com.sandwich.util; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.logging.Logger; import com.sandwich.koan.KoanMethod; import com.sandwich.util.io.directories.DirectoryManager; import com.sandwich.util.io.filecompiler.FileCompiler; public class KoanComparator implements Comparator<KoanMethod> { List<String> orderedKeywords; Set<String> methodNamesCompared = new HashSet<String>(); public KoanComparator(String...koans){ this(Arrays.asList(koans)); } public KoanComparator(Collection<String> koans){ this.orderedKeywords = new ArrayList<String>(koans); } public int compare(KoanMethod arg0, KoanMethod arg1) { Class<?> declaringClass0 = arg0.getMethod().getDeclaringClass(); Class<?> declaringClass1 = arg1.getMethod().getDeclaringClass(); if(declaringClass0 != declaringClass1){ Logger.getAnonymousLogger().severe("no idea how to handle comparing the classes: " + declaringClass0 + " and: "+declaringClass1); return 0; } String contentsOfOriginalJavaFile = FileCompiler.getContentsOfJavaFile(DirectoryManager.getSourceDir(), declaringClass0.getName()); Integer index0 = Integer.valueOf( contentsOfOriginalJavaFile.indexOf(arg0.getMethod().getName())); Integer index1 = Integer.valueOf( contentsOfOriginalJavaFile.indexOf(arg1.getMethod().getName())); return index0.compareTo(index1); } }