/** * Build criteria for an event filter. * @param crit target criteria * @param efilter event filter */ void buildCriteria(Criteria crit, BpelEventFilter efilter) { if (efilter.getTypeFilter() != null) crit.add(Restrictions.like("type", efilter.getTypeFilter().replace('*','%'))); // Specific filter for started and last active dates. if (efilter.getTimestampFilter() != null) { for (Filter.Restriction<Date> sdf : efilter.getTimestampFilter()) { addFilterOnPrefixedDate(crit, sdf.op, sdf.value, "tstamp"); } } if (efilter.limit > 0) crit.setMaxResults(efilter.limit); }
/** * Initializes properly the InstanceFilter attributes by pre-parsing the * filter and orderKeys strings and setting the limit. A limit inferior than * or equal to 0 is ignored. * * @param filter */ public BpelEventFilter(String filter, int limit) { init(filter); this.limit = limit; }
public List<String> getEventTimeline(String instanceFilter, String eventFilter) { final InstanceFilter ifilter = new InstanceFilter(instanceFilter, null, 0); final BpelEventFilter efilter = new BpelEventFilter(eventFilter, 0); List<Date> tline = dbexec(new BpelDatabase.Callable<List<Date>>() { public List<Date> run(BpelDAOConnection session) throws Exception { return session.bpelEventTimelineQuery(ifilter, efilter); } }); ArrayList<String> ret = new ArrayList<String>(tline.size()); CollectionsX.transform(ret, tline, new UnaryFunction<Date, String>() { public String apply(Date x) { return ISO8601DateParser.format(x); } }); return ret; }
public EventInfoListDocument listEvents(String instanceFilter, String eventFilter, int maxCount) { final InstanceFilter ifilter = new InstanceFilter(instanceFilter, null, 0); final BpelEventFilter efilter = new BpelEventFilter(eventFilter, maxCount); EventInfoListDocument eid = EventInfoListDocument.Factory.newInstance(); final TEventInfoList eil = eid.addNewEventInfoList(); dbexec(new BpelDatabase.Callable<Object>() { public Object run(BpelDAOConnection session) throws Exception { List<BpelEvent> events = session.bpelEventQuery(ifilter, efilter); for (BpelEvent event : events) { TEventInfo tei = eil.addNewEventInfo(); fillEventInfo(tei, event); } return null; } }); return eid; }