sequence.java
来自「RFID复杂事件处理系统的研究实验」· Java 代码 · 共 126 行
JAVA
126 行
package test2;
public class Sequence extends NonLeaf{
public Sequence()
{
super();
this.operator=new String(";");
}
public C_Event work(NonLeaf n,Node n2)
{
C_Event ce=null;
Node n1=n.getlchild();
NonLeaf p1,p2;
Leaf q1,q2;
if(n1.getisleaf() && n2.getisleaf())
{
q1=(Leaf)n1;
q2=(Leaf)n2;
if(q1.getevents().size()==0)
{
q2.getevents().removeLast();
}
else{
ce=new C_Event(q1.getevents().removeFirst(),q2.getevents().removeLast(),n);
}
}else{
if(n1.getisleaf() && !n2.getisleaf())
{
q1=(Leaf)n1;
p2=(NonLeaf)n2;
if(q1.getevents().size()==0)
{
p2.getmid_result().removeLast();
}
else{
while(q1.getevents().size()!=0)
{
if(q1.getevents().getFirst().compareEarly(p2.getmid_result().getLast()))
break;
q1.getevents().removeFirst();
}
if(q1.getevents().size()!=0)
ce=new C_Event(q1.getevents().removeFirst(),p2.getmid_result().removeLast(),n);
}
}else{
if(!n1.getisleaf() && n2.getisleaf())
{
p1=(NonLeaf)n1;
q2=(Leaf)n2;
if(!p1.getoperator().equals("!"))
{
if(p1.getmid_result().size()==0)
{
q2.getevents().removeLast();
}
else{
ce=new C_Event(q2.getevents().removeLast(),p1.getmid_result().removeFirst(),n);
}
}else{
if(p1.getmid_result().size()!=0)
{
q2.getevents().removeLast();
p1.resetmin_result();
}
else{
ce=new C_Event(q2.getevents().removeLast(),n);
}
}
}else{
p1=(NonLeaf)n1;
p2=(NonLeaf)n2;
if(!p1.getoperator().equals("!"))
{
if(p1.getmid_result().size()==0)
{
p2.getmid_result().removeLast();
}
else{
while(p1.getmid_result().size()!=0)
{
if(p1.getmid_result().getFirst().compareEarly(p2.getmid_result().getLast()))
break;
p1.getmid_result().removeFirst();
}
if(p1.getmid_result().size()!=0)
ce=new C_Event(p1.getmid_result().removeFirst(),p2.getmid_result().removeLast(),n);
}
}else{
if(p1.getmid_result().size()!=0)
{
p2.getmid_result().removeLast();
p1.resetmin_result();
}
else{
ce=new C_Event(p2.getmid_result().removeLast(),n);
}
}
}
}
}
/*try
{
Thread.sleep(10);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}*/
return ce;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?