StateIdle.java 3.17 KB
package af.state;

import java.util.ArrayList;
import java.util.Date;

import af.instatnce.EC02Instance;
import af.instatnce.EQXRawInstance;
import af.interfaces.AFState;
import af.interfaces.EQXMsg;
import af.message.EC02Builder;
import ec02.af.abstracts.AbstractAF;
import ec02.af.data.EquinoxRawData;
import ec02.af.interfaces.IAFState;
import ec02.utils.AppLog;

public class StateIdle  implements IAFState {
	private String eqxState = null;
	private EC02Builder ec02Builder = new EC02Builder();
	private ArrayList<EquinoxRawData> eqxRawDataList = new ArrayList<EquinoxRawData>();
	private Date date = null;

	@Override
	public String doAction(AbstractAF abstractAF, Object instance, ArrayList<EquinoxRawData> eqxRawDataList) {
		EC02Instance ec02Ins = (EC02Instance) instance;
		AppLog.d("%%%%%%%"+ec02Ins.getAFInstance().getInvoke());
		if(ec02Ins.getAFInstance().getInvoke()!=""){
			for(EquinoxRawData eqxRawData : eqxRawDataList){
				EQXRawInstance eqxRaw = new EQXRawInstance();
				eqxRaw.setMessage("Already in use!");
				eqxRaw.setTo(ec02Ins.getAFInstance().getOrig());
				eqxRaw.setCtype(EQXMsg.TEXTPLAIN);
				this.eqxRawDataList.add(this.ec02Builder.getHTTPResponse(eqxRaw,ec02Ins.getAFInstance().getInvoke()));
				this.eqxState = AFState.IDLE;
			}
		}
		else{
		for(EquinoxRawData eqxRawData : eqxRawDataList){
			this.ec02Builder.setEquinoxRawData(eqxRawData, abstractAF, ec02Ins);
			AppLog.d("%%%%%%%"+ec02Ins.getAFInstance().getInvoke());
			ec02Ins.getAFInstance().setInvoke(eqxRawData.getInvoke());
			ec02Ins.getAFInstance().setOrig(eqxRawData.getRawDataAttribute(EQXMsg.ORIG));
			
			/*if(eqxRawData.getRawEventType().equals(AFEvent.Incoming_HTTP_Request)){
				E01Instance e01Ins = new E01Instance();
				ArrayList<String> keys = new ArrayList<String>();
				keys.add(eqxRawData.getRawDataMessage());
				keys.add("def");
				keys.add("def");
				keys.add("def");
				keys.add("def");
				e01Ins.setCmd("search");
				e01Ins.setObjType("TESTDATA");
				e01Ins.setKey(keys);
//				e01Ins.setId("01");
				ec02Ins.setE01Ins(e01Ins);
				this.ec02Builder.getE01Request();
				String [] parameter = {""};
				abstractAF.getUtils().writeLog("mylog1", "hello word!!!");
				abstractAF.getUtils().incrementStats("my_stat");
				abstractAF.getUtils().incrementStats("raise_by_stat");
				abstractAF.getUtils().raiseAlarm("my_alarm", parameter, AlarmSeverity.WARNING, AlarmCategory.APPLICATION, AlarmType.Normal);
				this.eqxState = AFState.W_E01Res;
			}*/
			ArrayList<EQXRawInstance> eqxRawList = new ArrayList<EQXRawInstance>();
			
			EQXRawInstance eqxRaw = new EQXRawInstance();
			eqxRaw.setMessage("B Req.");
			eqxRaw.setTo(abstractAF.getUtils().getHmWarmConfig().get("Resource-Name-B").get(0));
			eqxRaw.setCtype(EQXMsg.TEXTXML);
			eqxRawList.add(eqxRaw);
			ArrayList<EquinoxRawData> rawList = this.ec02Builder.getBRequest(eqxRawList);
			for (int i = 0; i < rawList.size(); i++) {
				this.eqxRawDataList.add(rawList.get(i));		
			}	
			date = new Date();
			AppLog.d(""+date);
			this.eqxState = AFState.W_ARes;
			}
		}
		ec02Ins.setEqxRawDataList(this.eqxRawDataList);
		ec02Ins.getAFInstance().setTimeout(this.eqxRawDataList);
		ec02Ins.getAFInstance().setState(eqxState);
		return this.eqxState;
	}

}