pstm.setString(1, user);
pstm.setString(2, DataAccessFactory.sysUser);
rs = pstm.executeQuery();
while(rs.next()){
UUID id = DataAccessFactory.getInstance().createUUID(rs.getObject("id").toString());
String createUser = rs.getString("create_user");
Timestamp createTime = rs.getTimestamp("create_time");
Filter filter = new FilterImpl(id, createUser, createTime, null);
filter.setName(rs.getString("name"));
filter.setXml(rs.getString("xml"));
filter.setAnd(rs.getBoolean("is_and"));
filter.setPublic(rs.getBoolean("is_public"));
filter.setVisible(rs.getBoolean("is_visible"));
filterList.add(filter);
}
}
catch(Exception e){
e.printStackTrace();
}
finally{
DbPoolConnection.getInstance().closeResultSet(rs);
DbPoolConnection.getInstance().closeStatment(pstm);
DbPoolConnection.getInstance().closeConn(conn);
}
Map<UUID, Boolean> templateAllowMap = new HashMap<UUID, Boolean>();
Map<UUID, List<Template>> allTemplateTypeMap = new HashMap<UUID, List<Template>>();
Map<UUID, Template> allTemplateMap = new HashMap<UUID, Template>();
Map<UUID, Flow> allFlowMap = new HashMap<UUID, Flow>();
Iterator<Filter> filterItr = filterList.iterator();
while(filterItr.hasNext()){
Filter filter = filterItr.next();
Document xmlDoc = null;
try{
xmlDoc = XMLUtil.string2Document(filter.getXml(), "UTF-8");
}
catch(Exception e){
e.printStackTrace();
System.err.println("error filter id: " + filter.getId());
}
if(xmlDoc == null){
filterItr.remove();
continue;
}
Node queryNode = XMLUtil.getSingleNode(xmlDoc, "query");
Node templateTypeNode = XMLUtil.getSingleNode(queryNode, "templateType");
List<Node> templateNodeList = XMLUtil.getNodes(queryNode, "template");
List<Template> templateList = new ArrayList<Template>();
if(templateNodeList.size() == 0){
String templateTypeIdStr = XMLUtil.getAttribute(templateTypeNode, "id");
UUID templateTypeId = DataAccessFactory.getInstance().createUUID(templateTypeIdStr);
if (allTemplateTypeMap.get(templateTypeId) == null) {
List<Template> templateTypeList = das.queryTemplates(templateTypeId);
for (Template template : templateTypeList) {
allTemplateMap.put(template.getId(), template);
}
}
templateList.addAll(allTemplateTypeMap.get(templateTypeId));
}
else{
for(Node templateNode : templateNodeList){
String templateIdStr = XMLUtil.getAttribute(templateNode, "id");
UUID templateId = DataAccessFactory.getInstance().createUUID(templateIdStr);
if (allTemplateMap.get(templateId) == null) {
Template tmp = das.queryTemplate(templateId);
allTemplateMap.put(templateId, tmp);
}