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);
}
}
}