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

📄 sequence.java

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

import java.util.LinkedList;

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 work1(NonLeaf n,Leaf n2)
	{
		C_Event ce=null;		
		Node n1=n.getlchild();		
		NonLeaf p1;
		Leaf q2;
		
		p1=(NonLeaf)n1;
		q2=(Leaf)n2;					
		if(((Leaf)p1.getlchild()).getevents().size()==0) 
		{				
			q2.getevents().removeLast();				
		}					
		else{
			P_Event pe1=((Leaf)p1.getlchild()).getevents().getFirst();
			P_Event pe2=q2.getevents().getFirst();
	        ce=new C_Event(pe1,pe2,n);
								
		}
		return ce;
	}		
	
	public C_Event work2(NonLeaf n,Leaf n2)
	{
		C_Event ce=null;		
		Node n1=n.getlchild();		
		NonLeaf p1;
		Leaf q2;
		
		p1=(NonLeaf)n1;
		q2=(Leaf)n2;					
		if(((Leaf)p1.getlchild()).getevents().size()==0) 
		{				
			q2.getevents().removeFirst();				
		}					
		else{
			
			POINT1:while(((Leaf)p1.getlchild()).getevents().size()!=0)
			{
				P_Event pe1=((Leaf)p1.getlchild()).getevents().removeFirst();
				int i;
				POINT2:for(i=0;i<((Leaf)((NonLeaf)p1.getrchild()).getrchild()).getevents().size();i++)
				{
					P_Event pe=((Leaf)((NonLeaf)p1.getrchild()).getrchild()).getevents().get(i);
					if(pe1.compareEarly(pe))
						break POINT2;
				}
				if(i==((Leaf)((NonLeaf)p1.getrchild()).getrchild()).getevents().size())
				{					
					ce=new C_Event(pe1,q2.getevents().removeFirst(),n);
					break POINT1;
				}				
			}
			if(ce==null) 
			{
				q2.getevents().removeFirst();
				LinkedList<P_Event> r=new LinkedList<P_Event>();
				((Leaf)((NonLeaf)p1.getrchild()).getrchild()).getevents().removeAll(r);	
			}
		}
		return ce;
	}		
		
	public C_Event work3(NonLeaf n,Leaf n2,WaitQueue waitQueue)
	{
		C_Event ce=null;			
		P_Event pe1=n2.getevents().getFirst();
		P_Event pe2;
		for(int i=waitQueue.getQueue().indexOf(pe1)-1;i>=0;i--)
		{
			pe2=waitQueue.getQueue().get(i);
			if(pe2.gettype()=='B') break;
			else if(pe2.gettype()!='C'){
	        ce=new C_Event(pe1,pe2,n);}
	        break;							
		}
		if(ce==null) n2.getevents().removeFirst();	
		return ce;
	}		

	
}	
	
	


⌨️ 快捷键说明

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