73 final DeploymentTargetWrapper[] targets = wrap(getProvider().getTargets(project)); |
73 final DeploymentTargetWrapper[] targets = wrap(getProvider().getTargets(project)); |
74 return targets != null ? targets : NO_TARGETS; |
74 return targets != null ? targets : NO_TARGETS; |
75 } |
75 } |
76 |
76 |
77 private DeploymentTargetWrapper[] wrap(IDeploymentTarget[] targets) { |
77 private DeploymentTargetWrapper[] wrap(IDeploymentTarget[] targets) { |
78 final DeploymentTargetWrapper[] w = new DeploymentTargetWrapper[targets.length]; |
78 if (targets == null) { |
79 for (int i = 0; i < targets.length; i++) { |
79 return new DeploymentTargetWrapper[0]; |
80 final IDeploymentTarget target = targets[i]; |
80 } else { |
81 DeploymentTargetWrapper wrapper = wrappers.get(target); |
81 final DeploymentTargetWrapper[] w = new DeploymentTargetWrapper[targets.length]; |
82 if (wrapper == null) { |
82 for (int i = 0; i < targets.length; i++) { |
83 wrapper = new DeploymentTargetWrapper(target, this); |
83 w[i] = wrap(targets[i]); |
84 wrappers.put(target, wrapper); |
|
85 } |
84 } |
86 w[i] = wrapper; |
85 return w; |
87 } |
86 } |
88 return w; |
87 } |
|
88 |
|
89 private DeploymentTargetWrapper wrap(final IDeploymentTarget target) { |
|
90 DeploymentTargetWrapper wrapper = wrappers.get(target); |
|
91 if (wrapper == null) { |
|
92 wrapper = new DeploymentTargetWrapper(target, this); |
|
93 wrappers.put(target, wrapper); |
|
94 } |
|
95 return wrapper; |
89 } |
96 } |
90 |
97 |
91 public void discoverTargets(IProgressMonitor monitor) throws CoreException { |
98 public void discoverTargets(IProgressMonitor monitor) throws CoreException { |
92 getProvider().discoverTargets(monitor); |
99 getProvider().discoverTargets(monitor); |
93 } |
100 } |
94 |
101 |
95 public IDeploymentTarget findTarget(IMTWProject project, String id) { |
102 public IDeploymentTarget findTarget(IMTWProject project, String id) { |
96 return getProvider().findTarget(project, id); |
103 return wrap(getProvider().findTarget(project, id)); |
97 } |
104 } |
98 |
105 |
99 private synchronized IDeploymentTargetType getProvider() { |
106 private synchronized IDeploymentTargetType getProvider() { |
100 if (type == null) { |
107 if (type == null) { |
101 try { |
108 try { |