dúvida - Ordenando uma List - compareTo

Caros,
Na classe abaixo consigo ordenar pelo nome, como faço para decidir por qual atributo ordenar nome ou matricula??

public class Nome implements Comparable<Nome>{
	private String nome;
	private int matricula;
	
	public Nome() {
		
	}
	
	public String getNome() {
		return this.nome;
	}
	
	public String getMatricula() {
		String mat = ""+this.matricula;
		return mat;
	}
	
	public void setNome(String n) {
		this.nome = n;
	}
	
	public void setMatricula(int m) {
		this.matricula = m;
	}

	public int compareTo(Nome n) {
		return this.nome.compareToIgnoreCase(n.nome);
	}

Normalmente você usa um Comparator. Exemplo:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;


class Aluno {
	private String nome;
	private long matricula;
	public Aluno (String pNome, long pMatricula) {
		nome = pNome; matricula = pMatricula;
	}
	public long getMatricula() {
		return matricula;
	}
	public void setMatricula(long pMatricula) {
		matricula = pMatricula;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String pNome) {
		nome = pNome;
	}
	public String toString () { 
		return "(nome=" + nome + ",matricula=" + matricula + ")"; 
	}
}

class AlunoComparator implements Comparator<Aluno> {
	private boolean compararPorNome;
	public AlunoComparator (boolean pCompararPorNome) {
		compararPorNome = pCompararPorNome; 
	}
	
	/**
	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
	 */
	public int compare(Aluno aluno1, Aluno aluno2) {
		if (compararPorNome) {
			return aluno1.getNome().compareTo(aluno2.getNome());
		} else {
			return aluno1.getMatricula() &lt aluno2.getMatricula() ?
					-1 : (aluno1.getMatricula() &gt aluno2.getMatricula() ? +1 : 0);
		}
	}
}

public class TesteComparator {
    public static void main(String[] args) {
    	List<Aluno> alunos = new ArrayList<Aluno>();
    	alunos.add(new Aluno ("Luis Inacio", 13));
    	alunos.add(new Aluno ("Fernando Henrique", 45));
    	alunos.add(new Aluno ("Fernando Mello", 31));
    	System.out.println ("Lista original: ");
    	System.out.println (alunos);
    	System.out.println ("Lista ordenada por nome: ");
    	Collections.sort (alunos, new AlunoComparator (true));
    	System.out.println (alunos);
    	System.out.println ("Lista ordenada por matricula: ");
    	Collections.sort (alunos, new AlunoComparator (false));
    	System.out.println (alunos);
    }
}

Valeu…show.
Obrigado.