01: /*******************************************************************************
02: * Copyright (c) 2000, 2005 IBM Corporation and others.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * IBM Corporation - initial API and implementation
10: *******************************************************************************/package org.eclipse.jdt.internal.launching;
11:
12: import java.util.ArrayList;
13: import java.util.List;
14:
15: import org.eclipse.core.runtime.CoreException;
16: import org.eclipse.debug.core.ILaunchConfiguration;
17: import org.eclipse.jdt.core.IClasspathEntry;
18: import org.eclipse.jdt.core.IJavaProject;
19: import org.eclipse.jdt.launching.*;
20: import org.eclipse.jdt.launching.IRuntimeClasspathEntry;
21: import org.eclipse.jdt.launching.IRuntimeClasspathEntryResolver;
22: import org.eclipse.jdt.launching.IVMInstall;
23: import org.eclipse.jdt.launching.JavaRuntime;
24:
25: /**
26: * Default resolver for a contributed classpath entry
27: */
28: public class DefaultEntryResolver implements
29: IRuntimeClasspathEntryResolver {
30: /* (non-Javadoc)
31: * @see org.eclipse.jdt.launching.IRuntimeClasspathEntryResolver#resolveRuntimeClasspathEntry(org.eclipse.jdt.launching.IRuntimeClasspathEntry, org.eclipse.debug.core.ILaunchConfiguration)
32: */
33: public IRuntimeClasspathEntry[] resolveRuntimeClasspathEntry(
34: IRuntimeClasspathEntry entry,
35: ILaunchConfiguration configuration) throws CoreException {
36: IRuntimeClasspathEntry2 entry2 = (IRuntimeClasspathEntry2) entry;
37: IRuntimeClasspathEntry[] entries = entry2
38: .getRuntimeClasspathEntries(configuration);
39: List resolved = new ArrayList();
40: for (int i = 0; i < entries.length; i++) {
41: IRuntimeClasspathEntry[] temp = JavaRuntime
42: .resolveRuntimeClasspathEntry(entries[i],
43: configuration);
44: for (int j = 0; j < temp.length; j++) {
45: resolved.add(temp[j]);
46: }
47: }
48: return (IRuntimeClasspathEntry[]) resolved
49: .toArray(new IRuntimeClasspathEntry[resolved.size()]);
50: }
51:
52: /* (non-Javadoc)
53: * @see org.eclipse.jdt.launching.IRuntimeClasspathEntryResolver#resolveRuntimeClasspathEntry(org.eclipse.jdt.launching.IRuntimeClasspathEntry, org.eclipse.jdt.core.IJavaProject)
54: */
55: public IRuntimeClasspathEntry[] resolveRuntimeClasspathEntry(
56: IRuntimeClasspathEntry entry, IJavaProject project)
57: throws CoreException {
58: IRuntimeClasspathEntry2 entry2 = (IRuntimeClasspathEntry2) entry;
59: IRuntimeClasspathEntry[] entries = entry2
60: .getRuntimeClasspathEntries(null);
61: List resolved = new ArrayList();
62: for (int i = 0; i < entries.length; i++) {
63: IRuntimeClasspathEntry[] temp = JavaRuntime
64: .resolveRuntimeClasspathEntry(entries[i], project);
65: for (int j = 0; j < temp.length; j++) {
66: resolved.add(temp[j]);
67: }
68: }
69: return (IRuntimeClasspathEntry[]) resolved
70: .toArray(new IRuntimeClasspathEntry[resolved.size()]);
71: }
72:
73: /* (non-Javadoc)
74: * @see org.eclipse.jdt.launching.IRuntimeClasspathEntryResolver#resolveVMInstall(org.eclipse.jdt.core.IClasspathEntry)
75: */
76: public IVMInstall resolveVMInstall(IClasspathEntry entry)
77: throws CoreException {
78: return null;
79: }
80: }
|