Commit 0faeb11c9a8b8896cfcda4264c160950bdfaf2fc

Authored by Suraputt Suntimitr
1 parent 064d2ecd
Exists in AFDemo_Ex5

AFDemo_EX05

AF-Demo/src/af/control/StateManager.java
@@ -4,6 +4,7 @@ import af.interfaces.AFState; @@ -4,6 +4,7 @@ import af.interfaces.AFState;
4 import af.state.StateIdle; 4 import af.state.StateIdle;
5 import af.state.StateWaitE01; 5 import af.state.StateWaitE01;
6 import af.state.StateWaitA; 6 import af.state.StateWaitA;
  7 +import af.state.StateWaitB;
7 import ec02.af.abstracts.AbstractAFStateManager; 8 import ec02.af.abstracts.AbstractAFStateManager;
8 9
9 public class StateManager extends AbstractAFStateManager { 10 public class StateManager extends AbstractAFStateManager {
@@ -18,5 +19,9 @@ public class StateManager extends AbstractAFStateManager { @@ -18,5 +19,9 @@ public class StateManager extends AbstractAFStateManager {
18 else if (state.equals(AFState.W_ARes)) { 19 else if (state.equals(AFState.W_ARes)) {
19 this.afState = new StateWaitA(); 20 this.afState = new StateWaitA();
20 } 21 }
  22 +
  23 + else if (state.equals(AFState.W_BRes)) {
  24 + this.afState = new StateWaitB();
  25 + }
21 } 26 }
22 } 27 }
AF-Demo/src/af/interfaces/AFState.java
@@ -2,6 +2,8 @@ package af.interfaces; @@ -2,6 +2,8 @@ package af.interfaces;
2 2
3 public interface AFState { 3 public interface AFState {
4 public String IDLE = "IDLE"; 4 public String IDLE = "IDLE";
  5 + public String END = "END";
5 public String W_E01Res = "W_DBRes"; 6 public String W_E01Res = "W_DBRes";
6 public String W_ARes = "W_ARes"; 7 public String W_ARes = "W_ARes";
  8 + public String W_BRes = "W_BRes";
7 } 9 }
AF-Demo/src/af/state/StateIdle.java
@@ -4,6 +4,7 @@ import java.util.ArrayList; @@ -4,6 +4,7 @@ import java.util.ArrayList;
4 4
5 import af.instatnce.E01Instance; 5 import af.instatnce.E01Instance;
6 import af.instatnce.EC02Instance; 6 import af.instatnce.EC02Instance;
  7 +import af.instatnce.EQXRawInstance;
