c_event.java

来自「RFID复杂事件处理系统的研究实验」· Java 代码 · 共 180 行

JAVA
180
字号
package test2;

import java.util.*;

public class C_Event{
	private int id;
	private char type;
	private double t_start;
	private double t_end;
	private double delay=0;
	private LinkedList<P_Event> el=new LinkedList<P_Event>();
	boolean flag=true;
	
	public boolean getFlag() {
		return flag;
	}
	public void setFlag() {
		this.flag = false;
	}
	public void resetFlag() {
		this.flag = true;
	}
	public int getid()
	{
		return id;
	}	
	public char gettype()	
	{
		return type;
	}
	public double gett_start()
	{
		return t_start;
	}
	public double gett_end()
	{
		return t_end;
	}
	public LinkedList<P_Event> getel()
	{
		return el;
	}
	
	public C_Event(){}
	public C_Event(P_Event e,Leaf n)
	{
		id=e.getid();
		type=n.gettype();
		el.add(e);
		t_start=t_end=el.getFirst().gettimestamp();
		flag=true;
	}
	public C_Event(C_Event e1,C_Event e2,NonLeaf n)
	{
		id=e1.getid();
		type=n.gettype();
		C_Event e3=new C_Event();
		C_Event e4=new C_Event();
		if(e1.el.size()>e2.el.size())
		{
			e3=e1;
			e4=e2;
		}
		else {
			e3=e2;
			e4=e1;
		}
		el.addAll(e3.getel());
		for(int i=0;i<e4.el.size();i++)
		{
			if(el.contains(e4.el.get(i))==false)
			{
				int j=0;
				while(j<el.size() && el.get(j).gettimestamp()<e4.el.get(i).gettimestamp())
					j++;
				if(j==el.size()) el.addLast(e4.el.get(i));
				else el.add(j,e4.el.get(i));
			}
		}
		t_start=el.getFirst().gettimestamp();
		t_end=el.getLast().gettimestamp();		
	}
	
	public C_Event(P_Event e1,C_Event e2,NonLeaf n)
	{
		id=e1.getid();
		type=n.gettype();
		el.addAll(e2.getel());
		if(!el.contains(e1))
		{
			int i=0;
			while(i<el.size()&& el.get(i).gettimestamp()<e1.gettimestamp()) i++;
			
			if(i==el.size()) el.addLast(e1);
			else el.add(i,e1);
			t_start=el.getFirst().gettimestamp();
			t_end=el.getLast().gettimestamp();
		}
		
	}
	
	public C_Event(P_Event e1,P_Event e2,NonLeaf n)
	{
		id=e1.getid();
		type=n.gettype();
		el.add(e1);
		if(e1.gettimestamp()>e2.gettimestamp()) el.addFirst(e2);
		else el.addLast(e2);
		t_start=el.getFirst().gettimestamp();
		t_end=el.getLast().gettimestamp();
	}
	
	C_Event(C_Event e,NonLeaf n)
	{
		id=e.getid();
		type=n.gettype();
		el.addAll(e.getel());
		t_start=el.getFirst().gettimestamp();
		t_end=el.getLast().gettimestamp();
	}
	
	C_Event(P_Event e,NonLeaf n)
	{
		id=e.getid();
		type=n.gettype();
		el.add(e);
		t_start=t_end=el.getFirst().gettimestamp();
	}
	
	public boolean checkIn(double t)
	{
		if(t_end<=t+t_start) return true;
		else return false;
	}
	
	public boolean checkIn(double t1,double t2)
	{
		if(t_start>=t1&&t_end<=t2) return true;
		else return false;
	}
	
	public boolean checkhHave(P_Event e)
	{
		return el.contains(e);
	}
	
	public boolean compareEarly(C_Event e)
	{
		if(t_end<=e.gett_start()) return true;
		else return false;
	}
	
	public boolean compareEarly(P_Event e)
	{
		if(t_end<=e.gettimestamp()) return true;
		else return false;
	}
	public double getDelay() {
		return delay;
	}
	public void setDelay(double delay) {
		this.delay = delay;
	}
	
	public boolean equal(C_Event ce)
	{
		int i;
		for(i=0;i<ce.getel().size();i++)
		{
			if(ce.getel().get(i).gettype()!=this.getel().get(i).gettype()
				|| ce.getel().get(i).gettimestamp()!=this.getel().get(i).gettimestamp())
				break;
		}
		if(i==ce.getel().size()) return true;
		return false;
	}
}


⌨️ 快捷键说明

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