Copyright (c) 2000, 2015 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2000, 2015 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.jdt.launching.sourcelookup.containers; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.debug.core.sourcelookup.ISourceContainer; import org.eclipse.debug.core.sourcelookup.ISourceContainerType; import org.eclipse.debug.core.sourcelookup.containers.CompositeSourceContainer; import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.internal.launching.LaunchingPlugin; import org.eclipse.jdt.launching.IRuntimeClasspathEntry; import org.eclipse.jdt.launching.JavaRuntime;
A classpath variable source container contains a source container that is the resolved value of the associated variable.

This class may be instantiated.

Since:3.0
@noextendThis class is not intended to be subclassed by clients.
/** * A classpath variable source container contains a source container * that is the resolved value of the associated variable. * <p> * This class may be instantiated. * </p> * @since 3.0 * @noextend This class is not intended to be subclassed by clients. */
public class ClasspathVariableSourceContainer extends CompositeSourceContainer { private IPath fVariable;
Unique identifier for Java project source container type (value org.eclipse.jdt.launching.sourceContainer.classpathVariable).
/** * Unique identifier for Java project source container type * (value <code>org.eclipse.jdt.launching.sourceContainer.classpathVariable</code>). */
public static final String TYPE_ID = LaunchingPlugin.getUniqueIdentifier() + ".sourceContainer.classpathVariable"; //$NON-NLS-1$
Constructs a new source container on the given variable and suffix.
Params:
  • variablePath – path representing a Java classpath variable. The first segment is the variable name, and the following segments (if any) are appended to the variable.
/** * Constructs a new source container on the given variable and suffix. * * @param variablePath path representing a Java classpath variable. * The first segment is the variable name, and the following segments * (if any) are appended to the variable. */
public ClasspathVariableSourceContainer(IPath variablePath) { fVariable = variablePath; } /* (non-Javadoc) * @see org.eclipse.debug.internal.core.sourcelookup.containers.CompositeSourceContainer#createSourceContainers() */ @Override protected ISourceContainer[] createSourceContainers() throws CoreException { IPath path = JavaCore.getClasspathVariable(fVariable.segment(0)); if (path == null) { return new ISourceContainer[0]; } if (fVariable.segmentCount() > 1) { path = path.append(fVariable.removeFirstSegments(1)); } IRuntimeClasspathEntry entry = JavaRuntime.newArchiveRuntimeClasspathEntry(path); return JavaRuntime.getSourceContainers(new IRuntimeClasspathEntry[]{entry}); } /* (non-Javadoc) * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getName() */ @Override public String getName() { return fVariable.toOSString(); }
Returns the variable this container references as a path. The first segment is the variable name, and the following segments are appended to the variable's value.
Returns:path representing the variable and suffix
/** * Returns the variable this container references as a path. The * first segment is the variable name, and the following segments * are appended to the variable's value. * * @return path representing the variable and suffix */
public IPath getPath() { return fVariable; } /* (non-Javadoc) * @see org.eclipse.debug.internal.core.sourcelookup.ISourceContainer#getType() */ @Override public ISourceContainerType getType() { return getSourceContainerType(TYPE_ID); } }