Código ruim:

/**
 * @returns [1]: Localização,
   [2]: Cliente, [3]: Incidente
 */
Object[] buscaDetalhes(int id) {...

Mesmo estando documentado, este tipo de retorno de um método é feio e propenso a erro. Você deve declarar uma pequena classe que segura os objetos juntos. Ela é análoga a uma struct em C.

Código melhor:

Detalhes buscaDetalhes(int id) {...}

private class Detalhes {
    public Localizacao localizacao;
    public Cliente cliente;
    public Incidente incidente;
}