Словарь (jandcode.dbm.dict.Dict) - это объект, который может преобразовывать
некоторое атомарное значение в текст.
id.
Тип поля id в принципе не важен, но обычно используется long.dict - это метка, по которой будут выявляться
словари. Атрибуты этого узла используются для инициализации свойств словаря.
Имейте в виду, что это метка не наследуется (если унаследовать словарь от словаря,
то он не будет словарем, пока ему не поставить метку dict, хотя бы и без
атрибутов, которые все равно унаследуются)dict, который должен реализовывать интерфейс
jandcode.dbm.dict.ILoadDict - он будет использоваться для загрузки словаря.Пример простого словаря из базы данных:
<domain name="MyEasyDict1" parent="id" tag.db="true">
<dict defaultField="name"/>
<field name="name" parent="String" size="60"/>
<dao name="dict" class="jandcode.dbm.dict.SimpleLoadDictDao"/>
</domain>
resolve-словарь загружается не полностью, а только для переданных ему id-значений
Как уже было сказано, для загрузки словаря используется dao с именем dict,
который должен реализовывать интерфейс jandcode.dbm.dict.ILoadDict.
jandcode.dbm.dict.Dict#getData().Если словарь resolve(resolve=true), то набор загружаемых id доступен в свойстве словаря
jandcode.dbm.dict.Dict#getResolveIds(). Для обычного словаря (resolve=false)
Это свойство не учитывается и нужно грузить все, что доступно.
Пример реализации загрузки обычного словаря:
public class SimpleLoadDictDao extends CustomDao implements ILoadDict {
@DaoMethod
public void loadDict(Dict dict) throws Exception {
ut.loadSql(dict.getData(), "select * MyEasyDict1");
}
}
Пример реализации загрузки resolve-словаря:
public class SimpleLoadDictResolveDao extends Dao implements ILoadDict {
@DaoMethod
public void loadDict(Dict dict) throws Exception {
IDataRecord r;
for (Object o : dict.getResolveIds()) {
r = dict.getData().add();
r.setValue("id", o);
r.setValue("text", "V:" + o);
}
}
}