use of com.intel.mtwilson.datatypes.RepositorySearchException in project OpenAttestation by OpenAttestation.
the class KvAttributeRepository method search.
@Override
public // @RequiresPermissions("tag_kv_attributes:search")
KvAttributeCollection search(KvAttributeFilterCriteria criteria) {
log.debug("KvAttribute:Search - Got request to search for the KvAttributes.");
KvAttributeCollection objCollection = new KvAttributeCollection();
try (JooqContainer jc = TagJdbi.jooq()) {
DSLContext jooq = jc.getDslContext();
SelectQuery sql = jooq.select().from(MW_TAG_KVATTRIBUTE).getQuery();
// all the data.
if (criteria.filter) {
if (criteria.id != null) {
// when uuid is stored in database as the standard UUID string format (36 chars)
sql.addConditions(MW_TAG_KVATTRIBUTE.ID.equalIgnoreCase(criteria.id.toString()));
}
if (criteria.nameEqualTo != null && criteria.nameEqualTo.length() > 0) {
sql.addConditions(MW_TAG_KVATTRIBUTE.NAME.equalIgnoreCase(criteria.nameEqualTo));
}
if (criteria.nameContains != null && criteria.nameContains.length() > 0) {
sql.addConditions(MW_TAG_KVATTRIBUTE.NAME.lower().contains(criteria.nameContains.toLowerCase()));
}
if (criteria.valueEqualTo != null && criteria.valueEqualTo.length() > 0) {
sql.addConditions(MW_TAG_KVATTRIBUTE.VALUE.equalIgnoreCase(criteria.valueEqualTo));
}
if (criteria.valueContains != null && criteria.valueContains.length() > 0) {
sql.addConditions(MW_TAG_KVATTRIBUTE.VALUE.lower().contains(criteria.valueContains.toLowerCase()));
}
}
sql.addOrderBy(MW_TAG_KVATTRIBUTE.NAME, MW_TAG_KVATTRIBUTE.VALUE);
log.debug("Opening tag-value dao");
log.debug("Fetching records using JOOQ");
Result<Record> result = sql.fetch();
for (Record r : result) {
KvAttribute obj = new KvAttribute();
obj.setId(UUID.valueOf(r.getValue(MW_TAG_KVATTRIBUTE.ID)));
// obj.setId(r.getValue(MW_TAG_KVATTRIBUTE.ID.coerce(byte[].class), uuidConverter));
// obj.setId(r.getValue(MW_TAG_KVATTRIBUTE.ID, uuidConverter));
// obj.setId(r.getValue(MW_TAG_KVATTRIBUTE.ID));
obj.setName(r.getValue(MW_TAG_KVATTRIBUTE.NAME));
obj.setValue(r.getValue(MW_TAG_KVATTRIBUTE.VALUE));
objCollection.getKvAttributes().add(obj);
}
sql.close();
} catch (Exception ex) {
log.error("KvAttribute:Search - Error during attribute search.", ex);
throw new RepositorySearchException(ex, criteria);
}
log.debug("KvAttribute:Search - Returning back {} of results.", objCollection.getKvAttributes().size());
return objCollection;
}
Aggregations