7 import af.interfaces.AFEvent; 8 import af.interfaces.AFEvent;
8 import af.interfaces.AFState; 9 import af.interfaces.AFState;
9 import af.interfaces.EQXMsg; 10 import af.interfaces.EQXMsg;
@@ -30,7 +31,7 @@ public class StateIdle implements IAFState { @@ -30,7 +31,7 @@ public class StateIdle implements IAFState {
30 ec02Ins.getAFInstance().setInvoke(eqxRawData.getInvoke()); 31 ec02Ins.getAFInstance().setInvoke(eqxRawData.getInvoke());
31 ec02Ins.getAFInstance().setOrig(eqxRawData.getRawDataAttribute(EQXMsg.ORIG)); 32 ec02Ins.getAFInstance().setOrig(eqxRawData.getRawDataAttribute(EQXMsg.ORIG));
32 33
33 - if(eqxRawData.getRawEventType().equals(AFEvent.Incoming_HTTP_Request)){ 34 + /*if(eqxRawData.getRawEventType().equals(AFEvent.Incoming_HTTP_Request)){
34 E01Instance e01Ins = new E01Instance(); 35 E01Instance e01Ins = new E01Instance();
35 ArrayList<String> keys = new ArrayList<String>(); 36 ArrayList<String> keys = new ArrayList<String>();
36 keys.add(eqxRawData.getRawDataMessage()); 37 keys.add(eqxRawData.getRawDataMessage());
@@ -49,8 +50,21 @@ public class StateIdle implements IAFState { @@ -49,8 +50,21 @@ public class StateIdle implements IAFState {
49 abstractAF.getUtils().incrementStats("my_stat"); 50 abstractAF.getUtils().incrementStats("my_stat");
50 abstractAF.getUtils().incrementStats("raise_by_stat"); 51 abstractAF.getUtils().incrementStats("raise_by_stat");
51 abstractAF.getUtils().raiseAlarm("my_alarm", parameter, AlarmSeverity.WARNING, AlarmCategory.APPLICATION, AlarmType.Normal); 52 abstractAF.getUtils().raiseAlarm("my_alarm", parameter, AlarmSeverity.WARNING, AlarmCategory.APPLICATION, AlarmType.Normal);
52 - this.eqxState = AFState.W_E01Res;  
53 - } 53 + this.eqxState = AFState.W_E01Res;*/
  54 +
  55 + ArrayList<EQXRawInstance> eqxRawList = new ArrayList<EQXRawInstance>();
  56 + EQXRawInstance eqxRaw = new EQXRawInstance();
  57 + eqxRaw.setMessage("B Req.");
  58 + eqxRaw.setTo(abstractAF.getUtils().getHmWarmConfig().get("Resource-Name-B").get(0));
  59 + eqxRaw.setCtype(EQXMsg.TEXTXML);
  60 + eqxRawList.add(eqxRaw);
  61 + ArrayList<EquinoxRawData> rawList = this.ec02Builder.getHTTPRequest(eqxRawList);
  62 + for (int i = 0; i < rawList.size(); i++) {
  63 + this.eqxRawDataList.add(rawList.get(i));
  64 + }
  65 + this.eqxState = AFState.W_ARes;
  66 +
  67 + /*}*/
54 } 68 }
55 ec02Ins.setEqxRawDataList(this.eqxRawDataList); 69 ec02Ins.setEqxRawDataList(this.eqxRawDataList);
56 return this.eqxState; 70 return this.eqxState;
AF-Demo/src/af/state/StateWaitA.java
@@ -25,7 +25,7 @@ public class StateWaitA implements IAFState { @@ -25,7 +25,7 @@ public class StateWaitA implements IAFState {
25 25
26 for(EquinoxRawData eqxRawData : eqxRawDataList) { 26 for(EquinoxRawData eqxRawData : eqxRawDataList) {
27 this.ec02Builder.setEquinoxRawData(eqxRawData, abstractAF, ec02Ins); 27 this.ec02Builder.setEquinoxRawData(eqxRawData, abstractAF, ec02Ins);
28 - if(eqxRawData.getRawEventType().equals(AFEvent.Incoming_A_Response)){ 28 + /*if(eqxRawData.getRawEventType().equals(AFEvent.Incoming_A_Response)){
29 StringExtract str = new StringExtract(); 29 StringExtract str = new StringExtract();
30 HashMap<String, String> map = str.getAll(str.setMessage(eqxRawData.getRawDataMessage().trim())); 30 HashMap<String, String> map = str.getAll(str.setMessage(eqxRawData.getRawDataMessage().trim()));
31 String message = map.get("MSG[0].value"); 31 String message = map.get("MSG[0].value");
@@ -40,7 +40,20 @@ public class StateWaitA implements IAFState { @@ -40,7 +40,20 @@ public class StateWaitA implements IAFState {
40 else { 40 else {
41 41
42 } 42 }
43 - } 43 + }*/
  44 +
  45 + ArrayList<EQXRawInstance> eqxRawList = new ArrayList<EQXRawInstance>();
  46 + EQXRawInstance eqxRaw = new EQXRawInstance();
  47 + eqxRaw.setMessage("B Req.");
  48 + eqxRaw.setTo(abstractAF.getUtils().getHmWarmConfig().get("Resource-Name-B").get(0));
  49 + eqxRaw.setCtype(EQXMsg.TEXTXML);
  50 + eqxRawList.add(eqxRaw);
  51 + ArrayList<EquinoxRawData> rawList = this.ec02Builder.getHTTPRequest(eqxRawList);
  52 + for (int i = 0; i < rawList.size(); i++) {
  53 + this.eqxRawDataList.add(rawList.get(i));
  54 + }
  55 + this.eqxState = AFState.W_BRes;
  56 +
44 } 57 }
45 ec02Ins.setEqxRawDataList(this.eqxRawDataList); 58 ec02Ins.setEqxRawDataList(this.eqxRawDataList);
46 return this.eqxState; 59 return this.eqxState;
AF-Demo/src/af/state/StateWaitB.java 0 → 100644
@@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
  1 +package af.state;
  2 +
  3 +import java.util.ArrayList;
  4 +import java.util.HashMap;
  5 +
  6 +import th.co.ais.equinox.utils.StringExtract;
  7 +import af.instatnce.EC02Instance;
  8 +import af.instatnce.EQXRawInstance;
  9 +import af.interfaces.AFEvent;
  10 +import af.interfaces.AFState;
  11 +import af.interfaces.EQXMsg;
  12 +import af.message.EC02Builder;
  13 +import ec02.af.abstracts.AbstractAF;
  14 +import ec02.af.data.EquinoxRawData;
  15 +import ec02.af.interfaces.IAFState;
  16 +
  17 +public class StateWaitB implements IAFState {
  18 + private String eqxState = null;
  19 + private EC02Builder ec02Builder = new EC02Builder();
  20 + private ArrayList<EquinoxRawData> eqxRawDataList = new ArrayList<EquinoxRawData>();
  21 +
  22 + @Override
  23 + public String doAction(AbstractAF abstractAF, Object instance, ArrayList<EquinoxRawData> eqxRawDataList) {
  24 + EC02Instance ec02Ins = (EC02Instance)instance;
  25 +
  26 + for(EquinoxRawData eqxRawData : eqxRawDataList) {
  27 + this.ec02Builder.setEquinoxRawData(eqxRawData, abstractAF, ec02Ins);
  28 + /*if(eqxRawData.getRawEventType().equals(AFEvent.Incoming_A_Response)){
  29 + StringExtract str = new StringExtract();
  30 + HashMap<String, String> map = str.getAll(str.setMessage(eqxRawData.getRawDataMessage().trim()));
  31 + String message = map.get("MSG[0].value");
  32 + if (message.trim().equals("SUCCESS")) {
  33 + EQXRawInstance eqxRaw = new EQXRawInstance();
  34 + eqxRaw.setMessage(message.trim());
  35 + eqxRaw.setTo(ec02Ins.getAFInstance().getOrig());
  36 + eqxRaw.setCtype(EQXMsg.TEXTPLAIN);
  37 + this.eqxRawDataList.add(this.ec02Builder.getHTTPResponse(eqxRaw));
  38 + this.eqxState = AFState.IDLE;
  39 + }
  40 + else {
  41 +
  42 + }
  43 + }*/
  44 +
  45 + EQXRawInstance eqxRaw = new EQXRawInstance();
  46 + eqxRaw.setMessage("A Res.");
  47 + eqxRaw.setTo(ec02Ins.getAFInstance().getOrig());
  48 + eqxRaw.setCtype(EQXMsg.TEXTPLAIN);
  49 + this.eqxRawDataList.add(this.ec02Builder.getHTTPResponse(eqxRaw));
  50 + this.eqxState = AFState.END;
  51 +
  52 + }
  53 + ec02Ins.setEqxRawDataList(this.eqxRawDataList);
  54 + return this.eqxState;
  55 + }
  56 +}