Line | |
---|
1 | package gov.va.med.edp.business.responder
|
---|
2 | {
|
---|
3 | import mx.rpc.Fault;
|
---|
4 | import mx.rpc.IResponder;
|
---|
5 | import mx.rpc.events.FaultEvent;
|
---|
6 | import mx.rpc.events.ResultEvent;
|
---|
7 |
|
---|
8 | /**
|
---|
9 | * Responder that checks the result for <error> tags produced by the server. If found, calls fault on
|
---|
10 | * decorated responder, if not, passes through result unmodified.
|
---|
11 | */
|
---|
12 | public class ServerErrorCheckResponder extends ResponderDecorator implements IResponder
|
---|
13 | {
|
---|
14 | public function ServerErrorCheckResponder(responder: IResponder) {
|
---|
15 | super(responder);
|
---|
16 | }
|
---|
17 |
|
---|
18 | public override function result(data:Object):void {
|
---|
19 | var xml:XML = ResultEvent(data).result as XML;
|
---|
20 | if (xml.error != undefined) {
|
---|
21 | var fault:Fault = new Fault(xml.error.code, xml.error.message, xml.error.detail);
|
---|
22 | fault.rootCause = xml.error;
|
---|
23 | var faultEvent:FaultEvent = FaultEvent.createEvent(fault);
|
---|
24 | this.fault(faultEvent);
|
---|
25 | } else {
|
---|
26 | responder.result(data);
|
---|
27 | }
|
---|
28 | }
|
---|
29 | }
|
---|
30 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.