Платформа программирования J2ME для портативных устройств



              

Листинг 7.1. Класс AddressBook позволяет приложению получать доступ к хранилищу записей - часть 2


println ("Record id = " + id);

}

/**

RecordEnumerator, упорядочивающий записи в

лексикографическом порядке по полям

имен записей.

*/

RecordEnumeration getMatchesByNarae(String matchKey)

throws RecordStoreNotOpenException

(

MacchAllNaraesFilter filter =

new MatchAllNamesFilter(matchKey);

AlphabeticalOrdering comparator =

new AlphabeticalOrdering();

return recordStore.enuraerateRecords(filter,

comparator, false);

}

/**

RecordFilter, устанавливающий совпадение, если имя варианта

(первое поле в записи варианта)!) точно соответствует имени

элемента списка или 2) если строка имени элемента списка

начинается с имени варианта. Возвращает значение true, ее

установлено соответствие, false - в ином случае.

*/

class MatchAllNamesFilter implements RecordFilter

{

String requestString;

public MatchAllNamesFilter(String matchKey) ;

requestString = matchKey;

}

public boolean matches(byte [] candidate)

{

ByteArraylnputStream bais =

new ByteArraylnputStream(candidate);

DatalnputStream dis = new DatalnputStream(bais);

Siring name = null;

try

}

name = dis.readUTF();

if (name.indexOf(requestString) == 0)

return true;

else

return false;

}

catch (lOException ioe)

{

ioe.printStackTrace!);

return true;

}

}

/**

Этот внутренний класс реализует RecordCornparator, чья политика

Заключается в выполнении сортировки по алфавиту.

*/

class AlphabeticalOrdering implements RecordCoraparator

}

Конструктор.

public AlphabeticalOrdering ()

(

)

public int compare(byte [] reel, byte [] rec2)

{

ByteArraylnputStream baisl =

new ByteArraylnputStream(recl);

DatalnputStream disl = new DatalnputStream(baisl);

ByteArraylnputStream bais2 =

new ByteArraylnputStream(rec2);

DatalnputStream dis2 = new DatalnputStream(bais2);

String namel = null; String name2 = null; try

namel = disl.readUTF ();

name2 = dis2.readUTF () ;

}

catch (lOException ioe)

ioe.printStackTrace();

}

if (namel == null II name2 == null) return 0;

int result = namel.compareTo(name2);



Содержание  Назад  Вперед