/** * In the absence of DAOs and ORMs this creates an Event object from the persisted record. * * @param eventid a int. * @return a populated Event object */ public Event getEvent(final int eventid) { // don't switch using event builder since this event is read from the database final Event event = new Event(); Querier querier = new Querier( m_dataSource, "select * from events where eventid = ?", new RowProcessor() { public void processRow(ResultSet rs) throws SQLException { event.setDbid(rs.getInt("eventid")); event.setUei(rs.getString("eventuei")); event.setNodeid(rs.getLong("nodeid")); event.setTime(rs.getString("eventtime")); event.setHost(rs.getString("eventhost")); event.setInterface(rs.getString("ipaddr")); event.setSnmphost(rs.getString("eventsnmphost")); event.setService(getServiceName(rs.getInt("serviceid"))); event.setCreationTime(rs.getString("eventcreatetime")); event.setSeverity(rs.getString("eventseverity")); event.setPathoutage(rs.getString("eventpathoutage")); Tticket tticket = new Tticket(); tticket.setContent(rs.getString("eventtticket")); tticket.setState(rs.getString("eventtticketstate")); event.setTticket(tticket); event.setSource(rs.getString("eventsource")); } private String getServiceName(int serviceid) { SingleResultQuerier querier = new SingleResultQuerier( m_dataSource, "select servicename from service where serviceid = ?"); return (String) querier.getResult(); } }); querier.execute(eventid); return event; }
/** * forEachUserNotification * * @param notifId a int. * @param rp a {@link org.opennms.netmgt.utils.RowProcessor} object. */ public void forEachUserNotification(final int notifId, final RowProcessor rp) { final Querier querier = new Querier( m_dataSource, "select * from usersNotified where notifyId = ? order by notifytime", rp); querier.execute(notifId); }
/** * rebuildParameterMap * * @param notifId a int. * @param resolutionPrefix a {@link java.lang.String} object. * @param skipNumericPrefix a boolean. * @return a {@link java.util.Map} object. * @throws java.lang.Exception if any. */ public Map<String, String> rebuildParameterMap( final int notifId, final String resolutionPrefix, final boolean skipNumericPrefix) throws Exception { final Map<String, String> parmMap = new HashMap<String, String>(); Querier querier = new Querier( m_dataSource, "select notifications.*, service.* from notifications left outer join service on notifications.serviceID = service.serviceID where notifyId = ?") { public void processRow(ResultSet rs) throws SQLException { /* * Note, getString on results is valid for any SQL data type except the new SQL types: * Blog, Clob, Array, Struct, Ref * of which we have none in this table so this row processor is using getString * to correctly align with annotated types in the map. */ parmMap.put( NotificationManager.PARAM_TEXT_MSG, BroadcastEventProcessor.expandNotifParms( resolutionPrefix, Collections.singletonMap("noticeid", String.valueOf(notifId))) + rs.getString("textMsg")); if (skipNumericPrefix) { parmMap.put(NotificationManager.PARAM_NUM_MSG, rs.getString("numericMsg")); } else { parmMap.put( NotificationManager.PARAM_NUM_MSG, BroadcastEventProcessor.expandNotifParms( resolutionPrefix, Collections.singletonMap("noticeid", String.valueOf(notifId))) + rs.getString("numericMsg")); } parmMap.put( NotificationManager.PARAM_SUBJECT, BroadcastEventProcessor.expandNotifParms( resolutionPrefix, Collections.singletonMap("noticeid", String.valueOf(notifId))) + rs.getString("subject")); parmMap.put(NotificationManager.PARAM_NODE, rs.getString("nodeID")); parmMap.put(NotificationManager.PARAM_INTERFACE, rs.getString("interfaceID")); parmMap.put(NotificationManager.PARAM_SERVICE, rs.getString("serviceName")); parmMap.put("noticeid", rs.getString("notifyID")); parmMap.put("eventID", rs.getString("eventID")); parmMap.put("eventUEI", rs.getString("eventUEI")); Notification notification = null; try { notification = getNotification(rs.getObject("notifConfigName").toString()); } catch (MarshalException e) { } catch (ValidationException e) { } catch (IOException e) { } if (notification != null) { addNotificationParams(parmMap, notification); } } }; querier.execute(notifId); return parmMap; }