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

📄 and.java

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


public class AND extends NonLeaf{
	
	public AND()
	{
		super("*");
	}
	public C_Event work(int ii,NonLeaf n,Node n1)//n父结点;n1子结点 chronic
	{
		C_Event ce=null;
		Node n2;
		if(n1==n.getlchild()){
			n2=n.getrchild();				
		}else n2=n.getlchild();
		
		NonLeaf p1,p2;
		Leaf q1,q2;
		
		if(n1.getisleaf() && n2.getisleaf())
		{
			q1=(Leaf)n1;
			q2=(Leaf)n2;
			//
			if(q2.getevents().size()==0) 
			{
				return ce;
			}
			else{
				int j;
				for(j=0;j<q2.getparent().size();j++)
					if(q2.getparent().get(j)==n) break;
				int i=0;
				for(i=0;i<q2.getevents().size();i++)
				{
					if(q2.getevents().get(i).getflag(j)) break;
				}
				if(i==q2.getevents().size())
				{
					return ce;
				}
				else{
				ce=new C_Event(q1.getevents().getLast(),q2.getevents().get(i),n);
				q1.getevents().getLast().setflag(ii);
				if(q1.getevents().getLast().checkdelete())
					q1.getevents().removeLast();
				q2.getevents().get(i).setflag(j);
				if(q2.getevents().get(i).checkdelete())
					q2.getevents().remove(i);
				ce.initflag(n);
				}
			}
		}else{
			if(!n1.getisleaf() && n2.getisleaf())
			{
				p1=(NonLeaf)n1;
				q2=(Leaf)n2;
				
				if(q2.getevents().size()==0)
				{
					return ce;
				}
				else{
					int j;
					for(j=0;j<q2.getparent().size();j++)
						if(q2.getparent().get(j)==n) break;
					int i=0;
					for(i=0;i<q2.getevents().size();i++)
					{
						if(q2.getevents().get(i).getflag(j)) break;
					}
					if(i==q2.getevents().size())
					{
						return ce;
					}
					else{
						ce=new C_Event(q2.getevents().get(i),p1.getmid_result().getLast(),n);
						p1.getmid_result().getLast().setflag(ii);
						if(p1.getmid_result().getLast().checkdelete())
							p1.getmid_result().removeLast();
						q2.getevents().get(i).setflag(j);
						if(q2.getevents().get(i).checkdelete())
							q2.getevents().remove(i);
						ce.initflag(n);
					}				
				}
			}else{
				if(n1.getisleaf() && !n2.getisleaf())
				{
					
					q1=(Leaf)n1;
					p2=(NonLeaf)n2;
					if(!p2.getoperator().equals("!")){
					if(p2.getmid_result().size()==0)
					{
						return ce;
					}
					else{
						int j;
						for(j=0;j<p2.getparent().size();j++)
							if(p2.getparent().get(j)==n) break;
						int i=0;
						for(i=0;i<p2.getmid_result().size();i++)
						{
							if(p2.getmid_result().get(i).getflag(j)) break;
						}
						if(i==p2.getmid_result().size())
						{
							return ce;
						}
						else{
							ce=new C_Event(q1.getevents().getLast(),p2.getmid_result().get(i),n);
							q1.getevents().getLast().setflag(ii);
							if(q1.getevents().getLast().checkdelete())
								q1.getevents().removeLast();
							p2.getmid_result().get(i).setflag(j);
							if(p2.getmid_result().get(i).checkdelete())
								p2.getmid_result().remove(i);
							ce.initflag(n);
						}																
					}}else{
						if(p2.getmid_result().size()==0) 
						{
							ce=new C_Event(q1.getevents().getLast(),n);
							q1.getevents().getLast().setflag(ii);
							if(q1.getevents().getLast().checkdelete())
								q1.getevents().removeLast();
							ce.initflag(n);
						}
						else{
							int j;
							for(j=0;j<p2.getparent().size();j++)
								if(p2.getparent().get(j)==n) break;
							boolean f=true;
							for(int i=0;i<p2.getmid_result().size();i++)
							{
								if(p2.getmid_result().get(i).getflag(j)) 
								{
									f=false;
									p2.getmid_result().get(i).setflag(j);
								}
							}
							if(f)
							{
								ce=new C_Event(q1.getevents().getLast(),n);
								q1.getevents().getLast().setflag(ii);
								if(q1.getevents().getLast().checkdelete())
									q1.getevents().removeLast();
								ce.initflag(n);
							}else{
								return ce;
							}		
					    }
					}
				}else{					
					p1=(NonLeaf)n1;
					p2=(NonLeaf)n2;		
					if(!p2.getoperator().equals("!")){
					if(p2.getmid_result().size()==0) 
					{
						return ce;
					}
					else{
						int j;
						for(j=0;j<p2.getparent().size();j++)
							if(p2.getparent().get(j)==n) break;
						int i=0;
						for(i=0;i<p2.getmid_result().size();i++)
						{
							if(p2.getmid_result().get(i).getflag(j)) break;
						}
						if(i==p2.getmid_result().size())
						{
							return ce;
						}
						else{
							ce=new C_Event(p1.getmid_result().getLast(),p2.getmid_result().get(i),n);
							p1.getmid_result().getLast().setflag(ii);
							if(p1.getmid_result().getLast().checkdelete())
								p1.getmid_result().removeLast();
							p2.getmid_result().get(i).setflag(j);
							if(p2.getmid_result().get(i).checkdelete())
								p2.getmid_result().remove(i);
							ce.initflag(n);
						}																								
					}
				}
				else{
					if(p2.getmid_result().size()==0) 
					{
						ce=new C_Event(p1.getmid_result().getLast(),n);
						p1.getmid_result().getLast().setflag(ii);
						if(p1.getmid_result().getLast().checkdelete())
							p1.getmid_result().removeLast();
						ce.initflag(n);
					}
					else{
						int j;
						for(j=0;j<p2.getparent().size();j++)
							if(p2.getparent().get(j)==n) break;
						boolean f=true;
						for(int i=0;i<p2.getmid_result().size();i++)
						{
							if(p2.getmid_result().get(i).getflag(j)) 
							{
								f=false;
								p2.getmid_result().get(i).setflag(j);
							}
						}
						if(f)
						{
							ce=new C_Event(p1.getmid_result().getLast(),n);
							p1.getmid_result().getLast().setflag(ii);
							if(p1.getmid_result().getLast().checkdelete())
								p1.getmid_result().removeLast();
							ce.initflag(n);
						}else{
							return ce;
						}		
				    }
				}
				}
			}
		}
		return ce;
	}
	
}

⌨️ 快捷键说明

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