1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jdiagnose.remote.provider;
17
18 import java.util.ArrayList;
19 import java.util.Collection;
20 import java.util.Iterator;
21 import java.util.List;
22
23 /***
24 * @author jmccrindle
25 */
26 public class MultiSystemProvider implements SystemProvider {
27
28 private List providers = new ArrayList();
29 private SystemHolder defaultHolder = null;
30
31
32
33
34 public SystemHolder getHolder(String id) {
35
36 if(id == null) {
37 return defaultHolder;
38 }
39
40 for (Iterator providerIterator = providers.iterator(); providerIterator.hasNext();) {
41 SystemProvider provider = (SystemProvider) providerIterator.next();
42 SystemHolder holder = provider.getHolder(id);
43 if(holder != null) {
44 return holder;
45 }
46 }
47 return defaultHolder;
48 }
49
50
51
52
53 public SystemHolder getDefaultHolder() {
54 return defaultHolder;
55 }
56
57
58
59
60 public Collection getHolders() {
61 List holders = new ArrayList();
62 for (Iterator providerIterator = providers.iterator(); providerIterator.hasNext();) {
63 SystemProvider provider = (SystemProvider) providerIterator.next();
64 holders.addAll(provider.getHolders());
65 }
66 return holders;
67 }
68
69 public void setDefaultHolder(SystemHolder defaultHolder) {
70 this.defaultHolder = defaultHolder;
71 }
72 public void setProviders(List providers) {
73 this.providers = providers;
74 }
75 }