blob: 5999f55db5f63727d30af5497ebb2ab87e3b290c [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<meta
name="root"
content="../../../../../" />
<title>component core resources api overview</title>
</head>
<body>
<abstract>
The ComponentCore Virtual Path API allows clients to navigate
logical collections of files within Eclipse projects using API
similar to the Eclipse IResource API.
</abstract>
<a name="top"/>
<!--
<p>
The following document includes information on these topics:
<ul>
<li><a href="#virtual-path">Pointer 1</a> A description</li>
</ul>
</p>
-->
<a name="virtual-path"/>
<h2>Virtual Path API</h2>
<BR />
<p>
The Virtual Path API provides a facade to the flexible project model.
Each IVirtualResource represents a resource from the runtime component
under a virtual runtime path. Each IVirtualResource may represent one
or more Eclipse Platfrom resources located at the same runtime path.
</p>
<p>
Each IVirtualResource is contained by exactly one IVirtualComponent.
However, the underlying resources that are represented by the
IVirtualResource may be contained by multiple IVirtualComponents.
IVirtualComponents are contained by IFlexibleProjects. Each
IFlexibleProject may contain one or more IVirtualComponents.
</p>
<img src="../../../../../../overview/mapping.jpg"
caption="A visual representation of a possible mapping between a Virtual structure and a Platform Resource structure."
width="600" height="466"
/>
<img src="../../../../../../overview/virtual_path_api.jpg" caption="Virtual Path Model" />
<!--
<codesnippet caption="An example snippet.">
...
import org.eclipse.emf.common.util.URI;
...
public static void makeFlexible(IProject aTargetProject) {
ModuleCore moduleCoreInstance = null;
try {
ModuleCoreNature.addModuleCoreNatureIfNecessary(aTargetProject);
moduleCoreInstance = ModuleCore.getModuleCoreForWrite(aTargetProject);
... work with moduleCoreInstance and underlying model ...
moduleCoreInstance.saveIfNecessary(aProgressMonitor);
} finally {
if (moduleCoreInstance != null) {
moduleCoreInstance.dispose();
}
}
}
</codesnippet>
<codesnippet caption="An example snippet.">
...
import org.eclipse.emf.common.util.URI;
...
public static void makeFlexible(IProject aTargetProject) {
ModuleCore moduleCoreInstance = null;
try {
ModuleCoreNature.addModuleCoreNatureIfNecessary(aTargetProject);
moduleCoreInstance = ModuleCore.getModuleCoreForWrite(aTargetProject);
... work with moduleCoreInstance and underlying model ...
moduleCoreInstance.saveIfNecessary(aProgressMonitor);
} finally {
if (moduleCoreInstance != null) {
moduleCoreInstance.dispose();
}
}
}
</codesnippet>
-->
<a href="#top">top</a>
</body>
</html>