c_event.java
来自「RFID复杂事件处理系统的研究实验」· Java 代码 · 共 180 行
JAVA
180 行
package test2;
import java.util.*;
public class C_Event{
private int id;
private char type;
private double t_start;
private double t_end;
private double delay=0;
private LinkedList<P_Event> el=new LinkedList<P_Event>();
boolean flag=true;
public boolean getFlag() {
return flag;
}
public void setFlag() {
this.flag = false;
}
public void resetFlag() {
this.flag = true;
}
public int getid()
{
return id;
}
public char gettype()
{
return type;
}
public double gett_start()
{
return t_start;
}
public double gett_end()
{
return t_end;
}
public LinkedList<P_Event> getel()
{
return el;
}
public C_Event(){}
public C_Event(P_Event e,Leaf n)
{
id=e.getid();
type=n.gettype();
el.add(e);
t_start=t_end=el.getFirst().gettimestamp();
flag=true;
}
public C_Event(C_Event e1,C_Event e2,NonLeaf n)
{
id=e1.getid();
type=n.gettype();
C_Event e3=new C_Event();
C_Event e4=new C_Event();
if(e1.el.size()>e2.el.size())
{
e3=e1;
e4=e2;
}
else {
e3=e2;
e4=e1;
}
el.addAll(e3.getel());
for(int i=0;i<e4.el.size();i++)
{
if(el.contains(e4.el.get(i))==false)
{
int j=0;
while(j<el.size() && el.get(j).gettimestamp()<e4.el.get(i).gettimestamp())
j++;
if(j==el.size()) el.addLast(e4.el.get(i));
else el.add(j,e4.el.get(i));
}
}
t_start=el.getFirst().gettimestamp();
t_end=el.getLast().gettimestamp();
}
public C_Event(P_Event e1,C_Event e2,NonLeaf n)
{
id=e1.getid();
type=n.gettype();
el.addAll(e2.getel());
if(!el.contains(e1))
{
int i=0;
while(i<el.size()&& el.get(i).gettimestamp()<e1.gettimestamp()) i++;
if(i==el.size()) el.addLast(e1);
else el.add(i,e1);
t_start=el.getFirst().gettimestamp();
t_end=el.getLast().gettimestamp();
}
}
public C_Event(P_Event e1,P_Event e2,NonLeaf n)
{
id=e1.getid();
type=n.gettype();
el.add(e1);
if(e1.gettimestamp()>e2.gettimestamp()) el.addFirst(e2);
else el.addLast(e2);
t_start=el.getFirst().gettimestamp();
t_end=el.getLast().gettimestamp();
}
C_Event(C_Event e,NonLeaf n)
{
id=e.getid();
type=n.gettype();
el.addAll(e.getel());
t_start=el.getFirst().gettimestamp();
t_end=el.getLast().gettimestamp();
}
C_Event(P_Event e,NonLeaf n)
{
id=e.getid();
type=n.gettype();
el.add(e);
t_start=t_end=el.getFirst().gettimestamp();
}
public boolean checkIn(double t)
{
if(t_end<=t+t_start) return true;
else return false;
}
public boolean checkIn(double t1,double t2)
{
if(t_start>=t1&&t_end<=t2) return true;
else return false;
}
public boolean checkhHave(P_Event e)
{
return el.contains(e);
}
public boolean compareEarly(C_Event e)
{
if(t_end<=e.gett_start()) return true;
else return false;
}
public boolean compareEarly(P_Event e)
{
if(t_end<=e.gettimestamp()) return true;
else return false;
}
public double getDelay() {
return delay;
}
public void setDelay(double delay) {
this.delay = delay;
}
public boolean equal(C_Event ce)
{
int i;
for(i=0;i<ce.getel().size();i++)
{
if(ce.getel().get(i).gettype()!=this.getel().get(i).gettype()
|| ce.getel().get(i).gettimestamp()!=this.getel().get(i).gettimestamp())
break;
}
if(i==ce.getel().size()) return true;
return false;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?