private EventsCriteria buildCriteria( Long startTime, Long endTime, String eventIds, String triggerIds, String categories, String tags, Boolean thin) { EventsCriteria criteria = new EventsCriteria(); criteria.setStartTime(startTime); criteria.setEndTime(endTime); if (!isEmpty(eventIds)) { criteria.setEventIds(Arrays.asList(eventIds.split(","))); } if (!isEmpty(triggerIds)) { criteria.setTriggerIds(Arrays.asList(triggerIds.split(","))); } if (!isEmpty(categories)) { criteria.setCategories(Arrays.asList(categories.split(","))); } if (!isEmpty(tags)) { String[] tagTokens = tags.split(","); Map<String, String> tagsMap = new HashMap<>(tagTokens.length); for (String tagToken : tagTokens) { String[] fields = tagToken.split("\\|"); if (fields.length == 2) { tagsMap.put(fields[0], fields[1]); } else { if (log.isDebugEnabled()) { log.debug("Invalid Tag Criteria " + Arrays.toString(fields)); } } } criteria.setTags(tagsMap); } if (null != thin) { criteria.setThin(thin.booleanValue()); } return criteria; }