diff --git a/AF-Demo/src/af/control/StateManager.java b/AF-Demo/src/af/control/StateManager.java index 95ffc2d..04a2b06 100644 --- a/AF-Demo/src/af/control/StateManager.java +++ b/AF-Demo/src/af/control/StateManager.java @@ -4,6 +4,7 @@ import af.interfaces.AFState; import af.state.StateIdle; import af.state.StateWaitE01; import af.state.StateWaitA; +import af.state.StateWaitC; import ec02.af.abstracts.AbstractAFStateManager; public class StateManager extends AbstractAFStateManager { @@ -18,5 +19,8 @@ public class StateManager extends AbstractAFStateManager { else if (state.equals(AFState.W_ARes)) { this.afState = new StateWaitA(); } + else if (state.equals(AFState.W_CRes)) { + this.afState = new StateWaitC(); + } } } diff --git a/AF-Demo/src/af/interfaces/AFState.java b/AF-Demo/src/af/interfaces/AFState.java index 63f5cca..09569fb 100644 --- a/AF-Demo/src/af/interfaces/AFState.java +++ b/AF-Demo/src/af/interfaces/AFState.java @@ -2,6 +2,8 @@ package af.interfaces; public interface AFState { public String IDLE = "IDLE"; + public String END = "END"; public String W_E01Res = "W_DBRes"; public String W_ARes = "W_ARes"; + public String W_CRes = "W_CRes"; } diff --git a/AF-Demo/src/af/message/EC02Builder.java b/AF-Demo/src/af/message/EC02Builder.java index 14b373a..fd52473 100644 --- a/AF-Demo/src/af/message/EC02Builder.java +++ b/AF-Demo/src/af/message/EC02Builder.java @@ -39,10 +39,10 @@ public class EC02Builder { return eqxRawDataList; } - public EquinoxRawData getHTTPResponse(EQXRawInstance eqxRaw){ + public EquinoxRawData getHTTPResponse(EQXRawInstance eqxRaw,String Invoke){ eqxRaw.setType(EQXMsg.RESPONSE); this.msgBuilder = new EC02MSGBuilder(eqxRaw); - this.msgBuilder.setInvoke(this.ec02Ins.getAFInstance().getInvoke()); + this.msgBuilder.setInvoke(Invoke); return this.msgBuilder.getHttpMessage(); } diff --git a/AF-Demo/src/af/state/StateIdle.java b/AF-Demo/src/af/state/StateIdle.java index cc0ac4e..173d720 100644 --- a/AF-Demo/src/af/state/StateIdle.java +++ b/AF-Demo/src/af/state/StateIdle.java @@ -30,7 +30,7 @@ public class StateIdle implements IAFState { ec02Ins.getAFInstance().setInvoke(eqxRawData.getInvoke()); ec02Ins.getAFInstance().setOrig(eqxRawData.getRawDataAttribute(EQXMsg.ORIG)); - if(eqxRawData.getRawEventType().equals(AFEvent.Incoming_HTTP_Request)){ + /*if(eqxRawData.getRawEventType().equals(AFEvent.Incoming_HTTP_Request)){ E01Instance e01Ins = new E01Instance(); ArrayList keys = new ArrayList(); keys.add(eqxRawData.getRawDataMessage()); @@ -50,7 +50,10 @@ public class StateIdle implements IAFState { abstractAF.getUtils().incrementStats("raise_by_stat"); abstractAF.getUtils().raiseAlarm("my_alarm", parameter, AlarmSeverity.WARNING, AlarmCategory.APPLICATION, AlarmType.Normal); this.eqxState = AFState.W_E01Res; - } + }*/ + + this.eqxState = AFState.W_ARes; + } ec02Ins.setEqxRawDataList(this.eqxRawDataList); return this.eqxState; diff --git a/AF-Demo/src/af/state/StateWaitA.java b/AF-Demo/src/af/state/StateWaitA.java index 2a069e8..8103a56 100644 --- a/AF-Demo/src/af/state/StateWaitA.java +++ b/AF-Demo/src/af/state/StateWaitA.java @@ -18,29 +18,47 @@ public class StateWaitA implements IAFState { private String eqxState = null; private EC02Builder ec02Builder = new EC02Builder(); private ArrayList eqxRawDataList = new ArrayList(); - + @Override public String doAction(AbstractAF abstractAF, Object instance, ArrayList eqxRawDataList) { - EC02Instance ec02Ins = (EC02Instance)instance; - - for(EquinoxRawData eqxRawData : eqxRawDataList) { - this.ec02Builder.setEquinoxRawData(eqxRawData, abstractAF, ec02Ins); - if(eqxRawData.getRawEventType().equals(AFEvent.Incoming_A_Response)){ - StringExtract str = new StringExtract(); - HashMap 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 { - - } + EC02Instance ec02Ins = (EC02Instance) instance; + + for (EquinoxRawData eqxRawData : eqxRawDataList) { + this.ec02Builder.setEquinoxRawData(eqxRawData, abstractAF, ec02Ins); + /* + * if(eqxRawData.getRawEventType().equals(AFEvent. + * Incoming_A_Response)){ StringExtract str = new StringExtract(); + * HashMap 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 { + * + * } } + */ + + EQXRawInstance eqxRaw = new EQXRawInstance(); + eqxRaw.setMessage("B Res."); + eqxRaw.setTo(eqxRawData.getOrig()); + eqxRaw.setCtype(EQXMsg.TEXTPLAIN); + this.eqxRawDataList.add(this.ec02Builder.getHTTPResponse(eqxRaw, eqxRawData.getInvoke())); + + ArrayList eqxRawList = new ArrayList(); + EQXRawInstance eqxRawC = new EQXRawInstance(); + eqxRawC.setMessage("C Req."); + eqxRawC.setTo(abstractAF.getUtils().getHmWarmConfig().get("Resource-Name-C").get(0)); + eqxRawC.setCtype(EQXMsg.TEXTXML); + eqxRawList.add(eqxRaw); + ArrayList rawList = this.ec02Builder.getHTTPRequest(eqxRawList); + for (int i = 0; i < rawList.size(); i++) { + this.eqxRawDataList.add(rawList.get(i)); } + this.eqxState = AFState.W_CRes; + } ec02Ins.setEqxRawDataList(this.eqxRawDataList); return this.eqxState; diff --git a/AF-Demo/src/af/state/StateWaitC.java b/AF-Demo/src/af/state/StateWaitC.java new file mode 100644 index 0000000..f77a310 --- /dev/null +++ b/AF-Demo/src/af/state/StateWaitC.java @@ -0,0 +1,55 @@ +package af.state; + +import java.util.ArrayList; +import java.util.HashMap; + +import th.co.ais.equinox.utils.StringExtract; +import af.instatnce.EC02Instance; +import af.instatnce.EQXRawInstance; +import af.interfaces.AFEvent; +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; + +public class StateWaitC implements IAFState { + private String eqxState = null; + private EC02Builder ec02Builder = new EC02Builder(); + private ArrayList eqxRawDataList = new ArrayList(); + + @Override + public String doAction(AbstractAF abstractAF, Object instance, ArrayList eqxRawDataList) { + EC02Instance ec02Ins = (EC02Instance) instance; + + for (EquinoxRawData eqxRawData : eqxRawDataList) { + this.ec02Builder.setEquinoxRawData(eqxRawData, abstractAF, ec02Ins); + /* + * if(eqxRawData.getRawEventType().equals(AFEvent. + * Incoming_A_Response)){ StringExtract str = new StringExtract(); + * HashMap 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 { + * + * } } + */ + + EQXRawInstance eqxRaw = new EQXRawInstance(); + eqxRaw.setMessage("A Res."); + eqxRaw.setTo(eqxRawData.getOrig()); + eqxRaw.setCtype(EQXMsg.TEXTPLAIN); + this.eqxRawDataList.add(this.ec02Builder.getHTTPResponse(eqxRaw, ec02Ins.getAFInstance().getInvoke())); + this.eqxState = AFState.END; + + } + ec02Ins.setEqxRawDataList(this.eqxRawDataList); + return this.eqxState; + } +} -- libgit2 0.21.2