package org.infosec.ismp.model.event;
import java.io.Serializable;
import java.io.StringWriter;
import java.io.Writer;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.ValidationException;
import org.infosec.ismp.model.Parm;
import org.infosec.ismp.model.Parms;
import org.infosec.ismp.model.Value;
import org.infosec.ismp.model.poller.config.Service;
import org.infosec.ismp.model.spservicepoller.SpecialService;
import org.infosec.ismp.model.syslog.Syslog;
import org.infosec.ismp.model.syslog.SyslogWrapper;
import org.infosec.ismp.model.syslog.UeiMatch;
/**
*
* 代表系统内部发生的事件,例如增加、删除节点等,便于各个子系统之间的通信。
* @author <a href="mailto:lianglin1979@sjtu.edu.cn">lianglin</a>
* TODO : 根据后面的实现添加具体的内容。
*/
public class Event implements Serializable {
private String uuid;// 事件唯一id
private String uei;// universal event id,事件类型代号
private String time;// event time
private String source;// 来源于那个服务
private String host;// from host;
private String ipAddr;
private String descr;
private String nodeid;
private Parms parms;
public String getDescr() {
return descr;
}
public void setDescr(String descr) {
this.descr = descr;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getUei() {
return uei;
}
public void setUei(String uei) {
this.uei = uei;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getUuid() {
return uuid;
}
public void setUuid(String uuid) {
this.uuid = uuid;
}
public Parms getParms() {
return parms;
}
public void setParms(Parms parms) {
this.parms = parms;
}
public void addParm(Parm parm){
if(parms==null){
parms = new Parms();
}
this.parms.addParm(parm);
}
public static void main(String[] args) throws Exception {
Event event = new Event();
event.setUuid("ppppppppppp");
event.setUei("test/xdfdf/dfdf");
Syslog log = new Syslog();
log.setHostname("test");
// SyslogWrapper wrapper = new SyslogWrapper();
// wrapper.setSyslog(log);
// event.setSyslog(wrapper);
// event.addParam("pp", "dd");
StringWriter writer = new StringWriter();
Marshaller.marshal(event, writer);
System.out.println(writer.toString());
}
public void addParam(String parameterName, String vettedValue) {
if(parms==null){
parms = new Parms();
}
Parm parm = new Parm();
Value value = new Value();
value.setContent(vettedValue);
parm.setValue(value);
parm.setParmName(parameterName);
parms.addParm(parm);
}
public void marshal(final Writer out) throws MarshalException,
ValidationException {
Marshaller.marshal(this, out);
}
public String getIpAddr() {
return ipAddr;
}
public void setIpAddr(String ipAddr) {
this.ipAddr = ipAddr;
}
public String getNodeid() {
return nodeid;
}
public void setNodeid(String nodeid) {
this.nodeid = nodeid;
}
public Parms getParams() {
return parms;
}
public void setParams(Parms params) {
this.parms = params;
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
// public SpecialService getSpecialService() {
// return specialService;
// }
//
// public void setSpecialService(SpecialService specialService) {
// this.specialService = specialService;
// }
//
// public UeiMatch getUeiMatch() {
// return ueiMatch;
// }
//
// public void setUeiMatch(UeiMatch ueiMatch) {
// this.ueiMatch = ueiMatch;
// }
}