1
2
3
4
5
6
7
8
9
10 package org.mule.transport;
11
12 import java.io.OutputStream;
13 import java.util.ArrayList;
14
15
16
17
18
19
20
21 public abstract class AbstractReceiverResourceWorker extends AbstractReceiverWorker
22 {
23 protected Object resource;
24
25 public AbstractReceiverResourceWorker(Object resource, AbstractMessageReceiver receiver)
26 {
27 this(resource, receiver, null);
28 }
29
30 public AbstractReceiverResourceWorker(Object resource, AbstractMessageReceiver receiver, OutputStream out)
31 {
32 super(new ArrayList<Object>(), receiver, out);
33 this.resource = resource;
34 }
35
36 @Override
37 public void doRun()
38 {
39 try
40 {
41 Object message;
42 do
43 {
44 message = getNextMessage(resource);
45 messages.add(message);
46 super.doRun();
47 }
48 while (message != null && hasMoreMessages(message));
49 }
50 catch (Exception e)
51 {
52 receiver.getConnector().getMuleContext().getExceptionListener().handleException(e);
53 }
54 }
55
56 protected boolean hasMoreMessages(Object message)
57 {
58 return true;
59 }
60
61
62
63
64
65
66
67
68 protected abstract Object getNextMessage(Object resource) throws Exception;
69 }