⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sequence.java

📁 RFID复杂事件处理系统的研究实验
💻 JAVA
字号:
package test;

public class Sequence extends NonLeaf{
	public Sequence(Sequence q)
	{
		super(q);
		this.operator=new String(";");
	}
	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{
				P_Event pe1=q1.getevents().getFirst();
				P_Event pe2=q2.getevents().getFirst();
		        if(pe1.compareEarly(pe2))
				{
					
					if(n.getCheckflag()) 
					{
						while(q1.getevents().size()!=0)
						{
							ce=new C_Event(q1.getevents().removeLast(),q2.getevents().getFirst(),n);
							if(n.checkattribute(ce)) break;
							else ce=null;
						}						
						q2.getevents().removeFirst();
						
					}else{
						ce=new C_Event(q1.getevents().removeLast(),q2.getevents().removeFirst(),n);
					}
				}else{
						q2.getevents().removeFirst();	
				}							
			}			
		}else{
			if(n1.getisleaf() && !n2.getisleaf())
			{
				q1=(Leaf)n1;
				p2=(NonLeaf)n2;					
				if(q1.getevents().size()==0) 
				{
					p2.getmid_result().removeLast();
				}else{
					P_Event pe=q1.getevents().getFirst();
					C_Event ce0=p2.getmid_result().getFirst();
				    if(pe.compareEarly(ce0))
					{
							
						if(n.getCheckflag()) 
						{
							while(q1.getevents().size()!=0)
							{
								ce=new C_Event(q1.getevents().removeLast(),p2.getmid_result().getFirst(),n);
								if(n.checkattribute(ce)) break;
								else ce=null;
							}
							
							p2.getmid_result().removeFirst();
						}else{
							ce=new C_Event(q1.getevents().removeFirst(),p2.getmid_result().removeFirst(),n);
						}
					}else{
						p2.getmid_result().removeFirst();	
					}	
				}
			}else{
				if(!n1.getisleaf() && n2.getisleaf())
				{
					p1=(NonLeaf)n1;
					q2=(Leaf)n2;					
					if(p1.getmid_result().size()==0) 
					{				
						q2.getevents().removeLast();				
					}					
					else{
						C_Event ce0=p1.getmid_result().getFirst();
						P_Event pe=q2.getevents().getFirst();
				        if(ce0.compareEarly(pe))
						{
							
							if(n.getCheckflag()&& !n.checkattribute(ce)) 
							{
								while(p1.getmid_result().size()!=0)
								{
									ce=new C_Event(q2.getevents().getLast(),p1.getmid_result().removeLast(),n);
									if(n.checkattribute(ce)) break;
									else ce=null;
								}
								q2.getevents().removeFirst();
							}else{
								ce=new C_Event(q2.getevents().removeFirst(),p1.getmid_result().removeFirst(),n);
							}
						}else{
							q2.getevents().removeFirst();	
						}							
					}	
				}else{						
					p1=(NonLeaf)n1;
					p2=(NonLeaf)n2;					
					if(p1.getmid_result().size()==0) 
					{				
						p2.getmid_result().removeFirst();				
					}					
					else{
						C_Event ce1=p1.getmid_result().getFirst();
						C_Event ce2=p2.getmid_result().getFirst();
				        if(ce1.compareEarly(ce2))
						{
							
							if(n.getCheckflag()) 
							{
								while(p1.getmid_result().size()!=0)
								{
									ce=new C_Event(p1.getmid_result().removeLast(),p2.getmid_result().getFirst(),n);
									if(n.checkattribute(ce)) break;
									else ce=null;
								}
								p2.getmid_result().removeFirst();
							}else{
								ce=new C_Event(p1.getmid_result().removeFirst(),p2.getmid_result().removeFirst(),n);
							}
						}else{
							p2.getmid_result().removeFirst();	
						}							
					}
				}
			}
		}
		/*try
		{
			Thread.sleep(1);
		}
		catch (InterruptedException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}*/
		return ce;
	}

	
}	
	
	


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -