use of lombok.Data in project metacat by Netflix.
the class MysqlUserMetadataService method searchByOwners.
@Override
@Transactional(readOnly = true)
public List<QualifiedName> searchByOwners(final Set<String> owners) {
final List<QualifiedName> result = Lists.newArrayList();
final StringBuilder query = new StringBuilder(SQL.SEARCH_DEFINITION_METADATA_NAMES);
final List<SqlParameterValue> paramList = Lists.newArrayList();
query.append(" where 1=0");
owners.forEach(s -> {
query.append(" or data like ?");
paramList.add(new SqlParameterValue(Types.VARCHAR, "%\"userId\":\"" + s.trim() + "\"%"));
});
final SqlParameterValue[] params = new SqlParameterValue[paramList.size()];
try {
// Handler for reading the result set
final ResultSetExtractor<Void> handler = rs -> {
while (rs.next()) {
final String definitionName = rs.getString("name");
result.add(QualifiedName.fromString(definitionName, false));
}
return null;
};
jdbcTemplate.query(query.toString(), paramList.toArray(params), handler);
} catch (Exception e) {
log.error("Failed to search by owners", e);
throw new UserMetadataServiceException("Failed to search by owners", e);
}
return result;
}
use of lombok.Data in project metacat by Netflix.
the class MysqlUserMetadataService method _getMetadataMap.
/**
* get Metadata Map.
*
* @param keys list of keys
* @param sql query string
* @return map of the metadata
*/
@SuppressWarnings("checkstyle:methodname")
private Map<String, ObjectNode> _getMetadataMap(@Nullable final List<?> keys, final String sql) {
final Map<String, ObjectNode> result = Maps.newHashMap();
if (keys == null || keys.isEmpty()) {
return result;
}
final List<String> paramVariables = keys.stream().map(s -> "?").collect(Collectors.toList());
final SqlParameterValue[] aKeys = keys.stream().map(o -> new SqlParameterValue(Types.VARCHAR, o.toString())).toArray(SqlParameterValue[]::new);
final String query = String.format(sql, Joiner.on("," + "").join(paramVariables));
try {
final ResultSetExtractor<Void> handler = resultSet -> {
while (resultSet.next()) {
final String json = resultSet.getString("data");
final String name = resultSet.getString("name");
if (json != null) {
try {
result.put(name, metacatJson.parseJsonObject(json));
} catch (MetacatJsonException e) {
log.error("Invalid json '{}' for name '{}'", json, name);
throw new UserMetadataServiceException(String.format("Invalid json %s for name %s", json, name), e);
}
}
}
return null;
};
jdbcTemplate.query(query, aKeys, handler);
} catch (Exception e) {
final String message = String.format("Failed to get data for %s", keys);
log.error(message, e);
throw new UserMetadataServiceException(message, e);
}
return result;
}
use of lombok.Data in project hutool by looly.
the class XmlUtilTest method xmlToBeanTest2.
@Test
public void xmlToBeanTest2() {
@Data
class SmsRes {
private String code;
}
// issue#1663@Github
String xmlStr = "<?xml version=\"1.0\" encoding=\"gbk\" ?><response><code>02</code></response>";
Document doc = XmlUtil.parseXml(xmlStr);
// 标准方式
Map<String, Object> map = XmlUtil.xmlToMap(doc.getFirstChild());
SmsRes res = new SmsRes();
BeanUtil.fillBeanWithMap(map, res, true);
// toBean方式
SmsRes res1 = XmlUtil.xmlToBean(doc.getFirstChild(), SmsRes.class);
Assert.assertEquals(res.toString(), res1.toString());
}
use of lombok.Data in project hutool by looly.
the class XmlUtilTest method xmlToBeanTest.
@Test
public void xmlToBeanTest() {
@Data
class TestBean {
private String ReqCode;
private String AccountName;
private String Operator;
private String ProjectCode;
private String BankCode;
}
final TestBean testBean = new TestBean();
testBean.setReqCode("1111");
testBean.setAccountName("账户名称");
testBean.setOperator("cz");
testBean.setProjectCode("123");
testBean.setBankCode("00001");
final Document doc = XmlUtil.beanToXml(testBean);
Assert.assertEquals(TestBean.class.getSimpleName(), doc.getDocumentElement().getTagName());
final TestBean testBean2 = XmlUtil.xmlToBean(doc, TestBean.class);
Assert.assertEquals(testBean.getReqCode(), testBean2.getReqCode());
Assert.assertEquals(testBean.getAccountName(), testBean2.getAccountName());
Assert.assertEquals(testBean.getOperator(), testBean2.getOperator());
Assert.assertEquals(testBean.getProjectCode(), testBean2.getProjectCode());
Assert.assertEquals(testBean.getBankCode(), testBean2.getBankCode());
}
use of lombok.Data in project hutool by looly.
the class XmlUtilTest method beanToXmlIgnoreNullTest.
@Test
public void beanToXmlIgnoreNullTest() {
@Data
class TestBean {
private String ReqCode;
private String AccountName;
private String Operator;
private String ProjectCode;
private String BankCode;
}
final TestBean testBean = new TestBean();
testBean.setReqCode("1111");
testBean.setAccountName("账户名称");
testBean.setOperator("cz");
testBean.setProjectCode(null);
testBean.setBankCode("00001");
// 不忽略空字段情况下保留自闭标签
Document doc = XmlUtil.beanToXml(testBean, null, false);
Assert.assertNotNull(XmlUtil.getElement(doc.getDocumentElement(), "ProjectCode"));
// 忽略空字段情况下无自闭标签
doc = XmlUtil.beanToXml(testBean, null, true);
Assert.assertNull(XmlUtil.getElement(doc.getDocumentElement(), "ProjectCode"));
}
Aggregations