StateWaitA.java 3.02 KB
package af.state;

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

import af.instatnce.EC02Instance;
import af.interfaces.AFState;
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 StateWaitA 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;
		if(ec02Ins.getEquinoxProperties().getDiag().equals("Timeout")){
			this.eqxRawDataList=ec02Ins.getAFInstance().getTimeout();
			eqxState = ec02Ins.getAFInstance().getState();
			date = new Date();
			long seconds = (date.getTime()-ec02Ins.getAFInstance().getTime().getTime())/1000;
			ec02Ins.getAFInstance().setTime(date);
			this.eqxState = AFState.W_ARes;
			
		}
		else{
		for (EquinoxRawData eqxRawData : eqxRawDataList) {
			
			this.ec02Builder.setEquinoxRawData(eqxRawData, abstractAF, ec02Ins);
			/*
			 * if(eqxRawData.getRawEventType().equals(AFEvent.
			 * Incoming_A_Response)){ StringExtract str = new StringExtract();
			 * HashMap<String, String> map =
			 * str.getAll(str.setMessage(eqxRawData.getRawDataMessage().trim()))
			 * ; String message = map.get("MSG[0].value"); if
			 * (message.trim().equals("SUCCESS")) { EQXRawInstance eqxRaw = new
			 * EQXRawInstance(); eqxRaw.setMessage(message.trim());
			 * eqxRaw.setTo(ec02Ins.getAFInstance().getOrig());
			 * eqxRaw.setCtype(EQXMsg.TEXTPLAIN);
			 * 
			 * this.eqxRawDataList.add(this.ec02Builder.getHTTPResponse(eqxRaw))
			 * ; this.eqxState = AFState.IDLE; } else {
			 * 
			 * } }
			 */
			

			for(int i=0;i<ec02Ins.getAFInstance().getTimeout().size();i++){
			if(ec02Ins.getAFInstance().getTimeout().get(i).getInvoke().equals(eqxRawData.getInvoke())){
				ec02Ins.getAFInstance().getTimeout().remove(i);
				}
			}
			if(ec02Ins.getAFInstance().getTimeout().size()!=0){
				AppLog.d("HAVE DATA");
				date = new Date();
				long seconds = (date.getTime()-ec02Ins.getAFInstance().getTime().getTime())/1000;
				this.eqxState = AFState.W_CRes;
			}
			else{
				date = new Date();
				long seconds = (date.getTime()-ec02Ins.getAFInstance().getTime().getTime())/1000;
				this.eqxState = AFState.W_CRes;
			}
			//ArrayList<EQXRawInstance> eqxRawList = new ArrayList<EQXRawInstance>();
			
			/*EQXRawInstance eqxRaw = new EQXRawInstance();
			eqxRaw.setMessage("C Req.");
			eqxRaw.setTo(abstractAF.getUtils().getHmWarmConfig().get("Resource-Name-C").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));
			}*/
			}
		}
		ec02Ins.getAFInstance().setState(eqxState);
		return this.eqxState;
	}
}