Alguém saberia me dizer porque não aparece o "entrou no..."

1 resposta
P

Olá, eu quero fazer uma pesquisa em um RecordStore, e retornar só alguns elementos, para isso estou usando o RecordFilter, mas ele nunca mostra o "entrou no matches" e também sempre retorna nenhum elemento do rs.enumerateRecords(Filtro, null, false)... alguém saberia me dizer porque?

class Filtro implements RecordFilter
{
    private String searchText = null;
    private ByteArrayInputStream strmBytes = null;
    private DataInputStream strmDataTypes = null;
 	
    public Filtro(String txt)
    {
        this.searchText = txt;
    }
 	
    public boolean matches(byte[] candidate)
    {
        String str = null;
        System.out.println("entrou no matches");
        try
        {
            strmBytes = new ByteArrayInputStream(candidate);
            strmDataTypes = new DataInputStream(strmBytes);
            //Procura
            str = strmDataTypes.readUTF().toLowerCase();
            System.out.println("leu = "+str);
        }
        catch (Exception e)
        {
            return false;
        }
        
        if (str != null && str.indexOf(searchText) != -1)
            return true;
        else
            return false;
    }
    
    public void searchFilterClose()
    {
        try
        {
            if (strmBytes != null)
                strmBytes.close();
            if (strmDataTypes != null)
                strmDataTypes.close();
        }
        catch (Exception e)
        {
            System.out.println("Não foi possível limpar o filtro: "+e);
        }
    }    
}

1 Resposta

G

Se ele não está logando “entrou no matches” seu aplicativo pode estar lançando algum exception antes de chegar na chamada a “rs.enumerateRecords(Filtro, null, false)”.
Vc pode dar mais detalhes sobre como vc está chamando essa função?
Quanto a questão de não retornar nenhum recordStore, precisaria saber quais os Records que vc está utilizando.

Criado 4 de abril de 2005
Ultima resposta 6 de abr. de 2005
Respostas 1
Participantes 2