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 + -
显示快捷键?